DHCP服务器可以确定客户端的操作系统吗?[关闭]


18

DHCP服务器可以确定客户端操作系统吗?

我正在为基于Web的本地网络上的网关开发一个监视工具,希望能够以某种方式确定网络上设备正在运行的操作系统,在我看来,发现这一点最明显的地方是DHCP服务器分配IP地址的时间。

未能做到这一点,我确实知道如何在端口80上过滤流量并提取HTML标头信息,但是这种方法依赖于等待设备上网,因此比起早期的检测/解决方案尤其不理想。因为并非所有设备都将用于浏览互联网。

我完全可以控制网关的配置-它运行着简化的debian发行版,因此可以完成此任务的任何其他工具-DHCP,DNS,ARP等,我都乐于接受建议!


Infoblox具有将执行操作系统指纹识别的DHCP服务器。
some_guy_long_gone 2013年

Answers:


15

已经进行了一些工作来确定来自不同操作系统的DHCP数据包之间的细微差异,从而导致DHCP指纹。示例包括DHCP请求中存在的选项及其顺序,以及某些选项(如选项55(参数列表))的内容。

fingerbank.org上查看论文和签名。这表明(尚未自己测试)可以完成基于DHCP流量的被动OS指纹识别。通过包含其他信息,例如通用IP属性(TTL,diffserv等),可能会改善结果。

主动指纹识别可能会提供更好的结果,但在您的用例中可能不是一个选择。

Fingerbank网站提到了几个使用签名的开源产品。专有的DHCP设备Infoblox似乎包含类似的功能,但未提供技术细节。


3

某些DHCP客户端在启动时无法可靠地公开OS信息。如上所述,这些技术有一些知识产权。例如,Infoblox和Cisco ISE可以根据他们看到的dhcp数据包构建客户端操作系统配置文件。实际上,如果您可以向其发送多个dhcp,则Cisco ISE包括一些相当复杂的OS分类算法。

另外,您可以在“秒数”字段中使用类似Windows endian bug的启发式方法,但是依靠OS Bug是处理OS检测的一种较差的方法。

如果确实必须在没有专用供应商设备的情况下检测操作系统,则只需发出IP地址,并在发送DHCP确认后使用NMAP扫描主机。使用HTTP标头不如nmap可靠,因为任何人都可以根据需要更改UserAgent字符串。 nmap在操作系统检测方面不是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有了更多的了解。被动选项似乎是我最好的选择。
Michael Lang

@MichaelLang要减少所需的时间,请使用带有-T5标志的nmap运行以大大加快速度。
瑞安·弗利

2

作为DHCP流程本身的一部分,我不这么认为。但是,您可以刮擦dhcpd日志,注意dhcp ack,然后基于这些文件执行nmap os指纹识别等外部过程,以查看是否可以找出刚分配的IP背后的内容。


2

最短的准确答案是“否”。您已经获得了有关的有用答案nmap,但是,如果必须通过DHCP,许多客户端会在其发现数据包中发送其供应商类别标识符(DHCP选项60),以便DHCP服务器可以为商品提供供应商特定的选项(DHCP选项43)。如果运行tcpdump,查看客户端为选项60发送的DHCP发现数据包,您会看到类似MSFT 5.0Windows客户端,udhcpc运行micro dhcp客户端的嵌入式设备等之类的信息。请记住,此信息不是很具体,因为使用了该信息。区分DHCP客户端而不是操作系统。


1
同样,至少缩小设备在网络上的范围的另一种有用方法是通过在IEEE网站上基于其MAC地址查找其OUI。
Michael Lang
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.