今天试了一下scapy,构造DNS包(当然它的功能远不仅如此)确实很方便,很强大。。试着构造了一个之前一直想试一下的包,即一个查询包中含有两个问题,DNS包的内容如下:
Domain Name System (query)
[Response In: 2]
Transaction ID: 0x0000
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query
recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data OK: Non-authenticated data is unacceptable
Questions: 2
Answer RRs: 0
Authority RRs: 0
Additional RRs: 0
Queries
type A, class IN
Name:
Type: A (Host address)
Class: IN (0x0001)
ftp.mtlxy.com: type A, class IN
Name:
ftp.mtlxy.com
Type: A (Host address)
Class: IN (0x0001)
然
后不论将其发给bind还是unbound,得到的回应都是"format error",后来考虑了一下,关于multiple
questions目前应该只是理论上存在,实际的服务器程序中应该都没有实现它。最直接一个问题就是:如果多个问题的查找结果不一样,而此时rcode
就只有一个,就没法用了。
另外,如果支持多个问题,那这样就有可能形成一种对服务器的攻击方式,因为客户端一个包发过来,DNS服务器有可能会进行多个查询,有可能会形成DDoS攻击。
另外,unbound的邮件列表是个好地方,人少,发的问题每次都有专业人士很快地回应。自己用的yahoo.com.cn的邮箱里面的中文在邮件列表中显得很异类。。。
阅读(2427) | 评论(0) | 转发(0) |