远程OS探测中的网络协议栈指纹识别技术(2)
2014-07-23 01:31
导读:7) 虚假标记的SYN包 在SYN包的TCP头里设置一个未定义的TCP 标记,目标系统在响应时,有的会保持这个标记,有的不保持。还有一些系统在收到这样的包的时
7) 虚假标记的SYN包
在SYN包的TCP头里设置一个未定义的TCP 标记,目标系统在响应时,有的会保持这个标记,有的不保持。还有一些系统在收到这样的包的时候会复位连接。
8) ISN (初始化序列号)
不同的OS在选择TCP ISN时采用不同的方法。一些UNIX系统采用传统的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) ICMP 消息引用
RFC 规定ICMP错误消息可以引用一部分引起错误的源消息。
在处理端口不可达消息时,大多数OS送回IP请求头外加8 字节。Solaris 送回的稍多,Linux 更多。
有些OS会把引起错误消息的头做一些改动再发回来。例如,FreeBSD,OpenBSD,ULTRIX,VAXen等会改变头的ID 。
这种方法功能很强,甚至可以在目标主机没有打开任何监听端口的情况下就识别出Linux和Solaris 。
11) TOS(服务类型)
对于ICMP端口不可达消息,送回包的服务类型(TOS)值也是有差别的。大多数OS是0,而Linux 是0xc0。
12) 分段重组处理
在做IP包的分段重