
Uma ferramenta Python que gera visualizações HTML interativas baseadas em React a partir da saída JSON do masscan, apresentando um gráfico de rede direcionado por força do D3.js.
Uma ferramenta Python que gera visualizações HTML interativas baseadas em React a partir da saída JSON do masscan, apresentando um gráfico de rede dirigido por força com D3.js.

: para pesquisar apenas portas (ex.: :443)* para correspondência de padrões (ex.: :*443, :80*, :*8*)# Clone ou baixe o projeto
cd masscan_report
# Instale dependências (opcional, necessário apenas para geração de PDF em desenvolvimento)
pip install pyinstaller # Apenas se for construir o executável
Baixe masscan_report.exe da pasta dist/ - nenhuma instalação do Python é necessária.
# Usando Python
python masscan_report.py <input_json> [-o output.html]
# Usando o executável
masscan_report.exe <input_json> [-o output.html]
# Gerar relatório com saída padrão (report.html)
python masscan_report.py scans/home.json
# Especificar arquivo de saída personalizado
python masscan_report.py scans/network_scan.json -o network_report.html
# Usando o executável
.\dist\masscan_report.exe .\scans\home.192.168.10000.json
A ferramenta espera o formato de saída JSON do masscan:
[
{"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}
]}
]
Gere isso com o masscan:
masscan 192.168.1.0/24 -p1-65535 --rate 1000 -oJ scan_results.json
masscan_report/
├── masscan_report.py # Script principal
├── port_descriptions.py # Banco de dados de portas (6700+ linhas)
├── scans/ # Arquivos de varredura de exemplo
│ ├── home.json
│ └── home.192.168.10000.json
├── dist/
│ └── masscan_report.exe # Executável independente
├── report.html # Saída gerada
└── README.md
O port_descriptions.py contém informações detalhadas para mais de 130 portas comuns, incluindo:
pip install pyinstaller
pyinstaller --onefile --name masscan_report --add-data "port_descriptions.py;." masscan_report.py
O executável será criado em dist/masscan_report.exe.
Licença MIT
Contribuições são bem-vindas! Sinta-se à vontade para enviar issues e pull requests.
| Ação | Efeito |
|---|
| Clicar no nó (gráfico) | Abrir modal de informações |
| Clicar no host (barra lateral) | Realçar host e portas |
| Arrastar nó | Reposicionar nó |
| Roda do mouse | Aumentar/diminuir zoom |
| Clicar + arrastar (fundo) | Mover visão (pan) |
| 🔄 Redefinir Visão | Redefinir zoom e posição |
| ⚡ Reaquecer | Reenergizar a simulação de força |
| 📄 Exportar PDF | Gerar relatório PDF |
| Padrão | Correspondência |
|---|
192.168 | IPs contendo "192.168" |
:443 | Exatamente a porta 443 |
:*443 | Portas terminadas em 443 (ex.: 8443) |
:443* | Portas que começam com 443 |
:*8* | Portas contendo 8 (ex.: 80, 8080, 443) |