¿Puede el servidor DHCP determinar el sistema operativo del cliente? [cerrado]


18

¿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!


Infoblox tiene un servidor DHCP que realizará las huellas digitales del sistema operativo.
some_guy_long_gone

Respuestas:


15

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.


3

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:

[mpenning@myhost ~]$ sudo nmap -O 10.1.1.1

Starting Nmap 5.51 ( http://nmap.org ) at 2013-08-24 16:20 CDT
Nmap scan report for 10.1.1.1
Host is up (0.00078s latency).
Not shown: 985 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds

Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 - SP2, Server 2008, or Windows 7 Ultimate
Network Distance: 5 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.25 seconds
[mpenning@myhost ~]$

Gracias por señalar las capacidades de huellas dactilares de nmap ... Es ordenado y funciona aproximadamente el 50% del tiempo (obtuve 5 de las 10 computadoras correctas en mi red), pero sus escaneos toman de 25 segundos a 102 segundos para cada dispositivo. Esto sí, sin embargo, el plomo me ayudó a comprender mucho sobre las huellas dactilares del sistema operativo y especialmente. Opciones pasivas que parecen ser mi mejor apuesta.
Michael Lang

@MichaelLang Para aliviar la cantidad de tiempo que lleva, ejecuta nmap con la -T5bandera para acelerar las cosas drásticamente .
Ryan Foley

2

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.


2

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 como MSFT 5.0para los clientes de Windows, udhcpcgeneralmente 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.


1
Además, otra forma útil de al menos reducir lo que puede ser un dispositivo en la red es buscar su OUI en función de su dirección MAC en el sitio web de IEEE.
Michael Lang
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.