
Smap v1.0.0-beta
un reemplazo directo para Nmap impulsado por shodan.io
alternativa a nmap impulsada por shodan.io

Smap es un escáner de puertos pasivo construido con la API gratuita de shodan.io. Acepta los mismos argumentos de línea de comandos que Nmap y produce la misma salida, lo que lo convierte en un sustituto directo de Nmap.
Características
- Escanea 200 hosts por segundo
- No requiere ninguna cuenta/clave de API
- Detección de vulnerabilidades
- Soporta los formatos de salida de nmap
- Detección de servicios y versiones
- No establece contacto con los objetivos en modo pasivo
- Aceleración opcional de nmap usando los puertos reportados por Shodan
Instalación
Binarios
Puedes descargar un binario precompilado desde aquí y usarlo de inmediato.
Manual
go install -v github.com/s0md3v/smap/cmd/smap@latest
¿Confundido o algo no funciona? Para instrucciones más detalladas, haz clic aquí
Paquete AUR
Smap está disponible en AUR como smap-git (compilado desde el código fuente) y smap-bin (binario precompilado).
Homebrew/Mac
Smap también está disponible en Homebrew.
brew update
brew install smap
Uso
Smap acepta los mismos argumentos que Nmap, pero las opciones distintas de -p, -h, -V, -o*, -iL, --concurrency y --append-output se ignoran en modo pasivo. Usa --nmap para pasar opciones de Nmap a un escaneo real de Nmap después del descubrimiento pasivo de puertos. Si no estás familiarizado con Nmap, así es como se usa Smap.
Especificar objetivos
smap 127.0.0.1 127.0.0.2
También puedes usar una lista de objetivos, separados por saltos de línea.
smap -iL targets.txt
Formatos admitidos
1.1.1.1 // IPv4 address
example.com // hostname
178.23.56.0/8 // CIDR
1.1.1.1-20 // IPv4 range
Salida
Smap soporta 7 formatos de salida que pueden usarse con -o* de la siguiente manera:
smap example.com -oX output.xml
Si quieres imprimir la salida en la terminal, usa un guion (-) como nombre de archivo.
Formatos 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 separated by newlines
oS // custom smap format
oJ // json
Nota: Dado que Nmap no escanea/muestra vulnerabilidades ni etiquetas, esos datos no están disponibles en los formatos de nmap. Usa
-oSpara ver esa información.
Especificar puertos
Smap escanea estos ~4000 puertos por defecto. Si quieres mostrar resultados para ciertos puertos, usa la opción -p.
smap -p21-30,80,443 -iL targets.txt
Aceleración de Nmap
Usa --nmap para reducir un escaneo con tu nmap local. Smap primero recopila la unión de los puertos reportados por Shodan y luego ejecuta Nmap una vez contra los objetivos originales con ese rango de puertos más reducido.
smap --nmap -Pn -sV --version-light 1.1.1.1
Excepto por --nmap y --concurrency, los argumentos proporcionados se pasan a Nmap. Smap reemplaza el rango de puertos con los candidatos de Shodan; si especificas -p, primero limita los candidatos a ese rango. Nmap maneja el escaneo y la salida directamente, por lo que sus opciones y formatos de salida se comportan con normalidad. Las operaciones solo de host, como -sL y -sn, se pasan directamente sin descubrimiento pasivo de puertos.
Los formatos de salida personalizados de Smap son funciones del modo pasivo; con --nmap, las opciones de salida tienen sus significados normales de Nmap. Si Shodan no reporta puertos candidatos, Nmap no se ejecuta.
Esto puede ahorrar tiempo si los datos pasivos son suficientemente buenos para tu caso de uso.
Controlar la concurrencia
Smap usa 3 trabajadores por defecto para evitar golpear a Shodan de forma demasiado agresiva. Puedes cambiarlo con --concurrency.
smap --concurrency 5 -iL targets.txt
Consideraciones
Dado que Smap simplemente obtiene datos existentes de puertos de shodan.io, es súper rápido, pero hay más en ello. Deberías usar Smap si:
Quieres
- detección de vulnerabilidades
- un escáner de puertos súper rápido
- que no se realicen conexiones con los objetivos
Te parece bien
- no poder escanear direcciones IPv6
- que los resultados tengan hasta 7 días de antigüedad
- alguna detección de software poco fiable en modo pasivo
Nota: si usas
--nmap, Smap ejecutaránmapcontra el objetivo y realizará conexiones activas. Dado que los datos de Shodan pueden estar desactualizados o incompletos, usarlos como filtro de puertos puede omitir puertos abiertos.
