
Graph-zentrierter Netzwerkverkehr-Visualisierer für Live-Erfassung und PCAP-Wiedergabe mit Checkpoint-Diffing, Pfadverfolgung und Wireshark-artigen Anzeigefiltern für Sicherheitsanalyse.
PacMap ist ein graph-basierter Netzwerkverkehr-Visualizer für Live-Mitschnitte und PCAP-Wiedergabe, der Ihnen hilft zu sehen, was sich geändert hat, was laut ist und was als Nächstes untersucht werden sollte.
Stellen Sie es sich als Git für Netzwerkverhalten vor: Erstellen Sie Schnappschüsse, führen Sie Diffs durch und spielen Sie den Netzwerkstatus visuell ab.

PacMap unterstützt zwei Arbeitsabläufe:
.pcap- oder .pcapng-Datei hoch und spielen Sie den Paketfluss über die Zeit ab.Führen Sie im Repository-Stammverzeichnis Folgendes aus:
python3 -m venv venv
source venv/bin/activate
pip install websockets scapy
npm install --prefix client
Unter Windows erstellen und aktivieren Sie eine venv mit Ihrem normalen Python-Workflow und installieren Sie dann dieselben Pakete. Paketmitschnitt unter Windows erfordert Npcap.
Starten Sie PacMap im Repository-Stammverzeichnis:
npm start -- --iface en0
Beispiele für gängige Schnittstellen:
en0eth0wlan0Öffnen Sie:
http://127.0.0.1:5176
Verwenden Sie dann die Steuerleiste, um den Live-Mitschnitt zu starten.
Raw-Paketmitschnitt benötigt normalerweise erhöhte lokale Rechte. Auf macOS/Linux:
sudo npm start -- --iface en0
Unter Windows führen Sie das Terminal als Administrator aus.
Öffnen Sie die Web-App, schalten Sie die Quelle auf PCAP-Wiedergabe um und laden Sie eine .pcap- oder .pcapng-Datei hoch. Verwenden Sie dann:
Die Wiedergabe läuft im Browser und erfordert nicht, dass der Python-Mitschnittserver läuft.
Die Wiedergabe enthält Untersuchungsbereiche für Gespräche, Endpunkte, Protokollaufschlüsselung, Namensauflösung und E/A-Zeitleistenaktivität.
Dateigrenzen: 100 MB und 100.000 Pakete. Nicht unterstützte Frames werden übersprungen und in der Benutzeroberfläche gezählt.
Derzeit unterstützte Wiedergabe:
.pcap und einfaches .pcapngSowohl Live-Mitschnitt als auch Wiedergabe unterstützen eine Anzeigefilterleiste im Wireshark-Stil. Geben Sie einen Filter ein und drücken Sie die Eingabetaste, um ihn anzuwenden; leeren Sie das Feld und drücken Sie die Eingabetaste, um ihn zu entfernen.
Unterstützte Syntax:
tcp udp dns http arp
ip.addr == 192.168.1.10
ip.src == 10.0.0.1
ip.dst == 8.8.8.8
tcp.port == 443
udp.port == 53
port == 80
ip.src == 10.0.0.1 && ip.dst == 8.8.8.8
Zusammengesetzte Filter (&&) kombinieren zwei Feldfilter. Das Anwenden eines Filters schränkt den Graphen auf übereinstimmende Knoten und Kanten ein; das Löschen stellt die vollständige Ansicht für das aktuelle Mitschnittfenster wieder her.
Ein zusammengesetzter Filter ip.src == X && ip.dst == Y aktiviert die Pfadverfolgung. PacMap führt eine BFS über den gesamten Mitschnitt durch, um die Hop-Kette zwischen den beiden Endpunkten zu finden. Unter der Steuerleiste erscheint ein Bereich, der jeden Hop mit Paket- und Byte-Zahlen pro Kante anzeigt, und Zwischenknoten werden im Graphen hervorgehoben.
Prüfpunkte erstellen einen Schnappschuss des aktuellen Netzwerkzustands – Knoten, Kanten, Verkehrsvolumen – zu einem bestimmten Zeitpunkt.
Prüfpunkte bleiben in localStorage unter pacmap_checkpoints erhalten (bis zu 50 Einträge).
Browser können keinen Host-Netzwerkverkehr abhören oder direkt einen privilegierten Paketmitschnitt starten. PacMap verwendet einen lokalen Python-WebSocket-Helfer mit Scapy für Live-Mitschnitte und streamt dann Paketzusammenfassungen an die React-App unter:
ws://127.0.0.1:8765
PCAP-Wiedergabe ist anders: Der Browser liest die hochgeladene Datei und verwendet dieselbe Graphvisualisierung, ohne dass ein Live-Paketzugriff erforderlich ist.
Nur Frontend:
cd client
npm install
npm run dev
Produktionsbuild:
npm run build
Nur Mitschnitt-Server:
source venv/bin/activate
python3 server.py --iface en0
server.py nicht oder der WebSocket-Port ist nicht verfügbar.ping 8.8.8.8, DNS-Abfragen oder andere Netzwerkaktivitäten.