探测远程主机操作系统指纹的全新技术
2010-05-12 20:35:36 来源:WEB开发网一、介绍
近年来,网络安全评估软件逐渐被网络安全界所接收,而且在很大的范围内快速地传播起来。远程操作系统探测作为评估软件的一个部分,必须具备几个条件:
- 精确性:避免错误的探测结果;
- 防火墙和入侵检测系统的影响:避免影响(或被影响于)防火墙和入侵检测系统;
- 文雅:低的网络流通和无危险分段;
- 灵巧:易于扩展标识数据库和自动探测函数;
- 速度:高速的指纹探测工具应该允许大范围的网络扫描。
我向大家介绍一个新的操作系统指纹探测工具-RING。在某些情况下其他的工具也许会失败,但RING所具备的良好的特性和相当准确的结果一定会让你满意的。
RING是一个开放源代码的软件,它主要是面向试验性的概念和测试的目的。
二、技术发展水平
2.1 操作系统探测技术的简短历史
- 获取标识信息 在很多探测工具中都使用了此项技术来获得某些服务的标识信息。它往往是通过对二进制文件的收集和分析来实现的。
- TCP分段(标准/非标准)响应分析 它是依靠不同操作系统对特定分段的不同反应来区分的。比较流行的工具有Savage的QueSO和Fyodor的NMAP,他们都使用了很多来自于这种技术的变种。
- ICMP响应分析 它是刚推出不久的一种技术。它通过发送UPD或ICMP的请求报文,然后分析各种ICMP应答。Ofir Arkin的X-Probe就是使用的这种技术,在通常情况下,X-Probe工作的比较好,但是在防火墙阻塞某些协议时,得到的结果就不那么尽如人意了。
- 初始化序列号(ISN)分析 在TCP栈中不同的exploits随机产生,通过鉴别足够的测试结果来确定远程主机的操作系统。(详情请见 Zalewski,M.(Apr,2001),Strange Attractors and TCP/IP Sequence Number Analysis)
- 特殊的操作系统 拒绝服务同样可以用在操作系统指纹的探测上,而不仅仅是被黑客所使用。在一些非常特殊的情况下,拒绝服务能探测到准确的结果。
2.2 堆栈查询技术的细节
堆栈查询技术通过测量远程主机TCP/IP堆栈对不同请求的响应来探测系统。大多数操作系统将会以特别的方式来响应特别的分段请求。
NMAP和QueSO就是基于这种技术的。它们产生一组TCP和UDP请求发送到远程目标主机的开放(未开放)端口。这时,远程主机响应的有用信息就会被探测工具所接收到,然后对其进行分析。
这些技术通常使安全评估软件在较小的延迟内,得到一些关于类型和版本之类的信息。
在好几方面,这种技术是如此的准确:
- 每个操作系统(即使打过某个补丁)通常会使用它们自己的IP栈实现。
- TCP/IP规范并不是被严格的执行,每个不同的实现将会拥有它们自己的特性,这样就为成功探测带来了可能。
- 规范可能被打乱,一些选择性的特性被使用,而其他的一些系统则可能没有使用。
- 某些私自对IP协议的改进也可能被实现,这就成为了某些操作系统的特性。
2.3 典型工具的一些限制
NMAP可以识别500个不同的操作系统,但前提是网络环境的稳定性,目标主机必须开放一个TCP端口,一个关闭的TCP端口和一个关闭的UDP端口。如果不满足上面的条件,探测结果的精确度就会有很大程度的降低。
当前的网络系统,为了安全起见,往往只向外打开一个可见的TCP端口,而其他的端口所接收到的数据报却是被防火墙或包过滤装置所过滤掉了。
在这样的被防火墙保护的网络环境下,基于ICMP协议,关闭的UDP端口和关闭的TCP端口的探测工具,如NMAP,Xprobe工作的效果就不那么好了。
更多精彩
赞助商链接