2017-10-27 5 views
0

Ich versuche, scapy Pakete zu senden und zu empfangen. Ich mache das, indem ich ein Paket mit scapy baue, indem ich es mit der Funktion send von scapy versende und das Paket als rawbytes über die Funktion recvfrom function of socket empfange.Scapy-Paket haben neue DNS-Ebene nach dem Zusammensetzen von rohen Bytes

scheint wie die build Funktion von scapy - die Umwandlung von Scapy-Pakete in Hex-String manchmal "neue" DNS-Schicht zum Paket hinzufügen.

ich werde Beispiel: wenn dieses Paket IP()/UDP()/"hello" zu Hexstring Umwandlung build und anschließend mit IP(hex_str) Zusammenbauen i das erwartete Paket erhalten:

<IP version=4L ihl=5L tos=0x0 len=33 id=1 flags= frag=0L ttl=64 proto=udp chksum=0x7cc9 src=127.0.0.1 dst=127.0.0.1 options=[] |<UDP sport=domain dport=domain len=13 chksum=0xbd95 |<Raw load='hello' |>>> 

Wenn jedoch dieses Paket IP()UDP()/"ab" zu Hexstring Umwandlung Verwendung build und reassmbling es dann mit IP(hex_string) im ein anderes Paket empfängt dann erwartet:

<IP version=4L ihl=5L tos=0x0 len=30 id=1 flags= frag=0L ttl=64 proto=udp chksum=0x7ccc src=127.0.0.1 dst=127.0.0.1 options=[] |<UDP sport=domain dport=domain len=10 chksum=0xa00b |<DNS id=24930 |>>> 

Jede Hilfe wird sehr geschätzt! Danke

Antwort

0

Das Problem ist, dass 53 der Standardwert des UDP-Sports (Quell-Port) und dport (Ziel-Port) im scapy implementation und die RFC 1035 "Domain-Name - UMSETZUNG UND DATEN", sagt in Kapitel " 4.2.1 UDP-Verwendung ":

Nachrichten, die mit dem UDP-Benutzerserveranschluss 53 (dezimal) gesendet wurden.

So scheint es, dass scapy versucht, Ihre hex_string als IP/TCP/DNS-Paket zu interpretieren. Allgemeiner scheint es, dass scapy versucht, die hex_strings immer als Protokoll zu interpretieren, das der Portnummer entspricht.

Wenn Sie den UDP-Ports zum Beispiel auf 42

packet = IP()/UDP(sport=42, dport=42)/"ab" 
hex_string = packet.build() 
newPacket = IP(hex_string) 

die Darstellung des newPacket ändern ist:

<IP [some flags] |<UDP sport=nameserver dport=nameserver len=10 chksum=0x91ab |<Raw load='ab' |>>> 
Verwandte Themen