¿Es posible que el servidor DHCP determine el sistema operativo del cliente?
Estoy trabajando en una herramienta de monitoreo para puertas de enlace en redes locales que se basa en la web y me gustaría poder determinar de alguna manera qué sistema operativo está ejecutando un dispositivo en la red y me parece el lugar más obvio para descubrir que está en la hora en que el servidor DHCP asigna una dirección IP.
De lo contrario, sé cómo filtrar el tráfico en el puerto 80 y extraer la información del encabezado HTML, pero este método se basa en esperar a que el dispositivo navegue por la web y, por lo tanto, sea menos deseable que una detección / resolución muy temprana, especialmente. ya que no todos los dispositivos se utilizarán para navegar por internet.
Tengo el control completo de la configuración de la puerta de enlace: está ejecutando una distribución de Debian reducida, por lo que cualquier otra herramienta que haga el trabajo: DHCP, DNS, ARP, etc., ¡estoy abierto a sugerencias!
fuente
Respuestas:
Se han realizado algunos trabajos para determinar diferencias sutiles en los paquetes DHCP de diferentes sistemas operativos, lo que resulta en huellas dactilares DHCP. Los ejemplos incluyen las opciones presentes en la solicitud DHCP y su orden, y el contenido de ciertas opciones como la opción 55 (lista de parámetros).
Eche un vistazo a los documentos y firmas en fingerbank.org . Esto sugiere (no lo he probado yo mismo) se pueden hacer huellas digitales pasivas del sistema operativo basadas en el tráfico DHCP. El resultado posiblemente se puede mejorar mediante la inclusión de otra información, como propiedades de IP genéricas (TTL, diffserv, ...).
Las huellas digitales activas pueden proporcionar un mejor resultado, pero pueden no ser una opción en su caso de uso.
El sitio web de Fingerbank menciona un par de productos de código abierto que utilizan las firmas. El dispositivo patentado DHCP Infoblox parece incluir una característica similar, pero no se proporcionan detalles técnicos.
fuente
Algunos clientes DHCP no divulgan de manera confiable la información del sistema operativo en el arranque. Como se mencionó anteriormente, existe cierta propiedad intelectual asociada con estas técnicas; por ejemplo, Infoblox y Cisco ISE pueden construir perfiles de SO del cliente basados en los paquetes dhcp que ven. En realidad, Cisco ISE incluye algunos algoritmos de clasificación de SO bastante sofisticados, si puede enviarle más de dhcp.
Alternativamente, puede usar una heurística como el error endian de Windows en el campo "segundos transcurridos", pero confiar en un error del sistema operativo es una mala manera de manejar la detección del sistema operativo.
Si realmente debe detectar el sistema operativo sin un dispositivo de proveedor dedicado, simplemente emita una dirección IP y escanee el host con NMAP después de enviar el DHCP Ack. El uso de encabezados HTTP no es tan confiable como nmap , porque cualquiera puede cambiar la cadena de UserAgent si lo desea. nmap no es 100% confiable en la detección del sistema operativo, pero es tan bueno como lo encontrará si debe elegir un método único para todo.
Haría de esto una opción configurable en el servidor ya que a algunas personas no les gusta un escaneo nmap predeterminado en cada host DHCP.
Ejemplo de exploración del sistema operativo nmap contra Windows7:
fuente
-T5
bandera para acelerar las cosas drásticamente .Como parte del proceso DHCP en sí, no lo creo. Sin embargo, puede raspar sus registros de dhcpd, observar los ataques de dhcp y, en función de ellos, ejecutar un proceso externo como nmap os fingerprinting para ver si puede descubrir qué hay detrás de la IP que se acaba de asignar.
fuente
La respuesta precisa más corta es no. Ya obtuvo respuestas útiles
nmap
, pero si debe ser a través de DHCP, muchos clientes envían sus identificadores de clase de proveedor (opción 60 de DHCP) en sus paquetes de descubrimiento para que el servidor DHCP pueda ofrecer una oferta con opciones específicas del proveedor (opción 43 de DHCP). Si ejecuta tcpdump, eche un vistazo a los paquetes de descubrimiento de DHCP enviados por los clientes para la opción 60, puede ver cosas comoMSFT 5.0
para los clientes de Windows,udhcpc
generalmente para dispositivos integrados que ejecutan el cliente micro dhcp, etc. Tenga en cuenta que esta información no es muy específica ya que se utiliza para distinguir el cliente DHCP en lugar del sistema operativo.fuente