
Visualizar topologías de red y recopilar estadísticas de grafos basadas en archivos pcap
PcapViz dibuja redes como topologías de dispositivos y flujos de información utilizando la información de paquetes en archivos pcap capturados de un dispositivo de red mediante tcpcap u otro software de captura. Filtra y opcionalmente muestra los paquetes capturados en cualquiera de los 3 "niveles". Estos son:
Cada uno genera un gráfico de red distinto a partir del mismo conjunto de paquetes de red. Esta separación hace que sea mucho más fácil ver los flujos de datos en cada nivel, en lugar de mezclarlos como hacen muchos otros paquetes de visualización. Debería ser posible determinar nodos topológicos clave o detectar patrones de intentos de exfiltración de datos más fácilmente.
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 show this help message and exit
-i [PCAPS [PCAPS ...]], --pcaps [PCAPS [PCAPS ...]]
space delimited list of capture files to be analyzed
-o OUT, --out OUT topology will be stored in the specified file
-g GRAPHVIZ, --graphviz GRAPHVIZ
graph will be exported to the specified file (dot
format)
--layer2 device topology network graph
--layer3 ip message graph. Default
--layer4 tcp/udp message graph
-fi, --frequent-in print frequently contacted nodes to stdout
-fo, --frequent-out print frequent source nodes to stdout
-G GEOPATH, --geopath GEOPATH
path to maxmind geodb data
-l GEOLANG, --geolang GEOLANG
Language to use for geoIP names
-E LAYOUTENGINE, --layoutengine LAYOUTENGINE
Graph layout method - dot, sfdp etc.
-s SHAPE, --shape SHAPE
Graphviz node shape - circle, diamond, box etc.
Dibujando un gráfico de comunicación (nivel 2), segmento
python main.py -i tests/test.pcap -o test2.png --layer2

Nivel 3 con diseño sfdp por defecto

Nivel 4 con diseño sfdp por defecto

Mostrar los hosts con mayor número de paquetes entrantes:
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
Requisitos:
GraphViz Consulte las notas del sistema a continuación
Dependencias de Pip La API de Maxmind Python y otras dependencias se instalarán cuando ejecute:
pip3 install -r requirements.txt
¡así que, por supuesto, ejecute eso! ¿Está usando un entorno virtual de Python, verdad?
Para distribuciones basadas en Debian, debe instalar GraphViz con algunas dependencias adicionales:
apt-get install python3-dev
apt-get install graphviz libgraphviz-dev pkg-config
Scapy no funciona de manera predeterminada en OSX. Siga las instrucciones específicas de la plataforma del sitio web de scapy
brew install graphviz
brew install --with-python libdnet
brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
Las pruebas unitarias se pueden ejecutar desde el directorio tests:
python3 core.py
Las imágenes de ejemplo anteriores son los gráficos de salida de las pruebas.
Tenga en que hay actualmente 2 advertencias sobre funciones obsoletas en graphviz y para que las pruebas funcionen, es posible que necesite ajustar los argumentos falsos para que apunten a su copia del archivo de datos geoIP. Sin acceso a los datos geoIP, dos de las pruebas siempre fallarán.