操作系统指纹识别工具Nmap与Xprobe的分析和研究

2010-04-13 02:01
科技传播 2010年8期
关键词:校园网正确率数据包

张 琦

广东药学院医药信息工程学院,广东 广州 510006

0 引言

随着网络技术的迅猛发展,今天的Internet已经从各个方面改变着人们的工作与生活方式,它已经成为我们生活中必不可少的一部分。但与此同时,黑客们利用网络漏洞大肆攻击入侵网络服务器与私人计算机,使网络安全与信息安全问题日益严峻。因此,为了更好的保护网络不受黑客的攻击,就必须对黑客的攻击方法、攻击原理及过程有深入详细的了解。而网络扫描是黑客攻击的第一步,他们利用一些网络探测工具对远程计算机进行扫描,其目的就是精确地判别出远程目标主机的操作系统的类型与版本、以及查出正在监听的端口等等,从而有针对性地对其实施攻击。

本文具体分析研究了操作系统指纹识别工具Nmap与Xprobe的工作原理,以及二者在不同操作系统环境下探测远程目标主机的能力与准确性。

1 Nmap的介绍

Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper),其基本功能有3个:一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;三是可以推断主机所用的操作系统[1]。通常,网络管理员利用Nmap来进行网络系统安全的评估,而黑客则用其扫描网络,通过向远程主机发送探测数据包,获取主机的响应,并根据主机的端口开放情况,得到网络的安全状况,寻找存在漏洞的目标主机,从而实施下一步的攻击[2]。

1.1 Nmap的工作原理

Nmap使用TCP/IP协议栈指纹来准确地判断出目标主机的操作类型。首先,Nmap通过对目标主机进行端口扫描,找出有哪些端口正在目标主机上监听。当侦测到目标主机上有多于一个开放的TCP端口、一个关闭的TCP端口和一个关闭的UDP端口时,Nmap的探测能力是最好的。然后,Nmap对目标主机进行一系列测试(如表1),利用得出的测试结果建立相应的目标主机的Nmap指纹。最后,将此Nmap指纹与指纹库中指纹进行查找匹配,从而得出目标主机的操作系统类型。

表1

1.2 Nmap的主要扫描类型

常用的扫描类型有Ping扫描(Ping Sweeping)、端口扫描(Port Scanning) 、隐蔽扫描(Stealth Scanning)、UDP扫描(UDP Scanning)与操作系统识别(OS Fingerprinting)等等。无论是对内网还是外网的扫描,Nmap都是很灵活的,且语法非常简单,由Nmap的不同选项和-s标志组成,下面的例子(图1)是一个对内网进行的Ping扫描。

图1

2 Xprobe的介绍

Xprobe2是基于ICMP栈指纹特征的主动探测远程操作系统类型的工具,通过主动发送UDP和ICMP请求报文到目标主机来触发ICMP消息,根据ICMP消息中网络特征值进行基于签名数据库的模糊匹配以及合理的推测,通过模糊矩阵统计分析来探测操作系统,从而确定远程操作系统的类型[3]。

在Xprobe2探测过程中,会发送不同类型的数据包到目标主机上,同时也会收到目标主机发送的响应数据包。当每收到响应数据包时,都会根据该数据包的网络特征值进行打分,来预测是何种操作系统的可能性。例如,3分代表肯定,2分代表有可能是,1分代表有可能不是,0分代表肯定不是。然后,针对不同的操作系统类型i,将每次测试的得分数进行加和,以总分来判断远程操作系统的类型,其判断的模糊矩阵(如表2)。在整个探测过程中,Xprobe2将依次进行三类测试,分别是探索模块、信息采集模块和指纹模块(如表3)。因此,Xprobe2与Nmap的严格匹配操作系统指纹不同,它会根据与签名数据库探测数据包的特征值推测出结果。

表2

表3

3 实验过程

在本次测试中,主要是比较Nmap与Xprobe在6种不同的操作系统环境下识别远程主机指纹的能力。实验过程会在两个不同的网络环境分别进行,一是在校园网的环境下,二是在ADSL网络环境下。

首先,第1步是随机挑选了300个网站服务器用于测试的目标主机,为了使实验结果更具普遍性与精确性,这300个网站分别分布在世界的各个国家,包括中国、澳洲、新加坡、美国和加拿大等地区。另外,所选的300个网址均可在Netcraft网站上得到相应服务器的详细信息。

