
Netzwerktopologien visualisieren und Graphenstatistiken basierend auf pcap-Dateien sammeln
PcapViz zeichnet Netzwerke als Gerätetopologien und als Informationsflüsse unter Verwendung der Paketinformationen in Pcap-Dateien, die von einem Netzwerkgerät mit tcpcap oder anderer Erfassungssoftware erfasst wurden. Es filtert und zeigt optional die erfassten Pakete auf einer von 3 "Schichten" an. Diese sind:
Jede ergibt einen eigenen Netzwerkgraphen aus demselben Satz von Netzwerkpaketen. Diese Trennung macht es viel einfacher, die Datenflüsse auf jeder Ebene zu sehen, anstatt sie zu vermischen, wie es viele andere Visualisierungspakete tun. Es sollte möglich sein, wichtige topologische Knoten zu bestimmen oder Muster von Datenextraktionsversuchen leichter zu erkennen.
usage: main.py [-h] [-i [PCAPS [PCAPS ...]]] [-o OUT] [-g GRAPHVIZ] [--layer2]
[--layer3] [--layer4] [-fi] [-fo] [-G GEOPATH] [-l GEOLANG]
[-E LAYOUTENGINE] [-s SHAPE]
pcap topology and message mapper
optional arguments:
-h, --help zeigt diese Hilfemeldung an und beendet das Programm
-i [PCAPS [PCAPS ...]], --pcaps [PCAPS [PCAPS ...]]
durch Leerzeichen getrennte Liste der zu analysierenden Erfassungsdateien
-o OUT, --out OUT Die Topologie wird in der angegebenen Datei gespeichert
-g GRAPHVIZ, --graphviz GRAPHVIZ
Der Graph wird in die angegebene Datei exportiert (dot-Format)
--layer2 Gerätetopologie-Netzwerkgraph
--layer3 IP-Nachrichtengraph. Standard
--layer4 TCP/UDP-Nachrichtengraph
-fi, --frequent-in gibt häufig kontaktierte Knoten auf stdout aus
-fo, --frequent-out gibt häufige Quellknoten auf stdout aus
-G GEOPATH, --geopath GEOPATH
Pfad zu den Maxmind-GeoDB-Daten
-l GEOLANG, --geolang GEOLANG
Sprache für GeoIP-Namen
-E LAYOUTENGINE, --layoutengine LAYOUTENGINE
Graph-Layout-Methode - dot, sfdp usw.
-s SHAPE, --shape SHAPE
Graphviz-Knotenform - circle, diamond, box usw.
Zeichnen eines Kommunikationsgraphen (Schicht 2), Segment
python main.py -i tests/test.pcap -o test2.png --layer2

Schicht 3 mit Standard-sfdp-Layout

Schicht 4 mit Standard-sfdp-Layout

Gibt Hosts mit der größten Anzahl eingehender Pakete zurück:
python3 main.py -i tests/test.pcap -fi --layer3
4 172.16.11.12
1 74.125.19.17
1 216.34.181.45 slashdot.org
1 172.16.11.1
1 96.17.211.172 a96-17-211-172.deploy.static.akamaitechnologies.com
Erforderlich:
GraphViz Siehe Systemhinweise unten
Pip package requirements Die Maxmind Python API und andere Abhängigkeiten werden installiert, wenn Sie Folgendes ausführen:
pip3 install -r requirements.txt
Also führen Sie das bitte aus! Sie verwenden doch eine Python-Virtual-Umgebung, oder?
Für Debian-basierte Distributionen müssen Sie GraphViz mit einigen zusätzlichen Abhängigkeiten installieren:
apt-get install python3-dev
apt-get install graphviz libgraphviz-dev pkg-config
Scapy funktioniert unter OSX nicht sofort. Folgen Sie den plattformspezifischen Anweisungen der scapy-Website
brew install graphviz
brew install --with-python libdnet
brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
Unit-Tests können aus dem tests-Verzeichnis ausgeführt werden:
python3 core.py
Die obigen Beispielbilder sind die Testausgabegraphen.
Beachten Sie, dass es derzeit 2 Warnungen über veraltete Funktionen in graphviz gibt und dass Sie für die Funktionsfähigkeit der Tests möglicherweise die Fake-Argumente anpassen müssen, um auf Ihre Kopie der GeoIP-Datendatei zu verweisen. Ohne Zugriff auf die GeoIP-Daten werden zwei der Tests immer fehlschlagen.