DHCPサーバーはクライアントのOSを判別できますか?[閉まっている]


18

DHCPサーバーがクライアントのオペレーティングシステムを判別することは可能ですか?

私はウェブベースのローカルネットワーク上のゲートウェイの監視ツールに取り組んでおり、ネットワーク上のデバイスがどのOSを実行しているかを何らかの方法で判断できるようにしたいと考えています。 DHCPサーバーによってIPアドレスが割り当てられる時間。

それに失敗すると、ポート80でトラフィックをフィルタリングし、HTMLヘッダー情報を取得する方法を知っていますが、この方法はデバイスがWebをサーフィンするのを待つことに依存しているため、検出/解決の非常に早い段階よりも望ましくありません。すべてのデバイスがインターネットの閲覧に使用されるわけではないためです。

私はゲートウェイの設定を完全に制御します-縮小されたDebianディストリビューションを実行するので、仕事をする他のツール-DHCP、DNS、ARPなど、私は提案を受け付けています!


Infobloxには、OSフィンガープリントを実行するDHCPサーバーがあります。
-some_guy_long_gone

回答:


15

さまざまなOSからのDHCPパケットの微妙な違いを判別するためにいくつかの作業が行われ、DHCPフィンガープリントが生成されます。例には、DHCP要求に存在するオプションとその順序、およびオプション55(パラメーターリスト)などの特定のオプションの内容が含まれます。

fingerbank.orgの論文と署名をご覧ください。これは、DHCPトラフィックに基づいたパッシブOSフィンガープリントを実行できることを示しています(自分でテストしていません)。結果は、一般的なIPプロパティ(TTL、diffserv、...)などの他の情報を含めることで改善できる可能性があります。

アクティブフィンガープリントはより良い結果をもたらす可能性がありますが、ユースケースでは選択肢にならない場合があります。

FingerbankのWebサイトでは、署名を使用するいくつかのオープンソース製品に言及しています。独自のDHCPアプライアンスInfobloxには同様の機能が含まれているようですが、技術的な詳細は提供されていません。


3

一部のDHCPクライアントは、起動時にOS情報を確実に開示しません。前述のように、これらの技術に関連する知的財産がいくつかあります。たとえば、InfobloxとCisco ISEは、表示されるdhcpパケットに基づいてクライアントOSプロファイルを構築できます。実際、Cisco ISEには、dhcp以上を送信できる場合、かなり洗練されたOS分類アルゴリズムが含まれています。

または、「秒経過」フィールドでWindowsエンディアンバグのようなヒューリスティックを使用できますが、OSバグに依存することは、OS検出を処理する方法としては不十分です。

専用ベンダーアプライアンスなしでOSを本当に検出する必要がある場合は、IPアドレスを発行し、DHCP Ackを送信した後にNMAPでホストをスキャンします。HTTPヘッダーの使用はnmapほど信頼性が高くありません。必要に応じてだれでもUserAgent文字列を変更できるためです。 nmapはOS検出で100%信頼できるものではありませんが、すべてに対して単一の方法を選択する必要がある場合に見つけるのと同じくらい良いです。

一部の人々はすべてのDHCPホストでデフォルトのnmapスキャンを好まない可能性があるため、これをサーバー上で構成可能なオプションにします。

Windows7に対するnmap OSスキャンの例:

[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 ~]$

nmapのフィンガープリント機能を指摘してくれてありがとう...それはきちんとしていて、約50%の時間で動作します(私のネットワーク上で10台のコンピューターのうち5台が正しく動作しました)が、スキャンは各デバイスで25秒から102秒かかります。ただし、これはOSのフィンガープリントとESPについて多くを理解するのに役立ちました。私の最善策と思われる受動的なオプション。
マイケルラング

@MichaelLang所要時間を短縮するには、-T5フラグを指定してnmapを実行し、物事を大幅にスピードアップます。
ライアンフォーリー

2

DHCPプロセス自体の一部として、私はそうは思わない。ただし、dhcpdログをスクレイプし、dhcp acksを監視し、それらに基づいてnmap osフィンガープリントなどの外部プロセスを実行して、割り当てられたIPの背後にあるものを把握できるかどうかを確認できます。


2

最短の正確な答えはノーです。についての有用な回答は既に得られnmapていますが、DHCP経由でなければならない場合、多くのクライアントがベンダーパケット識別子(DHCPオプション60)をディスカバーパケットで送信するため、DHCPサーバーはベンダー固有のオプション(DHCPオプション43)を提供できます。tcpdumpを実行し、オプション60のクライアントによって送信されたDHCP発見パケットを見るとMSFT 5.0、Windowsクライアントのudhcpc場合、micro dhcpクライアントを実行している組み込みデバイスの場合などを見ることができます。オペレーティングシステムではなくDHCPクライアントを区別するため。


1
また、少なくともデバイスがネットワーク上にあるものを絞り込むための別の便利な方法は、IEEEのWebサイトでMACアドレスに基づいてOUIを検索することです。
マイケルラング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.