远程os探测中的网络协议栈指纹识别_第1页
远程os探测中的网络协议栈指纹识别_第2页
远程os探测中的网络协议栈指纹识别_第3页
远程os探测中的网络协议栈指纹识别_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、远程os探测中的网络协议栈指纹识别    摘要 远程探测计算机系统的os(操作系统)类型、版本号等信息,是黑客入侵行为的重要步骤,也是网络安全中的一种重要的技术。在探测技术中,有一类是通过网络协议栈指纹来进行的。协议栈指纹是指不同操作系统的网络协议栈存在的细微差别,这些差别可以用来区分不同的操作系统。本文研究和分析了此技术的原理和实践,并提出了防止指纹探测的方法。 关键词  远程os探测 协议栈指纹 tcp/ip协议 1 引言探测和识别一个计算机系统在运行什么os是黑客入侵的重要步骤。如果不知道目标系统在运行什么os,就很难在目标系统上执行操作

2、,也无法判断是否存在安全漏洞,更谈不上攻击。从管理和防范的角度来说,如果能减少被探测时泄漏的信息,就减少了黑客入侵行为的信息来源,使其入侵行为变得相当困难。因此,研究这方面的技术,对于提高系统的安全性和抵抗入侵的能力具有重要的意义。2  简单的os探测技术在早期,黑客经常采用一些简单的探测方法来获取目标系统的信息。如通过telnet标题,ftp的标题和stat命令,通过http服务程序,dns ,snmp等都可以得到很多有用信息。但是,在长期的入侵和防入侵的斗争中,通过简单的手段即可获得的信息越来越少了。管理员努力地减少通过网络泄漏的信息,有时还修改os的代码,给出虚假的信息。在这种

3、情况下,简单的方法已经很难奏效了,因此出现了通过网络协议栈指纹来识别os的技术。3      网络协议栈指纹原理常用的网络协议是标准的,因而从理论上讲各个操作系统的协议栈应该是相同的。但是,在实践中,各种操作系统的协议栈的实现存在细微的差异。这些差异称作网络协议栈的“指纹”。对tcp协议族来说,这些差异通常表现在数据包头的标志字段中。如window size、ack序号、ttl等的不同取值。通过对这些差别进行归纳和总结,可以比较准确地识别出远程系统的os类型。由于internet广泛使用tcp/ip协议族,因此下面的讨论主要围绕tcp/ip来进

4、行。4  网络协议栈指纹构成下面列出了不同os的网络协议栈的差异,这些差异可作为协议栈指纹识别的依据。1)      ttlttl:time to live,即数据包的“存活时间”,表示一个数据包在被丢弃之前可以通过多少跃点(hop)。不同操作系统的缺省ttl值往往是不同的。常见操作系统的ttl值:windows 9x/nt/2000 intel      128 digital unix 4.0 alpha      

5、60;     60 linux 2.2.x intel                  64 netware 4.11 intel                  128 aix 4.3.x ibm/rs6000&

6、#160;     60 cisco 12.0 2514                  255 solaris 8 intel/sparc            64 2)      df位df(不分段)位识别:不同os对df

7、位有不同的处理方式,有些os设置df位,有些不设置df位;还有一些os在特定场合设置df位,在其它场合不设置df位。3)      window sizewindow size:tcp接收(发送)窗口大小。它决定了接收信息的机器在收到多少数据包后发送ack包。特定操作系统的缺省window size基本是常数,例如,aix 用0x3f25,windows、openbsd 、freebsd用0x402e。一般地,unix的window size较大。mswindows,路由器,交换机等的较小。4)    &

8、#160; ack 序号不同的os处理ack序号时是不同的。如果发送一个fin|psh|urg的数据包到一个关闭的tcp 端口,大多数os会把回应ack包的序号设置为发送的包的初始序号,而windows 和一些打印机则会发送序号为初始序号加1的ack包。5)      icmp地址屏蔽请求对于icmp地址屏蔽请求,有些os会产生相应的应答,有些则不会。会产生应答的系统有openvms, mswindows, sun solaris等。在这些产生应答的系统中,对分片icmp地址屏蔽请求的应答又存在差别,可以做进一步的区分。6) 

9、0;    对fin包的响应发送一个只有fin标志位的tcp数据包给一个打开的端口,linux等系统不响应;有些系统,例如 ms windows, cisco, hp/ux等,发回一个reset。7)      虚假标记的syn包在syn包的tcp头里设置一个未定义的tcp 标记,目标系统在响应时,有的会保持这个标记,有的不保持。还有一些系统在收到这样的包的时候会复位连接。8)      isn (初始化序列号)不同的os在选择tcp isn时采用不同的方法。一些u

