首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第12期->技术专题
期刊号: 类型: 关键词:
libnet使用举例(7)

作者:小四 (scz@nsfocus.com)
主页:http://www.nsfocus.com
日期:2000-08-15

这次以构造DNS报文为例继续介绍libnet库编程。

./linuxkiller -o 44 -y 53 -s 192.168.10.1
ping bbs.tsinghua.edu.cn后抓取如下报文:

[  udp   ]    192.168.10.1 [ 1476 ] -> 192.168.0.2 [ 53 ]
udpHeadLen = 8 udpDataLen = 37
byteArray [ 37 bytes ] ---->
00000000  42 83 01 00 00 01 00 00-00 00 00 00 03 62 62 73    B?..........bbs
00000010  08 74 73 69 6E 67 68 75-61 03 65 64 75 02 63 6E    .tsinghua.edu.cn
00000020  00 00 01 00 01                                     .....

42 83                      id       标识符
01 00                      param    参数 正向解析请求报文,允许递归解析
00 01                      qtcount  问题数
00 00                      ancount  回答数
00 00                      aucount  管理机构数
00 00                      adcount  其他信息数

03 62 62 73                bbs      长度域为03
08 74 73 69 6E 67 68 75 61 tsinghua 长度域为08
03 65 64 75                edu      长度域为03
02 63 6E                   cn       长度域为02
00                                  长度域为0,表示结束
00 01
00 01

这是一个相当标准的DNS查询报文,不理解的话可以翻看RFC。构造一些边界情形的
DNS报文,如果DNS SERVER没有处理边界情形,结果未知。

./linuxkiller -o 44 -x 53 -s 192.168.0.2
ping bbs.tsinghua.edu.cn后抓取如下报文:

[  udp   ]    192.168.0.2 [ 53 ] -> 192.168.10.1 [ 1476 ]
udpHeadLen = 8 udpDataLen = 165
byteArray [ 165 bytes ] ---->
00000000  30 8F 81 80 00 01 00 02-00 02 00 02 03 62 62 73    0弫
版权所有,未经许可,不得转载