Benutzer-Werkzeuge

Webseiten-Werkzeuge


ne:scapy

Einführung

Overview: ls() lists all available protocols and protocol options, lsc() shows available scapy commands.

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()

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

Generieren von Tunnelpaketen

Fehlende Protokolle

Fragmentierung

Verschiedenes

  • Das Capturing/Decoding ist langsam (cf) bei Problemen kann zusätzlich pypcap benutzt werden (cf)
  • Für feste und wiederkehrende Test-Abläufe ist scapytain praktisch. Es erlaubt die Definition vieler Tests (mit ja/nein-Resultaten) mit Gruppierungen und Abhängigkeiten.
  • anderes penetration test tool auf Scapy-Basis: http://inguma.eu/projects/inguma
  • Scapy-Pakete haben (undokumentiert) auch Zeitstempel. Alle Pakete haben das Attribut time für den Zeitpunkt der Erstellung (d.h. Instanziierung von Packet()). – Beim Senden wird zudem das Attribut sent_time gesetzt. Bsp.:
     >>> res,unans = srloop(IP(dst=server)/UDP()/DNS(rd=1, id=1, qd=DNSQR(qname=name, qtype=0xff, qclass="IN")), count = 3)
     >>> [res[x][0].time for x in range(len(res))]
     [1323265992.993212, 1323265992.993212, 1323265992.993212]
     >>> [res[x][0].sent_time for x in range(len(res))]
     [1323265993.054496, 1323265994.0183351, 1323265995.0216329]

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

  • Mit den stopper*-Argumenten lässt sich die Funktion sniff auch in Threads benutzen und 'von außen' beenden (Beispiel/Doku). Alternative Implementierung: mit multiprocessing.Event

Installation

ne/scapy.txt · Zuletzt geändert: 2019/01/30 08:45 von admin