Detección de servicios y sistema operativo
Descubrir un puerto abierto responde que una aplicación aceptó cierta interacción. Todavía no dice cuál. Cuando Nmap muestra 80/tcp http sin detección de versiones, el nombre puede proceder únicamente de la asociación convencional de nmap-services. Es una pista obtenida del número, no una conversación con el listener.
La detección activa intenta cerrar esa distancia. Envía probes, reconoce banners o respuestas binarias y aplica reglas de coincidencia. El resultado sigue siendo una inferencia, pero ahora se apoya en comportamiento observado. Producto, versión, tipo de dispositivo y Common Platform Enumeration (CPE) tienen fuentes y niveles de confianza distintos, por lo que deben conservarse por separado.
Detección de versiones
Sección titulada «Detección de versiones»-sV usa nmap-service-probes. Cada probe define payload, rareza, puertos candidatos, reglas de coincidencia y fallback. Nmap puede devolver protocolo, producto, versión, hostname, tipo de dispositivo, familia de sistema operativo y CPE:
sudo nmap -sV -n -Pn -p PORT_LIST --reason \ -oA scans/08-services TARGET_IP--version-light reduce la intensidad. --version-all intenta todos los probes apropiados. Más probes aumentan conexiones, bytes, tiempo y registros, pero no convierten la firma en certeza. Un producto que personaliza su banner puede producir una coincidencia exacta falsa. Un proxy que responde por varios backends puede producir una identificación correcta del frontal e irrelevante para el sistema que se intenta modelar.
--version-trace explica probes y coincidencias sobre un puerto aislado:
sudo nmap -sV --version-trace -n -Pn -p PORT TARGET_IPConserva el output cuando una identificación depende de un match o softmatch. Revisa el archivo de probes de la instalación si necesitas conocer el payload exacto.
Excepciones y efectos
Sección titulada «Excepciones y efectos»La detección excluye normalmente TCP 9100 porque algunas impresoras imprimen los probes recibidos. --allports elimina esa exclusión. La decisión cambia estado físico y consumo de papel si el listener es una impresora, por lo que identifica antes el dispositivo.
TLS, proxies y middleboxes pueden ocultar o sustituir banners. Un servicio puede ofrecer protocolos distintos mediante ALPN, SNI, STARTTLS o negociación inicial. Nmap puede reconocer el frontal sin identificar el backend.
Validación manual
Sección titulada «Validación manual»El siguiente paso depende del protocolo:
- Ncat o Netcat para un banner que habla primero
openssl s_clientpara TLS y STARTTLScurlpara HTTPdigpara DNSsmbcliento librerías SMB para dialectos y sharesswakspara SMTP
Una conexión TCP silenciosa no refuta el servicio. Puede esperar una petición, TLS o framing binario. Captura la negociación y compara la respuesta con la especificación o documentación oficial. Si Nmap identifica ssl/unknown, prueba Server Name Indication (SNI) y Application-Layer Protocol Negotiation (ALPN) antes de buscar otro puerto. Si devuelve un softmatch, trata la familia de protocolo como orientación y busca el intercambio que produzca una coincidencia más específica.
Un diagnóstico útil modifica una sola capa. Primero confirma que TCP conecta. Después prueba TLS. Luego añade el nombre esperado y, por último, habla el protocolo. Este orden permite distinguir un listener silencioso de un handshake TLS fallido, un certificado por defecto o un virtual host desconocido.
Fingerprint de sistema operativo
Sección titulada «Fingerprint de sistema operativo»-O envía pruebas TCP/IP y compara respuestas con nmap-os-db. El fingerprint mejora cuando existe al menos un puerto TCP abierto y uno cerrado. --osscan-limit omite hosts que no ofrecen condiciones razonables:
sudo nmap -O --osscan-limit -n -Pn \ -p OPEN_AND_CLOSED_PORTS TARGET_IPLa estimación puede verse alterada por:
- NAT y port forwarding
- balanceadores y proxies
- firewalls que normalizan flags y opciones TCP
- virtualización y plantillas compartidas
- pérdida, retransmisiones o falta de un puerto cerrado
- dispositivos que responden en nombre del host
No conviertas una línea OS details en un hecho sin cruzarla con TTL, banners, protocolos, TLS, SMB, SSH, comportamiento HTTP y acceso local cuando exista. Un match amplio como «Linux 4.x or 5.x» orienta compatibilidad y siguientes probes. No justifica atribuir una distribución ni una versión de kernel concreta.
-A como composición
Sección titulada «-A como composición»-A activa detección de sistema operativo, versiones, scripts default y traceroute:
-A = -O + -sV + -sC + --tracerouteNo es un «escaneo completo». Puede omitir puertos no seleccionados y ejecutar interacciones que no habías revisado. Úsalo solo cuando cada componente responda una pregunta y sobre un conjunto de puertos acotado.
Registro y pivots
Sección titulada «Registro y pivots»Anota la base de datos usada, intensidad, puerto, origen y evidencia manual. Desde un pivot pueden cambiar RTT, MTU y visibilidad. Repite el fingerprint solo si la nueva posición puede resolver una incertidumbre.
Si la detección funciona desde el exterior y falla desde el pivot, comprueba antes la calidad del túnel y el soporte de la técnica. Si varios puertos devuelven el mismo banner inesperado, considera un proxy de autenticación, un honeypot o una página de bloqueo antes de inventariar múltiples copias del mismo producto. El patrón entre puertos puede explicar más que cada coincidencia aislada.