诸神之眼:Nmap网络安全审计技术揭秘
上QQ阅读APP看书,第一时间看更新

4.1 远程操作系统检测简介

其实很多著名的工具都提供远程对操作系统进行检测的功能,这一点用在入侵上就可以成为黑客的工具,而用在网络管理上就可以进行资产管理和操作系统补丁管理。你也可以使用Nmap在网络上找到那些已经过时的系统或者未经授权的系统。

但是并没有一种工具可以提供绝对准确的远程操作系统信息。几乎所有的工具都使用了一种“猜”的方法。当然,这不是凭空猜测,而是通过向目标发送探针,然后根据目标的回应来猜测系统。这个探针大都是以TCP和UDP数据包的形式,检查的细节包括初始序列号(ISN)、TCO选项、IP标识符(ID)数字时间戳、显示拥塞通知(ECN)、窗口大小等。每个操作系统对于这些探针都会做出不同的响应,这些工具提取出这些响应中的特征,然后记录在一个数据库中。Nmap进行识别的探针和响应对应的关系保存在Nmap-os-db文件中。Nmap会尝试验证如下参数。

▯ 供应商的名字:操作系统的供应商的名字,比如微软或者SUN。

▯ 操作系统:操作系统的名字,比如Windows、Mac OS X、Linux等。

▯ 操作系统的版本:比如Windows XP、Windows 2000、Windows 2003、Windows 2008等。

▯ 当前设备的类型:比如通用计算机、打印服务器、媒体播放器、路由器、WAP或者电力装置等。

除了这些参数以外,操作系统检测还提供了关于系统运行时间和TCP序列可预测性信息的分类,在命令行中使用-O参数通过端口扫描来完成对操作系统的扫描,如图4-1所示。

图4-1 使用Nmap对目标操作系统进行检测

这个命令将会使用Nmap默认的SYN扫描方式来完成端口检测,不过操作系统检测选项可以和任何其他的检测技术相结合使用。Nmap包括多个命令行参数来实现操作系统检测。例如,如果采用--osscan-limit选项,Nmap只对满足“同时具有状态为open和closed的端口”这个条件的主机进行操作系统检测,特别在使用-P0扫描多个主机时可以节约很多时间。注意这个选项仅在使用-O或-A进行操作系统检测时起作用。

从上面的扫描示例中也能看出,Nmap默认会对无法精确匹配的结果进行推测。表4-1中给出了具体的选项。

表4-1 Nmap中扫描目标操作系统的可选项