Le serveur DHCP peut-il déterminer le système d'exploitation client?
Je travaille sur un outil de surveillance des passerelles sur les réseaux locaux basé sur le Web et j'aimerais pouvoir en quelque sorte déterminer quel système d'exploitation un appareil sur le réseau exécute et il me semble que l'endroit le plus évident pour découvrir c'est à l'heure à laquelle une adresse IP est attribuée par le serveur DHCP.
À défaut, je sais comment filtrer le trafic sur le port 80 et extraire les informations d'en-tête HTML, mais cette méthode repose sur l'attente de l'appareil pour surfer sur le Web et donc moins souhaitable qu'une détection / résolution très précoce, en particulier. car tous les appareils ne seront pas utilisés pour naviguer sur Internet.
J'ai un contrôle complet sur la configuration de la passerelle - elle exécute une distribution Debian simplifiée, donc tous les autres outils qui feraient le travail - DHCP, DNS, ARP, etc., je suis ouvert aux suggestions!
la source
Réponses:
Certains travaux ont été effectués pour déterminer les différences subtiles dans les paquets DHCP de différents systèmes d'exploitation, entraînant des empreintes digitales DHCP. Les exemples incluent les options présentes dans la requête DHCP et leur ordre, et le contenu de certaines options comme l'option 55 (liste des paramètres).
Jetez un œil aux papiers et signatures sur fingerbank.org . Cela suggère (je ne l'ai pas testé moi-même) que les empreintes digitales du système d'exploitation passif basées sur le trafic DHCP peuvent être effectuées. Le résultat peut éventuellement être amélioré en incluant d'autres informations, comme les propriétés IP génériques (TTL, diffserv, ...).
L'empreinte digitale active peut fournir un meilleur résultat, mais peut ne pas être une option dans votre cas d'utilisation.
Le site Web de Fingerbank mentionne quelques produits open source qui utilisent les signatures. L'appliance DHCP propriétaire Infoblox semble inclure une fonctionnalité similaire, mais aucun détail technique n'est fourni.
la source
Certains clients DHCP ne divulguent pas de manière fiable les informations du système d'exploitation au démarrage. Comme cela a été mentionné ci-dessus, il existe une certaine propriété intellectuelle associée à ces techniques; par exemple, Infoblox et Cisco ISE peuvent créer des profils de système d'exploitation client basés sur les paquets DHCP qu'ils voient. En fait, Cisco ISE inclut des algorithmes de classification de système d'exploitation assez sophistiqués, si vous pouvez lui envoyer plus de DHCP.
Alternativement, vous pouvez utiliser une heuristique comme le bogue endian de Windows dans le champ "secondes écoulées", mais s'appuyer sur un bogue du système d'exploitation est une mauvaise façon de gérer la détection du système d'exploitation.
Si vous devez vraiment détecter le système d'exploitation sans dispositif de fournisseur dédié, émettez simplement une adresse IP et scannez l'hôte avec NMAP après avoir envoyé le DHCP Ack. L'utilisation d'en-têtes HTTP n'est pas aussi fiable que nmap , car n'importe qui peut modifier la chaîne UserAgent s'il le souhaite. nmap n'est pas fiable à 100% pour la détection du système d'exploitation, mais il est à peu près aussi bon que vous le constaterez si vous devez choisir une seule méthode pour tout.
Je voudrais en faire une option configurable sur le serveur, car certaines personnes peuvent ne pas aimer une analyse nmap par défaut sur chaque hôte DHCP.
Exemple d' analyse du système d'exploitation nmap contre Windows7:
la source
-T5
drapeau à accélérer les choses de façon drastique .Dans le cadre du processus DHCP lui-même, je ne le pense pas. Cependant, vous pouvez gratter vos journaux dhcpd, surveiller les acks dhcp et en fonction de ceux-ci exécuter un processus externe comme nmap os fingerprinting pour voir si vous pouvez comprendre ce qui se cache derrière l'IP qui vient d'être attribuée.
la source
La réponse exacte la plus courte est non. Vous avez déjà obtenu des réponses utiles
nmap
, mais si cela doit être via DHCP, de nombreux clients envoient leurs identificateurs de classe de fournisseur (option DHCP 60) dans leurs paquets de découverte afin que le serveur DHCP puisse fournir une offre avec des options spécifiques au fournisseur (option DHCP 43). Si vous exécutez tcpdump, jetez un œil aux paquets de découverte DHCP envoyés par les clients pour l'option 60, vous pouvez voir des trucs commeMSFT 5.0
pour les clients Windows, généralementudhcpc
pour les périphériques intégrés exécutant le client micro dhcp, etc. Gardez à l'esprit que ces informations ne sont pas très spécifiques car elles sont utilisées pour distinguer le client DHCP plutôt que le système d'exploitation.la source