Nmap – Service Enumeration
1. Objetivo
Identificar qué servicio hay en cada puerto y qué versión exacta corre.
Con la versión podemos:
- buscar vulnerabilidades conocidas,
- ajustar exploits a esa versión/SO,
- saber si el banner revela más datos (host, distro).
2. Flujo recomendado
- Hacer primero un escaneo rápido (pocos puertos) para no levantar alertas.
- Luego lanzar el escaneo completo de puertos
-p-. - Añadir detección de versión con
-sVsobre esos puertos.
sudo nmap 10.129.2.28 -p- -sV
3. Ver el progreso del escaneo
3.1. Durante el escaneo
Pulsa [Space] mientras Nmap corre → muestra estado actual.
3.2. Mostrar progreso cada X segundos
sudo nmap 10.129.2.28 -p- -sV --stats-every=5s
--stats-every=5s→ Nmap imprime el avance cada 5 segundos.- Útil en escaneos de 65535 puertos.
4. Verbosidad
Con -v o -vv Nmap te va mostrando los puertos abiertos a medida que los encuentra:
sudo nmap 10.129.2.28 -p- -sV -v
Esto te permite ir trabajando en paralelo (por ejemplo, ya ver que hay 80/22/25 abiertos antes de que termine).
5. Ejemplo de salida con -sV
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
110/tcp open pop3 Dovecot pop3d
143/tcp open imap Dovecot imapd (Ubuntu)
993/tcp open ssl/imap Dovecot imapd (Ubuntu)
995/tcp open ssl/pop3 Dovecot pop3d
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
Service Info: Host: inlane; OS: Linux
Claves:
- Muestra puerto, estado, servicio, versión.
- A veces añade Service Info (hostname, OS estimado).
6. Cómo detecta Nmap la versión
- Banner grabbing automático: si el servicio habla al conectar, Nmap lee el banner.
- Si no basta, usa su base de firmas → esto puede hacer el escaneo más lento.
- Algunas veces el servicio envía más información de la que Nmap muestra.
Ejemplo del módulo: el SMTP devolvió
220 inlane ESMTP Postfix (Ubuntu)
pero Nmap solo mostró Postfix smtpd.
7. Banner grabbing manual
Para ver TODO lo que envía el servicio, se puede hacer a mano:
# Escuchar tráfico
sudo tcpdump -i eth0 host 10.10.14.2 and 10.129.2.28
# Conectarse al servicio
nc -nv 10.129.2.28 25
# → 220 inlane ESMTP Postfix (Ubuntu)
En el tcpdump se ve:
- SYN
- SYN/ACK
- ACK → 3-way handshake
- PSH-ACK → el servidor envía el banner
- ACK
Así confirmas que el servicio sí entregó más datos, solo que Nmap no los mostró todos.
8. Opciones usadas en esta sección
-p-→ todos los puertos-sV→ detectar servicios y versiones--stats-every=5s→ progreso periódico-v→ verbosidad-Pn -n --disable-arp-ping --packet-trace→ para ver tráfico real y evitar resoluciones
9. Resumen operativo
- Siempre que encuentres un puerto abierto, piensa: ¿tengo la versión?
- Si no está clara, vuelve con
-sVo con un banner grab manual. - Usa “stats” y “-v” en escaneos largos.
- La versión es lo que te permite pivotar a explotación.