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

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

失败了,我虽然确实知道如何过滤端口80上的流量并提取HTML标头信息,但是这种方法依赖于等待设备上网,因此比起早期的检测/解决方案尤其不理想。

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

评论

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

#1 楼

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

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

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

#2 楼

某些DHCP客户端在启动时无法可靠地公开OS信息。如上所述,这些技术有一些知识产权。例如,Infoblox和Cisco ISE可以根据他们看到的dhcp数据包构建客户端操作系统配置文件。实际上,如果您可以向其发送多个dhcp,则Cisco ISE包括一些相当复杂的OS分类算法。依靠操作系统错误是处理操作系统检测的一种较差的方法。 DHCP确认。使用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)
2013年9月6日在21:18



@MichaelLang要减少花费的时间,请使用-T5标志运行nmap以大幅度加快速度。

– Ryan Foley
2014年5月28日上午7:10

#3 楼

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

#4 楼

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

评论


同样,至少缩小设备在网络上的范围的另一种有用方法是,通过在IEEE网站上基于其MAC地址查找其OUI。

–迈克尔·朗(Michael Lang)
2013年9月6日在21:20