请输入您要查询的百科知识:

 

词条 协议栈指纹
释义

概述

协议栈指纹识别是一项强大的技术,能够以很高的概率迅速确定操作系统的版本。虽然TCP/IP协议栈的定义已经成为一项标准,但是各个厂家,如微软和RedHat等在编写自己的TCP/IP协议栈时,却做出了不同的解释。这些解释因具有独一无二的特性,故被称为“指纹”。通过这些细微的差别,可以准确定位操作系统的版本。

识别依据

以下是不同OS的网络协议栈的差异,这些差异可作为协议栈指纹识别的依据。

ACK序号

不同的OS处理ACK序号时是不同的。如果发送一个FIN/PSH/URG数据包到一个关闭的TCP端口,大多数OS会把回应ACK包的序号设置为发送的包的初始序号,而Windows和一些打印机贝iJ会发送序号为初始序号加1的ACK包。

TOS(服务类型)

对于ICMP端口不可达消息,送回包的TOS值也是有差别的。大多数TOS是0,而Linux是OxcO。

ICMP地址屏蔽请求

对于ICMP地址屏蔽请求,有些OS会产生相应的应答,有些则不会。会产生应答的系统有OpenVMS,MS Windows和SUN Solaris等。在这些产生应答的系统中,对分片ICMP地址屏蔽请求的应答又存在差别,可以做进一步的区分。

对FIN包的响应

发送一个只有FIN标志位的TCP数据包给一个打开的端口,Linux等系统不做响应;有些系统,例如MS Windows,CISCO和HP/UX等,则发回一个RESET。

虚假标记的SYN包

在SYN包的TCP头里设置一个未定义的TCP标记,目标系统在响应时,有的会保持这个标记,有的不保持。还有一些系统在收到这样的包时会复位连接。

ISN(初始化序列号)

不同的OS在选择TCP ISN时采用不同的方法。一些UNIX系统采用传统的64K递增方法,较新的Solaris,IRIX,FreeBSD,Digital Unix和Cray等系统则采用随机增量的方法,Linux 2.0,OpenVMS和AIX等系统采用真随机方法,Windows系统采用一种时间相关的模型。还有一些系统使用常数,如3Com集线器使用0x803,Apple LaserWriter打印机使用OxC 7001等。

ICMP错误信息

在发送ICMP错误信息时,不同的OS有不同的行为。RFC 1812建议限制各种错误信息的发送率。有的OS做了限制,有的没有。

ICMP消息引用

RFC规定 ICMP错误消息可以引用一部分引起错误的原消息。在处理端口不可达消息时,大多数OS送回IP请求头外加8个字节。Solaris送回的稍多,Linux更多。有些OS会把引起错误消息的头做一些改动再发回来。例如,FreeBSD,OpenBSD,ULTRIX和VAXen等会改变头的旧。这种方法功能很强,甚至可以在目标主机没有打开任何监听端口的情况下就识别出Linux和Solaris。

分段重组处理

在做IP包的分段重组时,不同 OS的处理方式不同。有些OS会用新IP段覆盖旧的IP段,而有些则会用旧的IP段覆盖新的IP段。

MSS(最大分段尺寸)

不同的OS有不同的默认MSS值,对不同MSS值的回应也不尽相同。如给Linux发送一个MSS值很小的包,它一般会把这个值原封不动地返回,但其他系统会返回不同的值。

SYNFlood限度

在处理SYN flood时,不同的OS有不同的特点。如果短时间内收到很多的伪造SYN包,一些OS会停止接受新的连接。有的系统以支持扩展的方式来防止SYN Flood。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/25 14:20:41