Inhaltsverzeichnis

Scapy

Einführung

Scapy benutzen

Übersicht: ls() listet alle verfügbaren Protokolle und Protokoll-Optionen,
lsc() zeigt alle verfügbaren Scapy Kommandos.

Man kann ls() auch auf ein generiertes Paket anwenden und zeigt die aktuellen sowie die Default-Werte der einzelnen Felder an:

 pkt = Ether()/IP()/UDP()
 ls(pkt)

The summary() method provides a quick look at the packet’s layers:

 pkt.summary()

The show() and show2() methods provide a deeper look into the packet structure:

 pkt.show()  # hierarchische Ansicht
 pkt.show2() # fügt auch dynamisch berechnete Werte ein (Prüfsummen, etc.)

The command() method returns a string with the commands necessary to recreate that packet:

 pkt.command()

haslayer() and getlayer() test for the existence of a layer and return this layer.

Paketgenerierung

i = IP()
t = UDP() # or TCP()
t.sport = t.dport = 50000
d = "some data to send"
p = i/t/d
send(p) # sends at IP level
sendp(Ether()/p) # sends at Ethernet level

Auf die Felder der einzelnen Layer kann auch direkt zugegriffen werden:

>>> p=IP()/UDP()
>>> p[UDP].sport = 123

Scapy-GUI

Generieren von Tunnelpaketen

Fehlende Protokolle

Fragmentierung

Dokumentation

WLAN

Verschiedenes

Aarghh… das ganze funktioniert allerdings nur für einzelne Pakete und nicht für Listen… m.E. ein Bug.

Installation