Zurück zu den Updates
New releaseAug 22, 2026

Packet-Sniffer v4.0.0

Ein Netzwerkpaket-Sniffing-Tool, entwickelt in Python 3.

Teilen

Paket-Sniffer

CI Python Version OS License

Ein Netzwerkverkehrs-Monitor für GNU/Linux. Frames werden von einer Netzwerkschnittstelle über einen Raw-Socket erfasst, Schicht für Schicht mit der Bibliothek NETProtocols dekodiert und bei ihrem Eintreffen auf dem Bildschirm dargestellt:

[>] Frame #4 at 15:42:07 (wlan0, 74 bytes)
    [+] Ethernet 3c:7c:3f:1a:be:22 -> 9c:1e:95:aa:01:5f
        EtherType: IPv4
    [+] IPv4 192.168.1.96 -> 142.250.79.78
        TTL: 64 | Flags: Don't fragment (DF) | Total Length: 60 | ID: 39754
        Protocol: TCP | Checksum: 0x2b51
    [+] TCP 51888 -> 443
        Flags: 0x002 (SYN) | Seq: 3598801521 | Ack: 0
        Window: 64240 | Checksum: 0x2008 | Options: 20 bytes

Die Dekodierung ist optionen-bewusst (IPv4-IHL und TCP-Datenoffset werden berücksichtigt), fehlerhafte oder abgeschnittene Frames werden diagnostiziert, anstatt die Erfassung zum Absturz zu bringen, und unbekannte Protokolle beenden die Dekodierungskette auf elegante Weise – die Erfassung übersteht, was auch immer das Netzwerk liefert.

Installation

pipx install "git+https://github.com/EONRaider/Packet-Sniffer.git"

(Oder uv tool install mit derselben URL. Die Anwendung ist nicht unter diesem Namen auf PyPI veröffentlicht – dieses Debüt ist ihrer kommenden Umbenennung vorbehalten.)

Oder aus einem Klon mit uv ausführen:

git clone https://github.com/EONRaider/Packet-Sniffer.git
cd Packet-Sniffer
uv sync

Verwendung

packet-sniffer [-h] [-i INTERFACE] [-d] [--version]

options:
  -i, --interface   Schnittstelle, von der Frames erfasst werden (Standard: alle Schnittstellen)
  -d, --data        zusätzlich die Rohdaten jedes Frames anzeigen

Für die Erfassung ist ein Raw-Socket erforderlich, was unter Linux entweder Root-Rechte bedeutet:

sudo packet-sniffer -i eth0

...oder dem Interpreter die Fähigkeit CAP_NET_RAW zu gewähren. Aus einem Klon führen Sie es als sudo .venv/bin/python -m packet_sniffer aus.

So funktioniert es

capture.py liefert rohe Frames von einem AF_PACKET-Socket; decoder.py durchläuft die Protokollkette jedes Frames (Ethernet → ARP / IPv4 / IPv6 → ICMP / TCP / UDP) in einen unveränderlichen DecodedFrame; Renderer in output.py verteilen die Arbeit basierend auf den dekodierten Schichttypen. Die vollständige Tour – einschließlich der Frage, warum der Speicher bei langen Erfassungen konstant bleibt und wie man einen Renderer hinzufügt – befindet sich in ARCHITECTURE.md.

Alles außer dem Raw-Socket läuft auf jedem Betriebssystem, daher benötigt die Testsuite (Dekodierung und Rendering über aufgezeichnete Frames) weder Root-Rechte noch Linux:

uv run pytest

Roadmap

  • BPF-Filterung (kernelseitige Erfassungsfilter)
  • pcap/pcapng-Dateiausgabe und Replay-von-pcap-Eingabe
  • JSON/NDJSON-Ausgabe zur Weiterleitung an andere Werkzeuge
  • Kernel-Zeitstempel (SO_TIMESTAMPNS)
  • Ein neuer Name – bleiben Sie gespannt

Rechtlicher Hinweis

Die Verwendung des in diesem Repository enthaltenen Codes, sei es teilweise oder in seiner Gesamtheit, um Ziele ohne vorherige gegenseitige Zustimmung anzugreifen, ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze zu befolgen.

Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch irgendeinen Code in diesem Repository verursacht werden, falls dieser – versehentlich oder anderweitig – von einem Bedrohungsakteur oder einer unbefugten Stelle genutzt wird, um die Sicherheit, Privatsphäre, Vertraulichkeit, Integrität und/oder Verfügbarkeit von Systemen und deren zugehörigen Ressourcen zu gefährden. In diesem Zusammenhang wird der Begriff „Gefährdung“ fortan verstanden als die Ausnutzung bekannter oder unbekannter Schwachstellen in besagten Systemen, einschließlich, aber nicht beschränkt auf die Implementierung von Sicherheitskontrollen, ob menschlich oder elektronisch ermöglicht.

Die Verwendung dieses Codes wird von den Entwicklern nur in den Fällen befürwortet, die direkt mit Bildungsumgebungen oder autorisierten Penetrationstest-Aufträgen zusammenhängen, deren erklärter Zweck es ist, Schwachstellen in Systemen zu finden und zu entschärfen, um deren Gefährdung durch Kompromittierungen und Exploits böswilliger Akteure gemäß deren jeweiligen Bedrohungsmodellen zu begrenzen.

Lizenz

AGPL-3.0

Kategorien