Pregunta

Yo estaba leyendo el código fuente nmap porque me gustaría saber cómo lo hace descubrir que ciertos puertos se filtran o un cortafuegos. Tengo alguna experiencia con tomas en C y he construido analizadores de puertos simples, eso es fácil - si la conexión se realiza correctamente, el puerto está abierto, de lo contrario, está cerrado (debido a la RST devuelto). Pero en el caso de los puertos con firewall, no regresan paquete RST, y mi escáner de puertos sólo "espera" para siempre.

Si la experiencia tiene de alguien con este tema, por favor que me señale las partes del código nmap donde se produce la determinación real de escaneo y el puerto de estado, o por lo menos dime si hay otros códigos disponibles que se ocupan de este problema.

¿Fue útil?

Solución

Use llamadas a la API de socket asíncrono (es decir, no espere a que la conexión que se establezca, y en lugar de tratar el siguiente puerto / dirección en paralelo) y definir un tiempo de espera razonable (por ejemplo, si no se establece la conexión después de un minuto se puede considerar que filtra).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top