Comparativa de Comandos Nmap: Explorando el Ruido Generado
Introducción
En esta investigación realizo una comparación entre los distintos comandos de Nmap, enfocados en cuánto "ruido" generan en la red. Me baso en un entorno controlado utilizando Kali Linux, dos interfaces de red activas y capturas con Wireshark para registrar el comportamiento.
Topología de Red
Mi sistema Kali tiene dos interfaces activas:
eth0: 192.168.184.129
eth1: 192.168.179.138
En
eth0
solo está conectada la máquina Kali.En
eth1
está montada una pequeña red de máquinas virtuales con servicios expuestos.
Descubrimiento Inicial
Se utilizaron los siguientes comandos para identificar qué equipos estaban activos:
nmap -sn 192.168.184.129/24
nmap -sn 192.168.179.138/24
Resultado:
192.168.184.0/24: 3 hosts activos
192.168.179.0/24: 7 hosts activos
Por ello se eligió la red 192.168.179.0/24
para el escaneo profundo.
Escaneo de Puertos con Nmap
Se ejecutó el siguiente comando para obtener los puertos abiertos del host 192.168.179.134
:
nmap -sS -p- -Pn 192.168.179.134
Resultado:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-12 14:33 EDT
Nmap scan report for 192.168.179.134
Host is up (0.0014s latency).
Not shown: 65529 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
443/tcp open https
32768/tcp open filenet-tms
MAC Address: 00:0C:29:0B:41:7C (VMware)
Nmap done: 1 IP address (1 host up) scanned in 22.08 seconds
Comparativa de Ruido: Nmap -sS vs Nmap -A
Se capturó el tráfico generado por:
nmap -sS -p <puertos> -Pn
nmap -p <puertos> -A
Resultados capturados con Wireshark (CSV procesado en Python):
Codigo de python
import pandas as pd
# Rutas de los archivos cargados
file_ss_p_pn = "/mnt/data/nmap ss p pn.csv"
file_p_a = "/mnt/data/nmap p a.csv"
# Cargar los datos
df_ss = pd.read_csv(file_ss_p_pn)
df_a = pd.read_csv(file_p_a)
# Crear un resumen comparativo
summary = {
"Comando": ["nmap -sS -p <puertos> -Pn", "nmap -p <puertos> -A"],
"Total de paquetes": [len(df_ss), len(df_a)],
"Protocolos únicos": [df_ss['Protocol'].nunique(), df_a['Protocol'].nunique()],
"Protocolos usados": [", ".join(df_ss['Protocol'].unique()), ", ".join(df_a['Protocol'].unique())],
"Paquetes con SYN": [
df_ss['Info'].str.contains('SYN', na=False).sum(),
df_a['Info'].str.contains('SYN', na=False).sum()
],
"Paquetes con ACK": [
df_ss['Info'].str.contains('ACK', na=False).sum(),
df_a['Info'].str.contains('ACK', na=False).sum()
],
"Paquetes con RST": [
df_ss['Info'].str.contains('RST', na=False).sum(),
df_a['Info'].str.contains('RST', na=False).sum()
],
"Paquetes con UDP": [
df_ss['Protocol'].str.contains('UDP', na=False).sum(),
df_a['Protocol'].str.contains('UDP', na=False).sum()
],
"Paquetes con ICMP": [
df_ss['Protocol'].str.contains('ICMP', na=False).sum(),
df_a['Protocol'].str.contains('ICMP', na=False).sum()
]
}
# Convertir a DataFrame para visualización
comparison_df = pd.DataFrame(summary)
import ace_tools as tools; tools.display_dataframe_to_user(name="Comparativa de comandos Nmap", dataframe=comparison_df)
Resultados
nmap -sS -p- -Pn
131093
4
ARP, DNS, TCP, NBNS
65541
65535
65535
0
0
nmap -p- -A
132564
21
ARP, DNS, TCP, SSH, HTTP, Portmap, NBSS, SSLv3, TLSv1, TLSv1.2, TLSv1.3, TCPwrapped, ICMP, UDP, etc.
65830
66706
65569
4
8
Conclusión
nmap -A
genera un 1.1% más paquetes.Usa más protocolos de capa de aplicación (HTTP, SSL, NBSS, etc).
Envía paquetes ICMP y UDP adicionales.
Es más ruidoso y fácilmente detectable por IDS o firewalls.
Escaneo con Detección de Versiones
Posteriormente se inspeccionaron los puertos detectados mediante:
nmap -sV -p 22,80,111,139,443,32768 192.168.179.134
Resultado:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-12 14:35 EDT
Nmap scan report for 192.168.179.134
Host is up (0.00046s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd (workgroup: IMYGROUP)
443/tcp open ssl/https Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
32768/tcp open status 1 (RPC #100024)
MAC Address: 00:0C:29:0B:41:7C (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 17.62 seconds
Comparativa de Ruido: Nmap -A vs Nmap -sV -A
nmap -A -p 22,80,111,...
1443
20
297
1125
40
4
8
nmap -sV -p 22,80,111,...
474
25
92
327
9
0
0
Conclusión
nmap -A
genera 3 veces más tráfico que-sV -A
.Aunque
-sV
contacta más protocolos para identificar versiones, lo hace de forma más eficiente.
Conclusiones Generales
Si se busca sigilo,
nmap -sS -p <puertos> -Pn
es el camino.nmap -A
debe reservarse para auditorías internas o cuando el ruido no es un problema.nmap -sV
aporta un punto medio entre detalle y eficiencia.Capturar tráfico con Wireshark permite evidenciar claramente el impacto de cada tipo de escaneo.
Recomendaciones
Utilizar
-sS -Pn
para descubrimiento inicial.Combinar
-sV
con puertos específicos para enumeración precisa.Evitar
-A
en redes sensibles o entornos productivos sin autorización.Automatizar comparativas con Python para analizar patrones de tráfico.
Última actualización