
Un outil Python qui génère des visualisations HTML interactives basées sur React à partir de la sortie JSON de masscan, avec un graphe de réseau orienté par forces D3.js.
Un outil Python qui génère des visualisations HTML interactives basées sur React à partir de la sortie JSON de masscan, avec un graphe réseau dirigé par la force D3.js.

: pour rechercher uniquement les ports (ex : :443)* pour la correspondance de motifs (ex : :*443, :80*, :*8*)# Cloner ou télécharger le projet
cd masscan_report
# Installer les dépendances (optionnel, nécessaire uniquement pour la génération PDF en développement)
pip install pyinstaller # Seulement si vous compilez l'exécutable
Téléchargez masscan_report.exe depuis le dossier dist/ - aucune installation Python requise.
# Avec Python
python masscan_report.py <input_json> [-o output.html]
# Avec l'exécutable
masscan_report.exe <input_json> [-o output.html]
# Générer un rapport avec le nom par défaut (report.html)
python masscan_report.py scans/home.json
# Spécifier un fichier de sortie personnalisé
python masscan_report.py scans/network_scan.json -o network_report.html
# Avec l'exécutable
.\dist\masscan_report.exe .\scans\home.192.168.10000.json
L'outil attend le format de sortie JSON de 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}
]}
]
Générer ceci avec 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 # Base de données des ports (6700+ lignes)
├── scans/ # Exemples de fichiers de scan
│ ├── home.json
│ └── home.192.168.10000.json
├── dist/
│ └── masscan_report.exe # Exécutable autonome
├── report.html # Sortie générée
└── README.md
Le fichier port_descriptions.py contient des informations détaillées pour plus de 130 ports courants, incluant :
pip install pyinstaller
pyinstaller --onefile --name masscan_report --add-data "port_descriptions.py;." masscan_report.py
L'exécutable sera créé dans dist/masscan_report.exe.
MIT License
Les contributions sont les bienvenues ! N'hésitez pas à soumettre des problèmes et des demandes de tirage (pull requests).
| Action | Effet |
|---|
| Cliquer sur un nœud (graphe) | Ouvrir la fenêtre d'information |
| Cliquer sur un hôte (barre latérale) | Mettre en évidence l'hôte et ses ports |
| Glisser un nœud | Repositionner le nœud |
| Molette de défilement | Zoom avant/arrière |
| Cliquer + glisser (arrière-plan) | Déplacer la vue |
| 🔄 Réinitialiser la vue | Réinitialiser le zoom et la position |
| ⚡ Réchauffer | Relancer la simulation de force |
| 📄 Exporter PDF | Générer un rapport PDF |
| Motif | Correspondance |
|---|
192.168 | IP contenant "192.168" |
:443 | Exactement le port 443 |
:*443 | Ports se terminant par 443 (ex : 8443) |
:443* | Ports commençant par 443 |
:*8* | Ports contenant 8 (ex : 80, 8080, 443) |