share

Smap y lenguaje GO

Introducción a Smap

Smap es una réplica de Nmap que utiliza la API gratuita de shodan.io para escanear puertos. Toma los mismos argumentos de línea de comando que Nmap y produce el mismo resultado, lo que lo convierte en un reemplazo directo para Nmap.

Entonces ¿Cuál es la ventaja de Smap?. Pues según los creadores de este scanner, son las siguientes:

- Escanea 200 hosts por segundo
- No requiere ninguna clave de cuenta/api
- Detección de vulnerabilidades
- Admite todos los formatos de salida de Nmap
- Huella digital de servicio y versión
- No hace contacto con los objetivos.

A mi me parece que la principal ventaja es la de no establecer contacto con los objetivos, porque hay herramientas para detectar que te están escaneando, pero lo veremos mas adelante.

Instalación

La página de referencia para Smap es:

https://github.com/s0md3v/Smap

 

Instalación y configuración Lenguaje GO

Vamos a hacer la instalación para Linux, aunque también existe una versión para Mac. En primer lugar se nos propone la instalación del lenguaje Go, para lo cual navegamos a la siguiente página desde nuestra máquina ANTUNIX:

https://go.dev/dl/

Y dentro de aquí 

Seleccionamos la opción de Linux que descargamos en nuestro sistema:

Descomprimimos el archivo allí mismo.

Esto genera una carpeta de nombre go que movemos a nuestra carpeta llamada DESARROLLO. Fijaros que hasta el momento lo único que usamos son comandos simples de Linux. En mi sistema ANTUNIX voy colocando todos los lenguajes debajo de la carpeta DESARROLLO por una simple cuestión de orden.

Ahora, como hacemos siempre cada vez que instalamos algo, modificamos la variable de entorno $PATH para que encuentre siempre los binarios del lenguaje GO:

Aquí hay que decir una cosa importante. Para que los cambios en la variable de entorno $PATH sean permanentes, no basta con usar el comando export o path, sino que hay que editar el fichero donde están metidas esas variables y añadir el nuevo path allí.

Nosotros queremos añadir el path:

/home/juan/DESARROLLO/go/bin

Entonces editamos el archivo:

nano ~/.bashrc

Y lo modificamos según se ve en la imagen. Salimos grabando y ya cuando reiniciemos la máquina, se habrán guardado los cambios. Este es el único método garantizado para que funcione la actualización de la variable $PATH

Y con esto ya estamos en condiciones de editar nuestro primer programa en GO y ejecutarlo desde un terminal, para ello vamos a crear una carpeta llamada Ejemplos que cuelgue de:

/home/juan/DESARROLLO/go

Dentro de esta carpeta creamos un archivo de texto plano normal llamado:

hello-world.go

E introducimos en ese archivo el código:

package main

import “fmt”

func main() {
       fmt.Println(“hello world”)
}

Salimos grabando y abrimos un terminal donde ejecutamos:

go run hello-world.go

Y el resultado es:

Hay que decir también que esto se puede compilar:

go build hello-world.go

Y ejecutar directamente:

./hello-world

Y ya para finalizar este apartado de la instalación de GO, hay que saber que puede utilizarse VS Code con la correspondiente extensión para construir programas en GO y ejecutarlos. Esto lo dejo que lo investiguéis vosotros.

Instalación de Smap

La instalación de GO era por si queremos hacer una compilación manual de Smap, ya que Smap está escrito en GO. Nosotros vamos a descargar directamente el binario precompilado para ahorrar tiempo. Navegamos hacia:

https://github.com/s0md3v/Smap

y escogemos el archivo:

https://github.com/s0md3v/Smap/releases/download/0.1.11/smap_0.1.11_linux_amd64.tar.xz

Lo descargamos y lo descomprimimos. Llevamos la carpeta creada a que cuelgue de nuestra carpeta personal directamente

Renombramos la carpeta a smap. Y añadimos la carpeta:

/home/juan/smap

a la lista de paths según hemos visto mas arriba, editando el archivo:

nano ~/.bashrc

Salimos guardando y ya podemos ejecutar órdenes de Smap desde un terminal abierto en cualquier parte nuestro sistema de archivos. Pero ojo, se recomienda reiniciar el sistema después de modificar el archivo donde están la variable de entorno $PATH, que si no el sistema no coge los cambios.

Ahora si abrimos un terminal en cualquier parte y ejecutamos por ejemplo:

smap -sV lamasiadechencho.com.

Y en definitiva, Smap funciona exactamente igual que Nmap, pero usando un buscador mejorado. A partir de aquí, que ya tenemos instalado Smap en nuestro sistema, es cuestión de ir probando el sin fin de opciones que tiene. El objetivo del post, era la instalación de GO y de Smap en nuestro sistema.