Este artículo describe cómo engañar a nmap
en su detección de huellas dactilares del SO.
En resumen, nmap
envía paquetes mal formados para abrir y cerrar puertos y escucha las respuestas. Debido a que cada sistema operativo implementa su propia pila TCP / IP, la respuesta se puede comparar con una base de datos de firmas conocidas y el sistema operativo adivinado.
Las dos formas de mitigar esto son
- Parche la fuente del kernel con "parche de sigilo"
Este parche simplemente descarta los paquetes TCP / IP recibidos con el siguientes coincidencias:
Paquetes con SYN y FIN activados (tcp_ignore_synfin) (sonda QueSO).
Paquetes falsos: si el encabezado TCP tiene activo el bit res1 (uno de los bits reservados, entonces es un paquete falso) o no tiene ningún de los siguientes activados: ACK, SYN, RST, FIN (prueba Nmap 2).
Paquetes con FIN, PUSH y URG activados (prueba Nmap 7).
- Parche las fuentes del núcleo con "Personalidad IP" para modificar el comportamiento de la pila TCP / IP en esas situaciones de esquina, emulando otro sistema operativo (Sega Dreamcast por ejemplo)
Aunque este último enfoque puede tener algunos problemas de eficiencia / estabilidad:
Los ajustes permiten engañar a un escáner pero podrían romper la conectividad regular al cambiar los parámetros de la red. También podría debilitar el sistema si la pila de IP emulada no es tan fuerte como la inicial.
el primero no tiene inconvenientes mencionados.
Por qué este comportamiento no es el predeterminado. ¿Por qué los sistemas operativos responden a esos paquetes?