0x01.实验要求
- 自己提前用Wireshark或者其他数据包捕获工具捕获UDP数据报文,或者使用udpdata所提供的UDP数据报文;
- 对某个特定的UDP数据包的首部和数据字段进行解析,即指出哪些是源端口、目的端口、长度、校验和与数据部分;
- 核对某个UDP数据包的校验和是否正确(可采用手工计算方式,需提供计算过程,或编写计算机小程序来实现,需提供源代码及运算结果截图);
- 根据以上要求完成实验报告。
0x02.素材选择
使用教员提供的数据包,用wireshark打开后转存为pcap文件
可以看到6个NBNS协议的数据包,NBNS = NetBIOS Name Service,应该是在做命名查询。微软WINS的实现就是一个例子。例如开启了WINS的主机就会发出目的地址地址...255进行广播,使用UDP协议,连137端口。
这里,我们挑选第一个数据帧进行分析。
0x03.十六进制观察
可知整个数据帧的长度为92bytes
我们可以看到最开始的以太网帧头部
1 |
0000 ff ff ff ff ff ff 00 50 56 c0 00 01 08 00 …….PV….. |
由此我们可知发送端的mac地址 00:50:56:c0:00:01
接受端的mac地址 ff:ff:ff:ff:ff:ff
使用的是ipv4协议
接着我们看到的是IP头
1 2 |
0000 45 00 00 4e 00 c4 00 00 80 11 cf 89 c0 a8 74 01 E..N……….t. 0010 c0 a8 74 ff ..t. |
由此我们可知发送端的IP是 192.168.116.1
接受端的IP是 192.168.116.255 是一个广播地址
头部长度为 20 bytes
总长度为 78 bytes
协议类型为 17(hex:11)———UDP
ttl为 128
头部校验和为 196(hex:0x00c4)
然后我们看到了本次作业的核心内容UDP部分
UDP数据包首部:
1 |
0000 00 89 00 89 00 3a 6c 13 …..:l. |
UDP数据包数据部分:
1 2 3 4 |
0000 80 80 01 10 00 01 00 00 00 00 00 00 20 46 48 46 ………… FHF 0010 48 46 48 43 4f 46 47 45 4e 46 48 45 42 46 43 45 HFHCOFGENFHEBFCE 0020 46 43 4f 45 44 45 50 45 4e 43 41 41 41 00 00 20 FCOEDEPENCAAA.. 0030 00 01 .. |
此处重开一段来说明
UDP首部
0000 00 89 00 89 00 3a 6c 13 …..:l.
从数据帧我们可以发现发送端的端口为0x89,即137
接收端的端口为0x89,即137
UDP长度58bytes
校验和:0x6c13(27667)
UDP数据部分
1 2 3 4 |
0000 80 80 01 10 00 01 00 00 00 00 00 00 20 46 48 46 ………… FHF 0010 48 46 48 43 4f 46 47 45 4e 46 48 45 42 46 43 45 HFHCOFGENFHEBFCE 0020 46 43 4f 45 44 45 50 45 4e 43 41 41 41 00 00 20 FCOEDEPENCAAA.. 0030 00 01 .. |
可以看到这是一个nbns服务,具体分析需参考相关文档。
校验和计算
怼了一个python脚本。。。。。。。校验和计算正确,具体见代码及注释。
后来又怼了一个批量的。。。想想,我也是闲的蛋疼。。。