第2步,选择实验室中的一台机器作为测试的主机,操作系统是Windows XP SP2,连接的网络类型是校园网。

由于本实验目的是对比Nmap与Xprobe在6种不同的操作系统环境下识别远程主机操作系统的能力,因此,在主机上安装软件VMware Workstation。VMware是一款功能强大的桌面虚拟计算机软件,可以提供给用户在单一的桌面上同时运行不同的操作系统,而不会影响到主机原来的操作系统,也就是说不需要重新开机就能在同一主机上使用几个操作系统,非常地方便。

第3步,在VMware中建立虚拟机,分别安装了Linux Redhat、 Mac OS、 Solaris 8、Windows 2000、FreeBSD 与Windows Server 2003这6个操作系统。

第4步,在每个操作系统中下载并安装Nmap[4]与Xprobe2[5],然后分别对300个网站服务器的操作系统类型进行探测。

第五步,收集整理数据,将探测结果与www.netcraft.com上记录的信息相比较,从而判断其结果是否正确。而Netcraft是目前世界上公认的最易用、最即时、最准确的反钓鱼产品,提供了全球网站方方面面的数据调研与分析服务。因此,可以相信Netcraft网站上的数据信息是可靠的。

第六步,将主机连接到ADSL网络上,重复实验一遍,观察不同的网络连接会否影响Nmap与Xprobe扫描目标主机操作系统的准确率。

4 实验结果与分析

通过测试一所得到的数据,分别归纳出Nmap与Xprobe各自在6种不同的操作系统环境下探测远程主机操作系统的正确率,如图2、图3所示。Nmap在操作系统Linux Redhat与FreeBSD环境下有较高准确率,分别是69.66%和69.23%,而在Windows 2000环境下的正确率则是最低的,识别正确率乃有9.52%。而Xprobe在Linux Redhat环境下有最高的正确率,达85.52%,最低的则是在Solaris 8环境下,准确率仅为22.86%。总体来说,Nmap与Xprobe在不同的操作系统环境下扫描识别远程主机指纹的能力是不一样的,例如Nmap在Windows 2000下识别的能力很弱,准确率仅为9.52%,而Xprobe在Windows 2000下则有着较高的识别能力,正确率达到47.62%,虽然这个结果也不是很理想,但由此我们得出,对于在Windows 2000这个操作系统下,利用Xprobe指纹识别工具有较高的准确性与可信性。

图2

而由测试二得出结果来看,如图4、图5,它们分别比较了Nmap与Xprobe在校园网与ADSL这两种网络下,各自探测远程操作系统的正确率(准确率1——ADSL,准确率2——校园网)。总的来看,在ADSL网络环境下,Nmap会取得比在校园网时更高的准确率,尤其是在FreeBSD系统下,准确率增加了11%。而Xprobe在这两种网络环境中的准确率差异则并不很大。造成这样原因可能是由于ADSL的网速比校园网的要稳定,在探测远程目标主机时,不易发生丢失数据包或延时发/收数据包的情况,所以在ADSL网络环境下会取得更可靠、更准确的结果。

图3

图4

图5

5 结论

目前,Nmap与Xprobe是很流行的探测远程主机操作系统的工具,并且被黑客广泛使用,因此,有必要对这两种工具进行分析研究,掌握它们的工作原理,以及归纳总结二者各自的特点。本文一方面分析比较了Nmap与Xprobe这两个工具,另一方面通过实验测试,分别比较了这两个工具在不同的操作系统环境下识别远程主机指纹的能力。希望能为将来开发远程系统指纹技术提供一些思路与启发,设计出识别能力更强,更稳定的操作系统指纹识别工具。

[1]http://baike.baidu.com/view/77455.htm.

[2]唐芸,周学君.网络扫描技术与安全防御策略研究[J].计算机与数字工程,2008,36(4):90-93.

[3]马君亮,何聚厚,冯德民.基于NDIS的Anti-Xprobe2实现技术研究[J].航空计算技术,2006,36(2):67-73.

[4]http://insecure.org/nmap.

[5]http://xprobe.sourceforge.net/.

猜你喜欢
校园网正确率数据包
门诊分诊服务态度与正确率对护患关系的影响
试论最大匹配算法在校园网信息提取中的应用
SmartSniff
NAT技术在校园网中的应用
生意
品管圈活动在提高介入手术安全核查正确率中的应用
VPN在校园网中的集成应用
视觉注意的数据包优先级排序策略研究
移动IPV6在改进数据包发送路径模型下性能分析