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

4.2 操作系统指纹简介

远程判断目标计算机操作系统的方法一般可以分成两类。

被动式方法:并不向目标系统发送任何数据包,而是通过各种抓包工具来收集流经网络的数据报文,再从这些报文中得到目标计算机的操作系统信息。

主动式方法:指客户端主动向远程主机发送信息,远程主机一般要对这些信息做出反应,回复一些信息,发送者对这些返回的信息进行分析,就有可能得知远程主机的操作系统类型。这些信息可以是通过正常的网络程序如Telnet、FTP等与主机交互的信息,也可以是一些经过精心构造、正常的或残缺的数据报文。

Nmap并不使用被动式的方法。Nmap中的主动式方法采用多达15个探针的操作系统指纹扫描包。操作系统指纹这个名字来源于生物学上的名词指纹。因为人的指纹都是独一无二的,因此可以作为身份验证的一种机制。同样每一种类型的操作系统也都有自己的特征,通过向一台计算机发送特定格式的探针(数据包)来查看目标主机的响应数据,这一过程就是操作系统指纹分析的过程。这些强大的探针利用了TCP、UDP、ICMP等各种协议。这些探针经过巧妙设计,可以发现目标操作系统细微的差别。

Nmap中对数据包进行调整的部分包括窗口大小、窗口字段、分片标识、时间戳、序号以及其他一些细节,例如TTL等。这些探针的结构都很简单,但是它们都是被精心设计出来的,以便观察目标系统的反应,从而发现不同操作系统之间的差异。另外这里还有一个扩展的方法,你可以自己来设计探针数据包,并将它发送到不同的操作系统中,以观察各个操作系统的反应,并将这些反应保存到Nmap中的操作系统指纹数据库中。

各种不同的操作系统在接收这些探针文件以后会回应不同的信息,这些独特的特征会被保存到Nmap的操作系统指纹数据库中,这个文件名为Nmap-os-db。以后在进行扫描的时候,Nmap就会将目标系统的扫描结果与这个数据库中的文件进行比对,然后得出目标操作系统的类型。

在Nmap扫描中,可以简单地使用-O选项来完成对目标操作系统的扫描。例如:

    Nmap -F -O <ip address>

这个扫描过程中,并不需要对网络造成多大的负担,虽然包含了大量的信息,但是每一个探针文件体积都很小。图4-2给出了一个在Nmap进行扫描时所消耗的系统资源,与其他软件相对比,Nmap在进行这个扫描时所需要的资源并不多。

图4-2 在对目标进行操作系统类型扫描时所消耗的系统资源

虽然基本的操作系统扫描效果已经很好了,不过Nmap中还提供了更多的选项来保证灵活性。当然,随着我们不断调整扫描的选项,也可能会为系统带来更大的负担。另外,这些额外的操作也泄漏了我们更多的信息。这样就会增加暴露的风险。除了被目标系统发现,我们还可能会被目标网络的保护机制例如IPS/IDS所发觉。

另外一点非常值得注意的就是,我们的扫描很有可能落入了陷阱,这么说的意思就是指,扫描的目标很有可能是对方设置好的一个“蜜罐”。在我们自以为获取了很重要的信息的时候,目标的管理人员可能正在研究我们的所有行为。本书并不会详细讲解蜜罐技术,如果对此感兴趣,可以查找一些关于“蜜罐”的资料。