Tema 9
El escaneo de puertos permite pasar de saber que un host existe a entender qué servicios ofrece. La detección de servicios y el fingerprinting ayudan a identificar tecnologías, versiones y configuraciones que luego se analizarán con mayor profundidad.
Una vez descubiertos los hosts activos, el siguiente paso es determinar qué puertos están abiertos y qué servicios escuchan en ellos. Esta información define el camino de enumeración: no se analiza igual un servidor web, un servicio SSH, un recurso SMB, una base de datos o un portal VPN.
El escaneo de puertos debe ejecutarse dentro del alcance autorizado y con intensidad adecuada. Un escaneo mal configurado puede generar ruido, alertas, bloqueos, falsos resultados o impacto operativo.
En este tema veremos estados de puertos, diferencias entre TCP y UDP, detección de versiones, fingerprinting, banners, interpretación de filtrado y documentación de resultados.
Un puerto abierto indica que un proceso está escuchando conexiones o paquetes en una dirección IP y protocolo determinados. No significa automáticamente que exista una vulnerabilidad, pero sí que hay una superficie que puede estudiarse.
Un puerto puede representar:
Las herramientas de escaneo suelen clasificar puertos según la respuesta recibida. Interpretar esos estados evita conclusiones equivocadas.
| Estado | Significado general | Cuidado |
|---|---|---|
| Abierto | Hay un servicio respondiendo | Requiere enumeración y validación |
| Cerrado | El host responde, pero no hay servicio en ese puerto | Confirma que el host existe |
| Filtrado | No se puede determinar por bloqueo o descarte | No significa que el servicio no exista |
| Abierto o filtrado | No hay respuesta suficiente para decidir | Muy común en UDP |
| Cerrado o filtrado | Respuesta insuficiente para distinguir | Requiere correlación con otros métodos |
TCP permite observar respuestas más claras que UDP porque usa establecimiento de conexión. En pentesting, los escaneos TCP suelen ser el punto de partida para identificar servicios expuestos.
Conceptos importantes:
El escaneo TCP puede variar en velocidad y precisión. En producción, conviene priorizar estabilidad y claridad sobre rapidez agresiva.
UDP no establece conexión como TCP, por eso es más difícil de interpretar. Algunos servicios responden solo si reciben una solicitud válida; otros permanecen silenciosos.
Servicios UDP comunes:
No siempre conviene escanear todos los puertos con la misma intensidad. La estrategia depende del tiempo, el alcance, la criticidad del entorno y el objetivo de la prueba.
| Estrategia | Ventaja | Limitación |
|---|---|---|
| Puertos comunes | Rápido y de bajo ruido | Puede omitir servicios en puertos no estándar |
| Todos los puertos TCP | Mayor cobertura | Más tiempo y tráfico |
| Puertos específicos por contexto | Enfocado en tecnologías esperadas | Depende de buenas hipótesis previas |
| UDP selectivo | Detecta servicios olvidados | Interpretación más difícil |
El timing controla la velocidad y paralelismo del escaneo. Una velocidad excesiva puede generar pérdida de paquetes, bloqueos, alertas o resultados incompletos. Una velocidad demasiado baja puede consumir demasiado tiempo.
Detectar un puerto abierto es solo el primer paso. Hay que identificar qué servicio responde realmente. Un puerto 443 no siempre es una aplicación web común, y un servicio puede ejecutarse en un puerto no estándar.
La detección de servicios puede usar:
Un banner es información que un servicio entrega sobre sí mismo. Puede incluir nombre, versión, sistema operativo, módulo o configuración. Es útil, pero no siempre confiable.
| Banner | Posible utilidad | Limitación |
|---|---|---|
| OpenSSH_8.x | Orientar revisión de configuración y versión | Puede estar parcheado por distribución |
| Apache/2.4.x | Identificar servidor web | Módulos y parches no siempre visibles |
| Microsoft-IIS | Inferir plataforma Windows | Puede estar detrás de proxy |
| Versión oculta | Menor fuga directa | No impide fingerprinting por comportamiento |
Fingerprinting es el proceso de identificar tecnologías, sistemas o servicios por su comportamiento. No depende solo de banners; también analiza respuestas, tiempos, errores, opciones soportadas, cabeceras y detalles de protocolo.
Tipos comunes:
Algunas herramientas intentan inferir el sistema operativo observando detalles de red: TTL, tamaño de ventana, opciones TCP, respuestas a paquetes específicos y comportamiento ante puertos abiertos o cerrados.
La detección puede fallar por:
Por eso conviene tratar el resultado como estimación, no como certeza absoluta.
En servicios web, el fingerprinting puede revelar servidor, framework, lenguaje, CMS, librerías, WAF, CDN y tecnologías de frontend. Estas señales ayudan a planificar enumeración y pruebas específicas.
Ocultar cabeceras ayuda, pero no elimina todas las señales. El comportamiento de la aplicación también revela información.
Cuando un servicio usa TLS, el escaneo debe considerar certificado, nombres alternativos, versiones de protocolo, suites de cifrado y configuración. Además, el certificado puede revelar dominios relacionados.
No todos los servicios usan su puerto habitual. Una aplicación web puede estar en 8080, 8443 o 8000; SSH puede estar en otro puerto; una base de datos puede exponerse en un puerto cambiado.
Por eso es importante detectar el servicio real y no asumirlo solo por número de puerto.
Durante el escaneo, puede que no estés interactuando con el servidor final sino con una capa intermedia. Esto afecta resultados, fingerprinting y conclusiones.
| Intermediario | Señales posibles | Impacto en el análisis |
|---|---|---|
| CDN | IPs de proveedor, cabeceras específicas, caché | Oculta infraestructura de origen |
| WAF | Bloqueos, desafíos, respuestas uniformes | Puede alterar pruebas web y fingerprinting |
| Proxy inverso | Redirecciones, cabeceras, certificados compartidos | Concentra varios servicios detrás de un punto |
| Balanceador | Respuestas variables, cookies de persistencia | Puede distribuir entre servidores distintos |
Después de detectar servicios, hay que decidir qué enumerar primero. La prioridad depende de exposición, criticidad, tipo de servicio, autenticación y relación con el negocio.
Algunas evaluaciones permiten usar credenciales. Esto cambia el tipo de información disponible. Un escaneo no autenticado muestra lo que ve un actor externo; uno autenticado puede revelar servicios internos, versiones exactas o configuraciones.
El uso de credenciales debe estar documentado y limitado a cuentas de prueba o cuentas autorizadas para la evaluación.
El filtrado puede provenir de firewalls, ACL, WAF, IPS, reglas cloud, políticas locales o listas de bloqueo. Interpretarlo correctamente evita conclusiones falsas.
Los escaneos pueden afectar sistemas frágiles si se ejecutan con alta intensidad o con probes inadecuadas. Esto es especialmente importante en sistemas legados, dispositivos embebidos, equipos de red, impresoras, cámaras, sistemas industriales o aplicaciones críticas.
Buenas prácticas:
El resultado del escaneo debe quedar documentado de forma ordenada. Esto permite reproducir hallazgos y preparar la enumeración posterior.
| Dato | Ejemplo | Uso |
|---|---|---|
| Host | 192.168.56.20 | Identificar objetivo |
| Puerto/protocolo | 443/TCP | Ubicar superficie expuesta |
| Servicio | HTTPS | Planificar enumeración |
| Versión estimada | Nginx 1.x | Investigar vulnerabilidades y configuración |
| Confianza | Alta, media o baja | Diferenciar hecho de inferencia |
| Observaciones | Detrás de CDN, requiere SNI | Evitar conclusiones incorrectas |
Las herramientas pueden equivocarse. La validación manual ayuda a confirmar servicios importantes antes de pasar a análisis de vulnerabilidades.
El escaneo indica qué mirar. La enumeración profundiza en cada servicio. Por ejemplo, encontrar 445/TCP abierto conduce a enumeración SMB; encontrar 443/TCP conduce a revisión web; encontrar 53/UDP conduce a pruebas DNS autorizadas.
| Servicio detectado | Siguiente enumeración | Preguntas iniciales |
|---|---|---|
| HTTP/HTTPS | Rutas, tecnologías, autenticación, cabeceras | ¿Qué aplicación es? ¿Requiere login? ¿Qué expone? |
| SSH | Versión, política, usuarios autorizados | ¿Está expuesto correctamente? ¿Permite root? |
| SMB | Shares, usuarios, versión, firma SMB | ¿Hay recursos accesibles? ¿Permite sesión nula? |
| DNS | Registros, transferencia de zona, resolución | ¿Revela información interna? ¿Está bien restringido? |
| Base de datos | Autenticación, exposición, versión | ¿Debe estar accesible desde esta red? |
Un flujo ordenado para esta fase puede ser:
El escaneo de puertos y la detección de servicios permiten entender qué superficie técnica ofrece cada host. Cuando se ejecutan con criterio, producen una base confiable para la enumeración profunda y el análisis de vulnerabilidades.
En el próximo tema avanzaremos sobre enumeración de servicios específicos como DNS, SMB, FTP, SSH, SMTP, HTTP y bases de datos, donde cada protocolo requerirá preguntas y técnicas propias.