10、nix系统采用传统的64k递增方法,较新的solaris,irix,freebsd,digital unix,cray等系统采用随机增量的方法;linux 2.0,openvms, aix等系统采用真随机方法。windows系统采用一种时间相关的模型。还有一些系统使用常数。如,3com集线器使用0x803,apple laserwriter打印机使用0xc7001。9)      icmp 错误信息在发送icmp错误信息时,不同的os有不同的行为。rfc 1812建议限制各种错误信息的发送率。有的os做了限制,而有的没做。10) &#

11、160;    icmp 消息引用rfc 规定icmp错误消息可以引用一部分引起错误的源消息。在处理端口不可达消息时,大多数os送回ip请求头外加8 字节。solaris 送回的稍多,linux 更多。有些os会把引起错误消息的头做一些改动再发回来。例如,freebsd,openbsd,ultrix,vaxen等会改变头的id 。这种方法功能很强,甚至可以在目标主机没有打开任何监听端口的情况下就识别出linux和solaris 。11)      tos(服务类型)对于icmp端口不可达消息,送回包的服务类型(to

12、s)值也是有差别的。大多数os是0,而linux 是0xc0。12)      分段重组处理在做ip包的分段重组时,不同os的处理方式不同。有些os会用新ip段覆盖旧的ip段,而有些会用旧的ip段覆盖新的ip段。13)      mss(最大分段尺寸)不同的os有不同的缺省mss值,对不同的mss值的回应也不同。如,给linux发送一个mss值很小的包,它一般会把这个值原封不动地返回;其它的系统会返回不同的值。14)      syn flood

13、限度在处理syn flood的时候,不同的os有不同的特点。如果短时间内收到很多的伪造syn包,一些os会停止接受新的连接。有的系统支持扩展的方式来防止syn flood。15)      主机使用的端口一些os会开放特殊的端口,比如:windows的137、139,win2k的445;一些网络设备,如入侵检测系统、防火墙等也开放自己特殊的端口。16)      telnet选项指纹建立telnet会话时,socket连接完成后,会收到telnet守候程序发送的一系列telnet选项信息。不同o

14、s有不同的telnet选项排列顺序。17)      http指纹执行http协议时,不同的web server存在差异。而从web server往往可以判断os类型。web server的差异体现在如下方面:1:基本http请求处理head / http/1.0这样的请求时,不同系统返回信息基本相同,但存在细节差别。如,apache返回的头信息里的server和date项的排序和其它的服务器不同。2:delete请求对于delete / http/1.0这样的非法请求,apache响应"405 method not allowed&

15、quot;,iis响应"403 forbidden", netscape响应 "401 unauthorized"。3:非法http协议版本请求对于get / http/3.0这样的请求,apache响应"400 bad request",iis忽略这种请求,响应信息是ok, netscape响应"505 http version not supported"。4: 不正确规则协议请求对不规则协议的请求,apache忽视不规则的协议并返回200 "ok",iis响应"400 bad r

16、equest", netscape几乎不返回http头信息。18)      打印机服务程序指纹rfc 1179规定了请求打印服务时须遵循的协议。在实践中,如果打印请求符合rfc1179的格式,不同os表现行为相同。但当打印请求不符合rfc1179的格式时,不同os就会体现出差别。如对一个非法格式的请求,solaris这样回应:reply: invalid protocol request (77): xxxxxx而aix系统这样回应: reply: 0781-201 ill-formed from address.  大多

17、数os会给出不同的响应信息。个别os会给出长度为0的回应。对于windows,则是通过专有的smb协议(server message block protocol)来实现打印机的共享。19)      网络协议栈指纹实践在实践中,网络协议栈指纹方法通常这样应用:总结各种操作系统网络协议栈的上述细微差异,形成一个指纹数据库。在探测一个系统的时候,通过网络和目标系统进行交互,或者侦听目标系统发往网络的数据包,收集其网络协议栈的行为特点,然后以操作系统指纹数据库为参考,对收集的信息进行分析,从而得出目标系统运行何种os的结论。20) 

18、60;    远程os探测的防护方法由于协议栈指纹方法是建立在操作系统底层程序差别的基础上的,所以要彻底防护指纹识别是很难的。但是有一些方法可以减少信息泄漏并干扰指纹识别的结果,在很大程度上提高系统的安全性。21)      检测和拦截对于主动向主机发送数据包的协议栈指纹识别,可以使用ids检测到异常包或异常的行为,从而加以记录和拦截。对于通过sniffer来进行的协议栈指纹识别,这种方法是无效的。22)      修改参数一些操作系统的协议栈参数,如缺省window、mss、mtu等值,是可以修改的。在solaris和linux操作系统下,很多tcp/ip协议栈的参数可以通过系统配置程序来修改。在windows系统中,可以通过对注册表的修改来配置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论