
Python-инструмент, который создаёт интерактивные HTML-визуализации на основе React из JSON-вывода masscan, с использованием силового графа сети D3.js.
Инструмент на Python, который создает интерактивные HTML-визуализации на основе React из выходных данных masscan в формате JSON, используя силовой граф D3.js.

: для поиска только по портам (например, :443)* для поиска по шаблону (например, :*443, :80*, :*8*)# Клонируйте или загрузите проект
cd masscan_report
# Установите зависимости (только для сборки PDF при разработке)
pip install pyinstaller # Только если собираете exe
Скачайте masscan_report.exe из папки dist/ — установка Python не требуется.
# Используя Python
python masscan_report.py <input_json> [-o output.html]
# Используя исполняемый файл
masscan_report.exe <input_json> [-o output.html]
# Создать отчёт с именем по умолчанию (report.html)
python masscan_report.py scans/home.json
# Указать собственное имя файла
python masscan_report.py scans/network_scan.json -o network_report.html
# Используя исполняемый файл
.\dist\masscan_report.exe .\scans\home.192.168.10000.json
Инструмент ожидает выходной формат masscan JSON:
[
{"ip": "192.168.1.1", "timestamp": "1234567890", "ports": [
{"port": 80, "proto": "tcp", "status": "open", "reason": "syn-ack", "ttl": 64}
]},
{"ip": "192.168.1.1", "timestamp": "1234567891", "ports": [
{"port": 443, "proto": "tcp", "status": "open", "reason": "syn-ack", "ttl": 64}
]}
]
Создайте его с помощью masscan:
masscan 192.168.1.0/24 -p1-65535 --rate 1000 -oJ scan_results.json
masscan_report/
├── masscan_report.py # Основной скрипт
├── port_descriptions.py # База данных портов (6700+ строк)
├── scans/ # Примеры файлов сканирования
│ ├── home.json
│ └── home.192.168.10000.json
├── dist/
│ └── masscan_report.exe # Готовый исполняемый файл
├── report.html # Созданный отчёт
└── README.md
Файл port_descriptions.py содержит подробную информацию о 130+ распространённых портах, включая:
pip install pyinstaller
pyinstaller --onefile --name masscan_report --add-data "port_descriptions.py;." masscan_report.py
Исполняемый файл будет создан в dist/masscan_report.exe.
MIT License
Приветствуются любые улучшения! Смело создавайте issue и pull request.
| Действие | Результат |
|---|
| Нажатие на узел (граф) | Открыть информационное окно |
| Нажатие на узел (боковая панель) | Подсветить узел и порты |
| Перетаскивание узла | Переместить узел |
| Колёсико мыши | Масштабировать |
| Нажатие + перетаскивание (фон) | Переместить вид |
| 🔄 Сбросить вид | Сбросить масштаб и позицию |
| ⚡ Разогрев | Повторно активировать симуляцию |
| 📄 Экспорт PDF | Создать PDF-отчёт |
| Шаблон | Совпадения |
|---|
192.168 | IP-адреса, содержащие "192.168" |
:443 | Точный порт 443 |
:*443 | Порты, оканчивающиеся на 443 (например, 8443) |
:443* | Порты, начинающиеся с 443 |
:*8* | Порты, содержащие 8 (например, 80, 8080, 443) |