为什么我无法在DNS路径中看到攻击者的地址

时间:2018-10-13 14:43:54

标签: python redirect dns scapy traceroute

我正尝试制作一个DNS跟踪器,以跟踪dns请求到达目的地的路径,以确保它未被重定向或劫持。使用dnstraceroute工具,一切正常,我可以检测到我所进行的演示dns欺骗攻击。我使用scapy编写了此代码,以执行相同的操作:

from scapy.all import *
import time

for i in range(1, 28):
    pkt = IP(dst='8.8.4.4', ttl=i) / UDP(sport=RandShort(),dport=53)/DNS(id = 102, qd=DNSQR(qname="www.google.com"))
    # Send the packet and get a reply
    reply = sr1(pkt, verbose=0)
    if reply is None:
    # No reply =(
    print(i+ " ======[-]=====")

    elif reply.type == 3:
        # Destination Unreachable Message
        print ("Done!", reply.src)
        break
    else:
        # We're somewhere in the middle
        print ("%d hops away: " % i , reply.src)
        time.sleep(1)

它工作正常,我可以按预期看到路径。但是,当我将dns查询重定向到我的攻击者计算机时,我无法检测到重定向。我网络中的原始dns服务器使用ICMP数据包响应第一个dns数据包(ttl值为1),甚至认为攻击者机器之前已收到该数据包。但是,再次使用dnstraceroute工具,攻击者的机器会对这个数据包做出响应,我可以在输出中看到它的地址。

我打开了Wireshk并试图在数据包之间寻找一些不同的东西,但是它们完全相同。Here is the DNS packet which generated by my scriptHere is the Dns packet which sent by dnstraceroute

我不知道有什么区别。预先感谢!

0 个答案:

没有答案