- 论坛徽章:
- 0
|
上个月有个晚上在QQ群里和刀刀聊起ICMP,因为之前和他分析Worm.Viking的Cap文件时,他说到ICMP Echo Request的Data字段是"Hello,World",后来想到这个是病毒造的Data内容,跟系统自身实现的ICMP Echo Request无关。随即让他分别抓Windows和AIX的Ping包,AIX系统上可以用tcpdump命令,把输入存入文件,再由Ethereal打开。
下面先看看系统自身实现的ICMP Echo Request的Data字段:
1、Windows系统实现的ICMP Echo Request的Data字段为32bytes
"abcdefghijklmnopqrstuvwabcdefghi"---为啥没有xyz ?
2、AIX系统实现的Data字段为54bytes(这也是RFC 792定义的)
![]()
可以注意到的是"012345"这几个字符,其它UNIX系统如何实现,现在还没抓包,改天。。。
上面图可以看到ICMP Echo Request的几个字段,其中Identifier和Sequence Number是我们那天讨论的重点。
我们知道操作系统指纹识别技术,通过向目标系统发送各种报文,从得到的反馈中依据一些特征值来判断目标系统版本号等信息,因为不同的操作系统,在具体实现某些协议时会有所不同,这个ICMP的Identifier就是其中一个例子。
上一个图看到的ICMP Identifier是0x9054(会变化),下面看一个Windows XP的ICMP实现
![]()
ICMP Identifier=0x0200,是十进制的512(固定不变),从Windows 2000后的系统都是512(具体还要确认)
ICMP的Sequence Number类似TCP会话中的顺序号,畅通的情况下,每个发出的ICMP Echo Request都会得到得到一个相同Sequence Number的ICMP Echo Reply,不同系统稍微有所不同。
1、Windows系统的第一个ICMP Echo Request包的SN=0x100,后续SN以0x100为增量;
2、AIX系统上的第一个ICMP Echo Request包的SN=0x0001,后续SN增量为0x0001;
其它一些问题没有多余的机会抓包,暂时保留;
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26393/showart_201080.html |
|