Skip to content
SecForge
Ilustración principal de: Nmap vs Masscan: precisión frente a rendimiento bruto.
RECON COMPARATIVA

Nmap vs Masscan: precisión frente a rendimiento bruto.

Los dos escanean puertos. Uno termina un /16 en un minuto y el otro te dice qué está corriendo de verdad. Elige el adecuado para cada tarea o, más a menudo, encadénalos con una tubería.

8 min de lectura SecForge Research

Los escáneres de puertos son la primera herramienta a la que recurres y probablemente la que peor entiendes. Hay dos pesos pesados de código abierto: Nmap (la enciclopedia, nacido en 1997) y Masscan (la manguera a presión, nacido en 2013). No son competidores. Son respuestas distintas a la pregunta "qué puertos están abiertos", y tratarlos como intercambiables te costará o tiempo o precisión.

Veredicto rápido

Caso de usoElige
Barrido a escala de internet, "¿qué IPs responden en el 443?"Masscan
"¿Qué servicio hay en este puerto abierto y qué versión?"Nmap
Autenticado, regulado, lento y educadoNmap
Red hostil con limitadores de tasa por todas partesNmap (con -T2)
Construir una lista de objetivos y luego enriquecerlaTubería Masscan → Nmap

En qué se diferencian por dentro

Nmap mantiene el estado TCP por host. Cada puerto es una diminuta máquina de estados; la detección de servicios envía sondas bien conocidas, analiza los banners y ejecuta scripts NSE. El techo de rendimiento ronda los 100.000 paquetes por segundo en hardware corriente, y en la práctica mucho menos porque las plantillas de temporización educadas se retiran.

Masscan no mantiene estado en absoluto. Envía SYNs tan rápido como la tarjeta de red puede transmitir y escucha los SYN-ACKs en un hilo aparte. En una red bien afinada, dos millones de paquetes por segundo es realista. La salida es deliberadamente mínima: IP, puerto, estado.

Velocidad: un /24 en el laboratorio

Mismo objetivo, misma red, ambos escaneando los 1000 puertos estándar.

$ time nmap -p- 10.0.0.0/24
Nmap done: 256 IP addresses in 138.4s

$ time masscan -p1-65535 10.0.0.0/24 --rate 100000
scanned 256 IP addresses in 6.5s

Una aceleración de 20× es lo habitual. La cifra titular se queda corta: Nmap estaba escaneando 1000 puertos, Masscan escaneaba los 65535. Restringidos al mismo rango, la diferencia se acerca más a 100×.

Precisión: dónde miente Masscan

El diseño sin estado de Masscan implica que puede perderse respuestas si su propio escuchador está ocupado, y no distingue entre un puerto filtrado por un cortafuegos y otro que simplemente no respondió. Nmap, al mantener la temporización por host y retransmitir, se acerca más a la verdad de campo.

En el mismo laboratorio, Masscan a tasa máxima se perdió tres puertos abiertos de 27. Nmap no se perdió ninguno. Baja la tasa de Masscan a 10.000 pps y capturó los 27. La regla: cuanto más empujas a Masscan, más precisión cambias por velocidad. Calíbralo contra una ejecución de Nmap conocida como buena antes de fiarte de la cifra.

Detección de servicios: donde Nmap es imbatible

Masscan solo te dice que el puerto 8080 está abierto. Nmap te dirá que es un Apache 2.4.52 con mod_jk cargado, que hay un Tomcat detrás y que el certificado TLS caducó el martes pasado.

$ nmap -sV -sC -p 8080 10.0.0.42
PORT     STATE SERVICE VERSION
8080/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))
| http-server-header: Apache/2.4.52 (Ubuntu)
| http-title: Apache2 Ubuntu Default Page

El flag -sC ejecuta el conjunto de scripts NSE por defecto, que detecta docenas de errores de configuración habituales de una sola pasada. No hay equivalente en Masscan, y no lo habrá: queda fuera de su alcance por diseño.

El patrón en el que todo el mundo acaba

En el reconocimiento de producción casi nunca usas uno u otro. Los encadenas con una tubería:

# 1) Barre el /16 rápido con Masscan
masscan -p1-65535 10.0.0.0/16 --rate 100000 -oG sweep.gnmap

# 2) Extrae los pares host:puerto vivos
awk '/Ports:/ {print $2","$5}' sweep.gnmap | cut -d/ -f1 > live.csv

# 3) Enriquece con la detección de servicios de Nmap
nmap -sV -sC --script vuln -iL <(cut -d, -f1 live.csv) -p $(cut -d, -f2 live.csv | sort -u | paste -sd,)

Masscan te dice dónde mirar. Nmap te dice qué hay. La ejecución combinada termina en aproximadamente el tiempo de Masscan más una pequeña constante.

Notas operativas que nadie pone en la documentación

  • La tasa por defecto de Masscan es de 100 pps. La primera vez que lo ejecutes, súbela.
  • Masscan ignora la tabla de enrutado de tu kernel. Pasa --router-mac o --exclude-file con generosidad o escanearás tu propia puerta de enlace.
  • Las plantillas -T0 a -T5 de Nmap lo cambian todo: paralelismo, reintentos, retardo de escaneo, tiempos de espera. -T3 es el valor por defecto. -T2 para redes sensibles; -T4 para laboratorios.
  • En redes Windows, -Pn casi siempre es lo correcto: el ICMP está filtrado por defecto.

El veredicto que aguanta un año

Nmap es la herramienta correcta cuando quieres saber. Masscan es la herramienta correcta cuando quieres encontrar. El 5% de casos en que uno sustituye al otro es real, pero pequeño. El 95% de los casos es la tubería de arriba.