
Visualizza le topologie di rete e raccogli statistiche sui grafi basate su file pcap.
PcapViz disegna reti come topologie di dispositivi e come flussi di informazioni utilizzando le informazioni dei pacchetti nei file pcap catturati da una rete tramite tcpcap o altro software di cattura. Filtra e opzionalmente visualizza i pacchetti catturati a uno qualsiasi di 3 "livelli". Questi sono:
Ciascuno produce un grafo di rete distinto dallo stesso insieme di pacchetti di rete. Questa separazione rende molto più semplice vedere i flussi di dati a ciascun livello invece di mescolarli come fanno molti altri pacchetti di visualizzazione. Dovrebbe essere possibile determinare i nodi topologici chiave o individuare modelli di tentativi di esfiltrazione di dati più facilmente.
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 mostra questo messaggio di aiuto ed esce
-i [PCAPS [PCAPS ...]], --pcaps [PCAPS [PCAPS ...]]
elenco delimitato da spazi dei file di cattura da analizzare
-o OUT, --out OUT la topologia sarà salvata nel file specificato
-g GRAPHVIZ, --graphviz GRAPHVIZ
il grafo sarà esportato nel file specificato (formato dot)
--layer2 grafo di rete della topologia dei dispositivi
--layer3 grafo dei messaggi IP. Predefinito
--layer4 grafo dei messaggi TCP/UDP
-fi, --frequent-in stampa i nodi contattati frequentemente su stdout
-fo, --frequent-out stampa i nodi sorgente frequenti su stdout
-G GEOPATH, --geopath GEOPATH
percorso ai dati del geodb MaxMind
-l GEOLANG, --geolang GEOLANG
Lingua da utilizzare per i nomi geoIP
-E LAYOUTENGINE, --layoutengine LAYOUTENGINE
Metodo di layout del grafo - dot, sfdp ecc.
-s SHAPE, --shape SHAPE
Forma del nodo di Graphviz - circle, diamond, box ecc.
Disegnare un grafo di comunicazione (layer 2), segmento
python main.py -i tests/test.pcap -o test2.png --layer2

Layer3 con layout sfdp predefinito

Layer4 con layout sfdp predefinito

Restituire gli host con il maggior numero di pacchetti in arrivo:
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
Richiesto:
GraphViz Vedi le note di sistema qui sotto
Dipendenze pip Le API Python di MaxMind e altre dipendenze verranno installate quando esegui:
pip3 install -r requirements.txt
quindi, ovviamente, eseguilo! Stai usando un ambiente virtuale Python, vero?
Per le distribuzioni basate su Debian devi installare GraphViz con alcune dipendenze aggiuntive:
apt-get install python3-dev
apt-get install graphviz libgraphviz-dev pkg-config
Scapy non funziona immediatamente su OSX. Segui le istruzioni specifiche per la piattaforma dal sito web di scapy
brew install graphviz
brew install --with-python libdnet
brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
I test unitari possono essere eseguiti dalla directory tests:
python3 core.py
Le immagini di esempio sopra sono i grafi di output dei test.
Nota che attualmente ci sono 2 avvisi su funzionalità deprecate in graphviz e perché i test funzionino, potresti dover regolare i falsi argomenti per puntare alla tua copia del file di dati geoIP. Senza accesso ai dati geoIP, due dei test falliranno sempre.