Scapy

"Scapy" ist eine Python-Library um schnell und einfach auf Paketebene Netzwerk zu machen, sprich: Sniffen, Pakete auswerten, Pakete generieren, Pakete versenden.

Mit nur wenigen Zeilen lässt sich beispielsweise der Netzwerktraffic mitschneiden und filtern. Für jedes Paket wird eine Callback-Routine aufgerufen, die das Paket im Detail analysieren und darauf reagieren kann, indem zum Beispiel Pakete generiert und verschickt werden.

Das Erzeugen von Paketen ist sehr elegant gelöst. Eine Reihe von Klassen für die einzelnen Protokolle existieren. Den Konstruktoren übergibt man die Parameter für die Pakete, über den überladenen /-Operator kann man die einzelnen Pakete ineinander schachteln.

Das folgende Beispielprogramm snifft den kompletten Netzwerkverkehr und gibt eine Kurzfassung aller Pakete aus:

#! /usr/bin/env python
from scapy.all import *

def monitor_callback(pkt):
    print pkt.summary()

sniff(prn=monitor_callback)

Um über die nötigen Rechte zu verfügen muss das Programm als root gestartet werden. Weitere Informationen und eine Menge Beispielmaterial und Dokumentation finden sich im Internet.

Tags: Netzwerk | Python | Linux