资源描述
2015 年4 月 10日
实验项目:实验四 SnifferPro数据包捕获与协议分析
实验目的:
1.了解Sniffer的工作原理。
2.掌握SnifferPro工具软件的基本使用方法。
3.掌握在交换以太网环境下侦测、记录、分析数据包的方法。
实验仪器:电脑一台(CPU:Intel®Core(TM)i5-3230M 2.60GHz 内存:4.00GB 操作系统:win8.1 使用软件:VWare 10、 Windows server2003)
实验步骤及内容:
一、规划IP地址,使得虚拟机与主机通信(自定义模式)主机使用虚拟网卡1,主机IP 为 192.168.1.100子网掩码255.255.255.0 ,共享的VMNET1 虚拟机IP 为192.168.1.4子网掩码255.255.255.0 默认网关为192.168.1.4,首选DNS为114.114.114.114。
二、抓取以下协议的数据包,并加以分析。
(1)抓取IP数据包,分析IP数据包的头部信息。
可参照下图依次分析:
由上抓包信息可知:IP包头占有20个字节,即:
45 00 00 3C 01 28 00 00 20 01 00 00 C0 A8 01 04 C0 A8 01 64
1)可知,“45”,其中“4”是IP协议的版本(Version),说明是IP4。“5”是IHL位,表示IP头部的长度,是一个4bit字段,最大就是1111了,值为15(表示有15行,一行有32bit),IP头部的最大长度就是60字节。而这里为“5”,说明是20字节,这是标准的IP头部长度,头部报文中没有发送可选部分数据。
2)“00”,为服务类型(Type of Service)。这个8bit字段由3bit的优先权子字段(现在已经被忽略),4 bit的TOS子字段以及1 bit的未用字段(现在为0)构成。4 bit的TOS子字段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个1bit位最多只能有一个为1,本例中都为0,表示是一般服务。
3)“00 3C”,为IP数据报文总长,包含头部以及数据,这里表示60字节。这60字节由20字节的IP头部以及40字节的TCP头构成(最后的一个字节为数据)。因此目前最大的IP数据包长度是65535字节。
4)“01 28” 两个字节为数据包封装标识信息,与后面的偏移量一起用,这个是让目的主机来判断新来的分段属于哪个分组。
5)“00 00”其中前三位表示标志位,后面13位表示片段偏移地址。其中第一位是IP协议目前没有用上的,为0。接着的是两个标志DF和MF。DF为1表示不要分段,MF为1表示还有进一步的分段(本例为0)。然后的“0 0000”是分段便移(Fragment Offset)。
6)“20” 这个字节就是TTL(Time To Live)了,表示一个IP数据流的生命周期,用Ping显示的结果,能得到TTL的值48(将十六进制的20转化为十进制得48)。
注:一般主机都有默认的TTL值,不同系统的默认值不一样。比如WINDOWS为128。不过,一般Ping得到的都不是默认值,这是因为每次IP数据包经过一个路由器的时候TTL就减一,当减到0时,这个数据包就消亡了。这也时Tracert的原理。
7)“01” 这个字节表示传输层的协议类型(Protocol)。在RFC790中有定义,1表示传输层是ICMP协议(课本P31)。
8)“00 00” 这个16bit是头校验和(Header Checksum)。
9)“C0 A8 01 04”表示源地址,也就是PC的IP地址,转换为十进制的IP地址就是:192.168.1.4。
10)“C0 A8 01 64”表示目标IP地址,转换为十进制的IP地址就是:192.168.1.100。
以下截取的是TP头部的部分对应的详细信息。
(2)抓取ICMP协议数据包,分析ICMP协议的头部信息。
由上抓包截图可知,ICMP的报头头为:08 00 42 5E 02 00 0B 00 41 42……
参照以上图并结合ICMP报文头部格式可以进行详细的ICMP数据报格式分析;
1)“08” 表示一个8位类型字段,表示ICMP数据包类型。
2)“00” 表示一个8位代码域,表示指定类型中的一个功能。如果一个类型中只有一种功能,代码域置为0。
3)“42 5E”表示数据包中ICMP部分上的一个16位检验和。
4)“02 00”表示示数据包中ICMP部分的16位识别号。
5)“0B 00” 表示示数据包中ICMP部分的16位报文序列号。
6)“41 42……表示示数据包中ICMP数据包中的的可选项内容。
以下截图是ICMP数据报部分截图;
(3)抓取ARP协议数据包,分析ARP协议数据包的信息和封装情况。
由上抓包截图,我们可以清楚看到,ARP帧(28字节):00 01
08 00 06 04 00 02 00 0C 29 1F 3E D3 C0 A8 01 04
00 50 56 C0 00 03 C0 A8 01 64
在往前看,可知以太网首部(14字节)如下
往最后看,为18字节的填充位:
可知,该ARP数据包并没有填充位。
结合上面抓包信息以及ARP报头结构,可将28字节的ARP帧结构进行如下详细地分析:
00 01
08 00 06 04 00 02 00 0C 29 1F 3E D3 C0 A8 01 04
00 50 56 C0 00 03 C0 A8 01 64
1)“00 01”该两个字节表示硬件类型,这里为1,为以太网。
2)“08 00” 该两个字节表示协议类型,这里为IP协议。
3)“06”该字节表示硬件地址(MAC地址)长度为6。
4)“04” 该字节表示议地址(IP地址)长度为4。
5)“00 02” 该两个字节表示应答操作。
6)“00 0C 29 1F 3E D3 ” 表示源主机MAC地址为:00:0C:29:1F:D3:C0。
7)“C0 A8 01 04 ” 表示源主机主机IP地址为:192.168.1.4.。
8)“00 50 56 C0 00 03 ” 表示源主机MAC地址为:
9)“C0 A8 01 64” 表示目的主机主机IP地址为:192.168.1.100
以下是ARP数据包头中部分的分析:
(4)抓取TCP协议数据包,分析TCP协议的头部信息
04 30 00 15 3C F3 42 08 00 00 00 00 70 02
FA F0 81 35 00 00 02 04 05 B4 01 01 04 02
TCP协议的头结构
由上截图和TCP协议的头部结构图,可进行一下详细分析:
TCP包头占有20个字节,后面02 04 05 B4 01 01 04 02部分是可选项和数据部分。
1)“04 30”表示源端口号位:1072
2)“00 15”表示目的端口号为:21,可知用了FTP文件文件传输。
3)“3C F3 42 08”表示数据包顺序号(Sequence Number)。
4)“00 00 00 00”表示(Acknowledgment Number),简写为ACKNUM。在此为全0,表示没有连接成功,无确认。
5)“70 02 ”两字节中,前4位为头部长度,用十进制表示为7,转化为字节,总共有7×4=28字节;中间六位为保留,都为0,在TCP协议没有用上;后面6位为000010,是重要的6个标志位,此时SYN=1,ACK=0,连接响应时,表示连接向应超时。
8)“FA F0”两个字节表示窗口大小为64240。
9)“81 35”这个16bit是头校验和(Header Checksum)。
10)“00 00”为紧急指针,此时表示没有,当且仅当URG同时置1才有效。
为了进一步加深分析,一下简要接触部分TCP头部信息;
(5)抓取UDP协议数据包,分析UDP协议的头部信息
UDP协议的头结构:
结合抓包截图和UDP的包头结构,可进行以下详细分析:
04 03 00 35 00 26 47 23
1)“04 03”表示源端口号,将其转化为十进制为:1027端口(从后面的截图,额可以直观看出)。
2)“00 35”表示目的端口号,将其转化为十进制为:53端口,故是DNS程序。
3)“00 26”表示数据包的封装长度,为38.
4)“47 23”表示数据包的校验和为4723
以下为UDP数据包的的各部分截图。
(6)监测网络中计算机的连接状况
(7)监测网络中数据的协议分布
附注
附注(续)
附注(续)
实验结果分析
通过本次试验,巩固了TCP/IP协议簇的协议数据包结构的分析。
教师批阅:
展开阅读全文