Cerramos el Módulo 2 con un mapa de superficie de ataque priorizado y con un nmap -sn que nos dijo qué hosts de 10.10.10.0/24 están vivos. Ahora empieza el Módulo 3 y toca mirar de verdad: de "estos hosts existen" pasamos a "estos puertos están abiertos en ellos". Un puerto abierto es una puerta que escucha; detrás de cada uno hay un servicio que, en las lecciones siguientes, identificaremos (03-02) y cruzaremos con vulnerabilidades conocidas (03-03).
Esta lección se centra en una sola pregunta, bien respondida: ¿qué puertos están abiertos en los objetivos autorizados? Veremos la teoría de TCP/UDP y los estados de puerto, los tipos de escaneo (SYN, connect, UDP, FIN/NULL/Xmas, ACK), el control de velocidad y la evasión básica de ruido —siempre dentro del alcance—, y cómo exprimir Nmap para descubrir puertos sin todavía interrogar a fondo los servicios. Antes de tocar nada, recordemos el encuadre: escaneamos solo las IPs y rangos del contrato, sabemos que un escaneo agresivo puede tumbar servicios y por eso se acuerdan ventanas, y documentamos cada comando lanzado.
Contenido
- Recordatorio de alcance: escanear no es inocuo
- TCP y UDP: cómo se descubre un puerto
- Los estados de puerto de Nmap
- Tipos de escaneo TCP y UDP
- Selección de puertos y objetivos
- Timing, velocidad y evasión de ruido
- Formatos de salida y documentación
- Escaneo de TechNova de principio a fin
- Alternativas rápidas: masscan y RustScan
- Contrapartida defensiva: cómo se detecta un escaneo
- Errores comunes y consejos
- Ejercicios
- Conclusión
- Recordatorio de alcance: escanear no es inocuo
Un escaneo de puertos genera tráfico real contra sistemas de producción. No es una consulta pasiva como el whois: estás enviando miles de paquetes a la infraestructura del cliente. Antes de la primera orden, tres reglas no negociables:
- Scope estricto. Escanea solo las IPs y rangos que figuran por escrito en el contrato. En TechNova: la tienda y sus entornos expuestos, y la red interna
10.10.10.0/24. Unnmapcontra una IP vecina no autorizada es, sencillamente, ilegal. - Impacto acordado. Un escaneo agresivo (
-T5, escaneo UDP masivo, muchos hosts a la vez) puede saturar un firewall, disparar alarmas o tumbar servicios frágiles. Se acuerdan ventanas de escaneo (p. ej. de madrugada) y se avisa al contacto técnico. - Documentar todo. Cada comando, con su marca de tiempo y su salida, se guarda. Si un servicio se cae durante tu ventana, debes poder demostrar qué lanzaste exactamente.
Regla de oro: si dudas de si una IP está en el alcance, no la escanees y consulta las RoE.
- TCP y UDP: cómo se descubre un puerto
Descubrir puertos consiste en enviar paquetes y leer las respuestas. Los dos protocolos de transporte se comportan de forma muy distinta, y por eso se escanean distinto.
TCP es orientado a conexión: usa el three-way handshake (SYN → SYN/ACK → ACK). Ese handshake es lo que explotan los escáneres:
sequenceDiagram
participant P as Pentester
participant O as Objetivo
Note over P,O: Puerto ABIERTO
P->>O: SYN
O->>P: SYN/ACK
Note over P,O: Puerto CERRADO
P->>O: SYN
O->>P: RST
Si el puerto está abierto, responde SYN/ACK; si está cerrado, responde RST (reset); si un firewall filtra el paquete, normalmente no responde nada (o devuelve un ICMP de prohibido).
UDP no tiene handshake: es "dispara y olvida". Envías un datagrama y:
- Si el puerto está cerrado, el sistema suele devolver un ICMP port unreachable (tipo 3, código 3).
- Si está abierto, muchas veces no responde nada (a menos que el servicio conteste), lo que se confunde con "filtrado". Por eso el escaneo UDP es lento y ambiguo: Nmap tiene que esperar y reintentar.
- Los estados de puerto de Nmap
Nmap no dice solo "abierto/cerrado". Distingue seis estados, y entenderlos evita conclusiones erróneas:
| Estado | Significado | Qué implica para el pentester |
|---|---|---|
open |
Un servicio acepta conexiones | Objetivo principal: hay algo escuchando |
closed |
Responde, pero nada escucha | El host está vivo; ese puerto no da servicio |
filtered |
No hay respuesta; un firewall/filtro bloquea | No se puede determinar; hay un cortafuegos delante |
unfiltered |
Accesible pero Nmap no sabe si abierto (solo -sA) |
Útil para mapear reglas de firewall |
open|filtered |
No se distingue abierto de filtrado (típico en UDP) | Ambiguo; requiere sondas adicionales |
closed|filtered |
No se distingue cerrado de filtrado (-sI) |
Poco frecuente |
La distinción clave para el día a día es filtered vs closed: closed significa "el host respondió, pero ese puerto no tiene servicio"; filtered significa "algo (un firewall) se ha comido mi paquete". Confundirlos lleva a descartar puertos que en realidad están protegidos, no ausentes.
- Tipos de escaneo TCP y UDP
Cada técnica manipula las banderas TCP de forma distinta para obtener información. Comparativa de las principales:
| Escaneo | Flag Nmap | Cómo funciona | Sigiloso | Requiere root | Uso típico |
|---|---|---|---|---|---|
| SYN (half-open) | -sS |
Envía SYN, no completa el handshake | Sí | Sí | El estándar; rápido y discreto |
| Connect | -sT |
Completa el handshake con connect() |
No | No | Sin privilegios; queda en logs |
| UDP | -sU |
Datagramas UDP + ICMP unreachable | — | Sí | Servicios UDP (DNS, SNMP, NTP) |
| FIN | -sF |
Solo bandera FIN | Sí | Sí | Evadir firewalls sin estado |
| NULL | -sN |
Sin banderas | Sí | Sí | Evadir firewalls sin estado |
| Xmas | -sX |
FIN+PSH+URG (paquete "iluminado") | Sí | Sí | Evadir firewalls sin estado |
| ACK | -sA |
Solo ACK; no detecta abiertos | — | Sí | Mapear reglas de firewall |
Algunas notas prácticas:
-sS(SYN) es la opción por defecto cuando se ejecuta como root. Nunca completa la conexión (envíaRSTtras elSYN/ACK), por lo que muchas aplicaciones ni la registran. Es rápido y relativamente discreto.-sT(connect) usa la llamada del sistemaconnect(); no necesita privilegios, pero completa la conexión, así que casi siempre aparece en los logs del servicio. Es la opción cuando no eres root.- FIN/NULL/Xmas se basan en un detalle del RFC 793: un puerto cerrado responde
RSTa estos paquetes "raros" y uno abierto los ignora. Solo funcionan contra pilas TCP que siguen el RFC (no Windows moderno) y sirven para colarse por firewalls sin estado. En una auditoría, se usan cuando el SYN se ve filtrado. -sA(ACK) no busca puertos abiertos: busca saber qué filtra el firewall. Si un ACK recibeRST, el puerto estáunfiltered(el firewall lo deja pasar); si no hay respuesta, estáfiltered. Es reconocimiento de reglas, no de servicios.
- Selección de puertos y objetivos
Por defecto Nmap escanea los 1000 puertos más comunes, no los 65535. Controlar qué puertos y qué objetivos tocas es esencial para ser eficiente y respetar el alcance.
# Puertos por defecto (los 1000 top) de un host de TechNova
nmap 10.10.10.15
# Un puerto concreto y un rango
nmap -p 80,443,8080 10.10.10.15
nmap -p 1-1024 10.10.10.15
# TODOS los puertos TCP (65535). Más lento pero completo
nmap -p- 10.10.10.15
# Los 100 puertos más frecuentes (rápido, buen primer barrido)
nmap -F 10.10.10.15Para objetivos, Nmap acepta IPs sueltas, rangos, notación CIDR y ficheros:
# Toda la red interna autorizada
nmap 10.10.10.0/24
# Un rango concreto
nmap 10.10.10.15-55
# Desde la lista priorizada del recon (un host por linea)
nmap -iL hosts_vivos.txtEl fichero hosts_vivos.txt es precisamente el entregable del nmap -sn con el que cerramos el Módulo 2: los hosts que respondieron al ping sweep. Aquí lo reutilizamos como entrada.
- Timing, velocidad y evasión de ruido
La velocidad de escaneo es un equilibrio entre rapidez, sigilo y no romper nada. Nmap ofrece plantillas de temporización con -T0 a -T5:
| Plantilla | Nombre | Velocidad | Ruido/impacto | Cuándo |
|---|---|---|---|---|
-T0 |
paranoid | Lentísima | Mínimo | Evasión extrema de IDS |
-T1 |
sneaky | Muy lenta | Muy bajo | Evasión de IDS |
-T2 |
polite | Lenta | Bajo, poca carga | Redes frágiles |
-T3 |
normal | Media (por defecto) | Medio | Uso general |
-T4 |
aggressive | Rápida | Alto | Redes rápidas y robustas |
-T5 |
insane | Máxima | Muy alto, puede fallar | Solo labs muy rápidos |
En una auditoría profesional, -T3 o -T4 con una ventana acordada suele ser lo razonable. -T5 puede perder paquetes y tumbar dispositivos débiles; -T0/-T1 se reservan para pruebas de evasión de IDS explícitamente pactadas.
La evasión básica de ruido —siempre dentro del marco autorizado, como técnica para medir la capacidad de detección del cliente— incluye:
# Fragmentar los paquetes para dificultar el analisis del IDS
nmap -f 10.10.10.15
# Ralentizar y limitar la tasa de paquetes (menos ruidoso)
nmap -T2 --max-rate 50 10.10.10.15
# Anadir senuelos: mezclar tu IP con IPs falsas (autorizado y con cuidado)
nmap -D 10.10.10.101,10.10.10.102,ME 10.10.10.15Importante: la evasión no sirve para "escanear sin permiso sin que se enteren". Se usa para evaluar si el IDS/IPS del cliente detecta técnicas evasivas, y siempre está en el contrato. Ocultar actividad no autorizada es un delito, no una técnica.
- Formatos de salida y documentación
Documentar es obligatorio. Nmap guarda resultados en varios formatos; el más útil para un informe es guardar en todos a la vez con -oA:
# Guarda en .nmap (legible), .xml (para herramientas) y .gnmap (grepeable)
nmap -sS -p- -T4 -oA technova_dev_tcp 10.10.10.15.nmap: salida legible para humanos, para leer y pegar en el informe..gnmap: una línea por host, fácil de filtrar congrep(p. ej. extraer solo hosts con el 445 abierto)..xml: entrada para otras herramientas (Metasploit, informes automáticos).
Con marca de tiempo en el nombre y estos tres ficheros por escaneo, tienes la trazabilidad que exige una auditoría seria.
- Escaneo de TechNova de principio a fin
Apliquemos todo a la lista priorizada. Empezamos por dev (10.10.10.15), que el recon marcó como entorno preproducción mal asegurado. Primero un barrido rápido de los puertos más comunes:
Starting Nmap 7.94 ( https://nmap.org ) at 2026-07-12 02:14 CEST Nmap scan report for dev.technova.lab (10.10.10.15) Host is up (0.0012s latency). Not shown: 96 closed tcp ports (reset) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp open mysql 8080/tcp open http-proxy
Lectura línea a línea:
Host is up (0.0012s latency): el host responde; la latencia baja confirma que es local.Not shown: 96 closed tcp ports (reset): de los 100 puertos del barrido rápido, 96 devolvieronRST(cerrados). El host está vivo y no filtra por defecto.22/tcp open ssh: SSH abierto, acceso remoto.80/tcp open httpy8080/tcp open http-proxy: dos servicios web (la app y probablemente un panel o proxy).3306/tcp open mysql: ¡una base de datos MySQL expuesta en un host de desarrollo! Un hallazgo jugoso que casa con eldb-internoque priorizamos.
El barrido rápido puede dejarse puertos altos. Confirmamos con un escaneo completo de los 65535 puertos, guardando salida:
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp open mysql 8080/tcp open http-proxy 54321/tcp open unknown
Aparece un 54321/tcp open unknown que el barrido rápido no cubría: un puerto no estándar, posiblemente una puerta trasera o un servicio de administración a medida. Justo el tipo de hallazgo que justifica el -p-. Aún no sabemos qué es: identificarlo es tarea de 03-02.
Como la tienda usa DNS y hay un controlador de red, conviene un vistazo a UDP en los puertos clave (no todos, sería lentísimo):
El 161/udp open snmp es muy relevante: SNMP mal configurado es una mina de información interna (lo enumeraremos en 03-02). El open|filtered del NTP muestra la típica ambigüedad de UDP.
El resultado de esta lección es una tabla de puertos abiertos por host, la materia prima del resto del módulo:
| Host | Puertos TCP abiertos | Puertos UDP relevantes |
|---|---|---|
10.10.10.15 (dev) |
22, 80, 3306, 8080, 54321 | — |
10.10.10.40 (db-interno) |
22, 3306 | 53, 161 |
tienda.technova.lab |
22, 80, 443 | — |
- Alternativas rápidas: masscan y RustScan
Para rangos muy grandes, Nmap puede ser lento. Dos herramientas complementarias, útiles como primer barrido que luego se refina con Nmap:
# masscan: rapidisimo, ideal para /16 o /8. Limita SIEMPRE la tasa
sudo masscan 10.10.10.0/24 -p1-65535 --rate 1000
# RustScan: descubre puertos a gran velocidad y encadena con nmap
rustscan -a 10.10.10.15 -- -sVPrecaución de impacto: masscan sin --rate puede lanzar millones de paquetes por segundo y saturar la red o el firewall del cliente. Se limita siempre la tasa y se acuerda la ventana. El patrón profesional es: masscan/RustScan para descubrir rápido qué puertos abren, y Nmap para el detalle de las lecciones siguientes.
- Contrapartida defensiva: cómo se detecta un escaneo
Escanear deja rastro, y un buen pentester entiende cómo lo verá el defensor (esto además sirve para escribir la parte de detección del informe):
- Un IDS/IPS (Snort, Suricata) detecta escaneos por patrón: muchos SYN a puertos distintos desde una misma IP en poco tiempo dispara reglas de portscan. El escaneo SYN es discreto para la aplicación, pero no para un IDS de red.
- Los firewalls con estado registran y pueden limitar conexiones por IP; un
-T5se nota enseguida. - Escaneos NULL/FIN/Xmas son anómalos por definición (paquetes que ningún cliente legítimo envía), así que un IDS moderno los marca como sospechosos.
Hardening que recomendaremos: cerrar todo lo no imprescindible (reduce la superficie que tu escaneo encuentra), segmentar la red, exponer solo lo necesario a Internet, y configurar el IDS/IPS para alertar y limitar escaneos. La mejor defensa contra el descubrimiento de puertos es no tener puertos abiertos que no hagan falta.
- Errores Comunes y Consejos
- Escanear fuera del alcance. El error más grave y con consecuencias legales. Verifica cada IP contra las RoE antes de lanzar.
- Fiarse solo del barrido por defecto. Los 1000 puertos top se dejan servicios en puertos altos (el
54321de dev). Para hosts prioritarios, lanza-p-. - Olvidar UDP. Muchos escaneos son solo TCP y se pierden DNS, SNMP, NTP o TFTP. Escanea al menos los
--top-portsUDP en hosts clave. - Confundir
filteredconclosed.filteredno es "no hay nada": es "hay un firewall". Interprétalo como presencia de defensa, no de ausencia de servicio. - Usar
-T5en producción. Puede tumbar dispositivos frágiles y perder resultados por paquetes descartados.-T3/-T4con ventana acordada. - No guardar la salida. Sin
-oAno hay trazabilidad. Guarda siempre, con marca de tiempo. - Consejo: empieza rápido y amplio (
-Fo masscan), identifica los hosts interesantes y profundiza solo en ellos con-p-. Ahorra tiempo y ruido.
- Ejercicios
Ejercicio 1. Quieres el barrido más completo posible de puertos TCP sobre el host dev de TechNova (10.10.10.15), guardando la salida en los tres formatos con el nombre base dev_full, a velocidad agresiva. Escribe el comando y explica cada opción.
Ejercicio 2. Un escaneo SYN (-sS) contra tienda.technova.lab devuelve todos los puertos como filtered, salvo el 80 y el 443. ¿Qué te dice eso sobre la máquina y su red? ¿Qué escaneo probarías para entender las reglas del firewall y por qué?
Ejercicio 3. Tu cliente te pide que evalúes si su IDS detecta escaneos "sigilosos" y te da una ventana de madrugada. Propón dos comandos Nmap orientados a bajo ruido / evasión y explica qué mide cada uno. Indica qué límite ético/legal no debes cruzar.
Soluciones
Solución 1.
-sS: escaneo SYN (half-open), rápido y discreto, requiere root.-p-: los 65535 puertos TCP, no solo los 1000 por defecto (así no se escapa el54321).-T4: temporización agresiva, adecuada para una red local robusta y una ventana acordada.-oA dev_full: guarda endev_full.nmap,dev_full.gnmapydev_full.xml(trazabilidad completa).
Solución 2. Que casi todo esté filtered y solo 80/443 aparezcan open indica una máquina detrás de un firewall con estado que solo permite tráfico web entrante: el firewall se está "comiendo" los SYN a los demás puertos (por eso filtered, no closed). Para entender las reglas probarías un escaneo ACK (-sA): no busca puertos abiertos, sino distinguir qué puertos están filtered (sin respuesta) de los unfiltered (devuelven RST), lo que permite mapear qué deja pasar el firewall. Es reconocimiento de la política del cortafuegos, no de servicios.
Solución 3. Dos ejemplos válidos:
# 1) Escaneo lento y de baja tasa: mide si el IDS detecta actividad "a fuego lento"
nmap -sS -T1 --max-rate 20 10.10.10.0/24
# 2) Escaneo con fragmentacion: mide si el IDS reensambla y detecta paquetes fragmentados
nmap -sS -f 10.10.10.15El primero evalúa la detección de escaneos lentos (por debajo de umbrales de tasa); el segundo, si el IDS reensambla fragmentos para ver el patrón de escaneo. Límite infranqueable: todo esto es válido solo porque el cliente lo ha autorizado por escrito y dentro de la ventana pactada. La evasión nunca sirve para escanear sistemas sin permiso "sin ser detectado": eso sería actividad ilícita, no una prueba.
Conclusión
Hemos convertido la lista de hosts vivos del recon en algo mucho más concreto: un inventario de puertos abiertos por host, obtenido de forma controlada, documentada y dentro del alcance. En el camino hemos entendido cómo TCP y UDP revelan sus puertos, los seis estados que distingue Nmap (con la distinción crucial filtered/closed), los tipos de escaneo y cuándo usar cada uno, y cómo ajustar velocidad y ruido sin romper nada ni cruzar líneas legales.
Fíjate en lo que todavía no sabemos: hemos visto que en dev el 3306/tcp está abierto y etiquetado como mysql, pero eso es solo la suposición de Nmap por número de puerto. No sabemos qué versión de MySQL corre, ni qué hay realmente detrás del 54321, ni qué servidor web sirve el puerto 80. Ese salto —de "el puerto está abierto" a "esto es exactamente el servicio X versión Y con esta información"— es el trabajo de la siguiente lección.
En 03-02 Enumeración de Servicios cogeremos esta tabla de puertos abiertos y, con detección de versiones (-sV), detección de sistema operativo y enumeración por protocolo (HTTP, SMB, SNMP, MySQL…), construiremos un inventario de servicios con versiones. Sabremos no solo dónde llama, sino quién abre la puerta.
Curso de Pentesting: Técnicas de Pruebas de Penetración
Módulo 1: Introducción al Pentesting
- ¿Qué es el Pentesting?
- Tipos de Pentesting
- Fases del Pentesting
- Ética y Legalidad en el Pentesting
- Metodologías y Estándares del Sector
Módulo 2: Reconocimiento y Recolección de Información
- Reconocimiento Pasivo
- Reconocimiento Activo
- Herramientas de Recolección de Información
- OSINT y Análisis de la Superficie de Ataque
Módulo 3: Escaneo y Enumeración
Módulo 4: Explotación de Vulnerabilidades
- Introducción a la Explotación
- Explotación de Vulnerabilidades Web
- Explotación de Vulnerabilidades de Red
- Explotación de Vulnerabilidades de Sistemas
- Ataques a Contraseñas y Autenticación
Módulo 5: Post-Explotación
- Escalada de Privilegios
- Mantenimiento del Acceso
- Pivoting y Movimiento Lateral
- Cobertura de Huellas y Anti-Forense
Módulo 6: Reporte y Remediación
- Documentación de Hallazgos
- Clasificación de Riesgos y CVSS
- Recomendaciones de Remediación
- Presentación de Resultados
