Smap es una herramienta escrita en lenguaje Go qye se trata una réplica de Nmap y que utiliza la API gratuita de shodan.io para el escaneo de puertos. Todos los argumentos de la línea de comandos son los mismos que Nmap y toda la salida que proporciona es como NMAP, lo que lo convierte en un reemplazo adecuado para Nmap.

Características:

  • 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 (reconocimiento pasivo).

Consideraciones previas.

Dado que Smap simplemente obtiene los datos de los puertos existentes de shodan.io, es súper rápido, pero hay algo más. Deberías usar Smap si estas interesado en:

  • Detección de vulnerabilidades
  • Escaneo de puertos rápido
  • Resultados para los puertos más comunes (Top 1237)
  • No hay que establecer conexiones con los objetivos.

Y no te importa:

  • No poder escanear direcciones IPv6
  • Los resultados tienen hasta 7 días de antigüedad
  • Algunos falsos negativos.

Instalación:

En primer lugar, instalaremos la herramienta con el siguiente comando:

❯ go install -v github.com/s0md3v/smap/cmd/smap@latest

smap

¿Instalación de smap fallida?

  1. Descarga de go del sitio web oficial siguiendo los pasos.
  2. Instalación de smap: ❯ go install -v github.com/s0md3v/smap/cmd/smap@latest
  3. Verificamos si se ha instalado correctamente introduciendo el comando smap en la terminal.
  4. Si nos da algún tipo de error probablemente sea que no tenemos añadido go en el $PATH, para ello deberemos añadir el siguiente comando en el archivo de nuestra shell (.bashrc, .zshrc, etc).
  5. export PATH=$PATH:$HOME/go/bin/
  6. Reiniciamos y ya debería de funcionar correctamente.

Uso:

Su uso es muy sencillo, como se ha comentado anteriormente, Smap utiliza los comandos de Nmap. Si estás familiarizado con Nmap podrás usar todas sus opciones de forma eficiente.

Si accedemos a la ayuda con el comando smap -h, nos indicará:

  • Sintaxis: smap <Objetivo>
  • Formatos de objetivos admitidos: Nombre de host, dirección IP y CIDR.  
  • Acepta entrada de listado de objetos separados por saltos de línea con el comando smap -iL <target_list.txt>.
  • Formatos de salida admitidos:

oX    // nmap’s xml format

oG    // nmap’s greppable format

oN    // nmap’s default format

oA    // output in all 3 formats above at once

oP    // IP:PORT pairs seperated by newlines

oS    // custom smap format

oJ    // json

Ejemplos de uso:

Escaneo normal hacia un nombre de dominio:

❯ smap nmap.scanme.org

Escaneo de tipo SYN con detección de Sistema Operativo a la misma dirección de nmap.scanme.org pero esta vez a la dirección IP:

❯ smap -sS -O 45.33.32.156   

Escaneo con detección de versiones hacia los puertos específicos 80 y 22:

❯ smap -sV -p 80,22 45.33.32.156

Escaneo con detección de versiones con salida a un fichero “grepeable”:

❯ smap -sV nmap.scanme.org -oG <fichero>

Podemos acceder al contenido del fichero de salida y a continuación le pasamos el comando grep con la opción 80 para que nos devuelva la línea del puerto 80 escaneado anteriormente:

❯ cat <fichero>

❯ grep 80 <fichero>

¿Encontraste este artículo interesante? Sigue a DDR en Twitter, LinkedIn y Facebook o suscríbete a nuestra newsletter.