1.3🚪📦 Análisis de Puertos y Servicios
Es fundamental comprender cómo funciona Nmap, la herramienta que estamos utilizando, para poder interpretar correctamente los resultados. Solo si entendemos cómo se obtienen los datos, podremos analizarlos de forma efectiva.
Después de verificar que un host está activo, el siguiente paso es obtener información más precisa, como:
-
✅ Puertos abiertos y sus servicios
-
🔍 Versiones de los servicios
-
📦 Información que brindan los servicios
-
🧩 Sistema operativo del host
🔘 Estados de los puertos
| Estado | Descripción |
|---|---|
open |
El puerto acepta conexiones (TCP, UDP o SCTP). |
closed |
El puerto está accesible, pero no hay servicio escuchando (responde con RST). |
filtered |
Nmap no recibe respuesta, posiblemente por un firewall o filtro de red. |
unfiltered |
Solo en escaneo ACK. El puerto es accesible, pero no se puede saber si está abierto o cerrado. |
| `open | filtered` |
| `closed | filtered` |
🧪 Explicación técnica del handshake:
- En puerto cerrado:
SYN → RST → Puerto Cerrado - En puerto abierto:
SYN → SYN/ACK → ACK → Conexión Establecida
``` bash
nmap -p22 -sT --open 192.168.1.1 -v -n
🧪 Verificación con Wireshark
nmap -p22 -sT --open -v -n 192.168.1.1
📸 Ejemplos de capturas:
- ✅ Puerto Abierto (ACK):
Puedes analizar los paquetes con Wireshark para ver cómo responde un puerto:

❌ Puerto Cerrado (RST) Puerto 127:

🔎 Escaneo y rastreo de paquetes
sudo nmap 192.168.1.1 -p 21 --packet-trace -Pn -n --disable-arp-ping
📌 Muy útil para analizar cómo se comportan los firewalls.
🔐 Ejemplo: Puerto rechazado (reject) por firewall
A veces su un puerto esta filtrado debemos saber si el firewall lo bloquea
sudo nmap 10.129.2.28 -p 445 --packet-trace -n --disable-arp-ping -Pn
📌 Recibe un ICMP Type 3 Code 3 → Puerto inalcanzable
🔎 Escaneo rápido de puertos comunes
nmap --top-ports 500 <IP>
Escanea los 500 puertos más comunes. Ideal para ahorrar tiempo.
🌐 Escanear todos los puertos (1-65535)
nmap -p- <IP>
Este comando es más completo, pero más lento.
⚠️ No recomendado si se busca rapidez.
📌 Ejemplo visual:

🚪 Mostrar solo puertos abiertos
nmap -p- --open <IP>
⏱️ Mejorar velocidad de escaneo
Evitar resolución DNS:
nmap -p- --open <IP> -n
Controlar velocidad con -T (0 = más lento, 5 = más rápido):
nmap -p- -T5 --open <IP> -n
Escaneo ultra rápido recomendado:
nmap -p- --open -sS --min-rate 50000 -v -n -Pn
🧬 Detección de servicios y versiones
nmap -sVC <IP>
-
-sV: Detecta la versión de los servicios. -
-C: Ejecuta scripts predeterminados.
⚡ Alternativa rápida: Masscan
masscan 192.168.1.0/24 -p22,80,443 --rate=1000
-
Escanea solo puertos comunes (más rápido y menos invasivo).
-
--rate=1000: Controla la velocidad del escaneo para no saturar la red. -
Solo muestra IPs con puertos abiertos, no versiones ni detalles.
📡 Escaneo de puertos UDP
sudo nmap -sU -F 10.129.2.28
📌 UDP es más difícil de escanear, pero algunos servicios clave (como DNS, SNMP o NTP) solo usan este protocolo.
🧭 Estrategia Recomendada
Primero escanear todos los puertos → luego analizar servicios y versiones detectados.
🔍 1. Escaneo masivo de todos los puertos abiertos
sudo nmap -p- --open -sS -vvv --min-rate 5000 -n -Pn 10.129.36.187 -oG networked
-
-p-→ Escanea todos los puertos (1–65535) -
--open→ Solo muestra puertos abiertos -
-sS→ Stealth SYN scan -
--min-rate 5000→ Aumenta la velocidad de escaneo -
-n -Pn→ No hace DNS ni ping (más sigiloso) -
-oG networked→ Salida grepable para análisis posterior

🔧 2. Extraer puertos abiertos en formato X,X,X...
Esto facilita usarlos después con -p para escaneos específicos.
grep "Ports:" networked | cut -d ":" -f3 | tr "," "\n" | cut -d "/" -f1 | tr -d " " | paste -sd "," -
📌 Ejemplo de salida: 22,80,110,139,143,445,31337

🧪 3. Escaneo de servicios y versiones
Una vez tenemos los puertos, realizamos un escaneo más profundo:
sudo nmap -sC -sV -p22,80,110,139,143,445,31337 -n -Pn -oN script_scan.txt 10.129.36.187
