
Визуализируйте топологии сети и собирайте статистику графов на основе pcap файлов.
PcapViz рисует сети как топологии устройств и как информационные потоки, используя информацию о пакетах в pcap-файлах, захваченных с сетевого устройства с помощью tcpcap или другого программного обеспечения для захвата. Он фильтрует и опционально отображает захваченные пакеты на одном из 3 "уровней". Это:
Каждый даёт отдельный граф сети из того же набора сетевых пакетов. Это разделение позволяет гораздо легче видеть потоки данных на каждом уровне, а не смешивать их, как это делают многие другие пакеты визуализации. Должно быть проще определять ключевые топологические узлы или выявлять закономерности попыток утечки данных.
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.
Рисование графа коммуникаций (уровень 2), сегмент
python main.py -i tests/test.pcap -o test2.png --layer2

Уровень 3 с макетом sfdp по умолчанию

Уровень 4 с макетом sfdp по умолчанию

Возврат хостов с наибольшим количеством входящих пакетов:
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
Требования:
GraphViz См. примечания к системе ниже
Требования к пакетам Pip API Maxmind Python и другие зависимости будут установлены при запуске:
pip3 install -r requirements.txt
так что, конечно, запустите это! Вы ведь используете виртуальное окружение Python, не так ли?
Для дистрибутивов на основе Debian необходимо установить GraphViz с некоторыми дополнительными зависимостями:
apt-get install python3-dev
apt-get install graphviz libgraphviz-dev pkg-config
Scapy не работает из коробки на OSX. Следуйте инструкциям для конкретной платформы с веб-сайта scapy
brew install graphviz
brew install --with-python libdnet
brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
Модульные тесты можно запустить из каталога tests:
python3 core.py
Примеры изображений выше являются выходными графами тестов.
Обратите внимание, что в настоящее время есть 2 предупреждения об устаревших функциях в graphviz, и для работы тестов вам может потребоваться изменить фиктивные аргументы, чтобы они указывали на вашу копию файла данных geoIP. Без доступа к данным geoIP два теста всегда будут завершаться неудачей.