Con la herramienta nmap, ¿es posible descubrir por qué un puerto en particular está cerrado / abierto?

Sí, puede descubrir por qué Nmap considera el puerto abierto. Esto requiere la opción ‘–razón’ para la salida normal (legible por humanos), pero la misma información siempre está en la salida XML si la guardó con ‘-oX’ o ‘-oA’. Para un escaneo SYN, obtendrá resultados como:

PORT STATE SERVICE REASON

22/tcp open ssh syn-ack ttl 52

23/tcp closed telnet reset ttl 52

Esto significa que el objetivo devolvió un paquete TCP SYNACK en el puerto 22 y un TCP RST en el puerto 23, y ambos tenían un TTL de 52 cuando llegaron. Para un escaneo de TCP Connect (‘-sT’) vería esto en su lugar:

PORT STATE SERVICE REASON

22/tcp open ssh syn-ack

23/tcp closed telnet conn-refused

Hay menos información disponible cuando se utiliza la llamada de conexión de socket proporcionada por el sistema operativo.