witnessme
Outil de capture d'écran et d'énumération web. Prend des captures d'écran de services web à l'aide d'un navigateur headless et génère des rapports HTML : utile pour revoir rapidement un grand nombre d'interfaces web découvertes. Web screenshot and enumeration tool. Takes screenshots of web services using a headless browser and generates HTML reports — useful for quickly reviewing large numbers of discovered web interfaces.
↗ https://github.com/byt3bl33d3r/WitnessMeOverview
WitnessMe takes screenshots of web services and generates browsable HTML reports. It uses Playwright for headless browsing and can process nmap XML output, IP ranges, or URL lists — making it easy to visually review hundreds of web interfaces after a port scan.
Installation
pip3 install witnessme
# Install Playwright browser
playwright install
Basic Usage
Screenshot a list of URLs
witnessme screenshot http://10.10.10.1 https://10.10.10.2
Screenshot from nmap XML
witnessme screenshot -n nmap_scan.xml
Screenshot from IP list
witnessme screenshot -p 80,443,8080,8443 192.168.1.0/24
Scanning from nmap XML
First run nmap with XML output
nmap -sV -p 80,443,8080,8443 192.168.1.0/24 -oX scan.xml
Then screenshot all web services
witnessme screenshot -n scan.xml
View the report
witnessme report ./witnessme_results/
IP Range Scanning
Scan an IP range for common web ports
witnessme screenshot -p 80,443,8080,8443,8000,3000 192.168.1.0/24
Custom port list
witnessme screenshot -p 80,443,8080,8443,8888,9090 10.10.10.0/24
With threads
witnessme screenshot -t 5 -p 80,443 192.168.1.0/24
Viewing Results
Generate and view HTML report
witnessme report ./witnessme_results/
# The report shows:
# - Screenshot thumbnails
# - URL and response code
# - Title
# - Detected technologies
# - Sorting/filtering by status code
Open in browser
firefox witnessme_results/report.html
Integration with Other Tools
# After subdomain enumeration
cat subdomains.txt | xargs -I{} echo "http://{}" > urls.txt
cat urls.txt | xargs witnessme screenshot
# After masscan
masscan 10.0.0.0/8 -p 80,443 -oX masscan.xml
witnessme screenshot -n masscan.xml
Tips
- Most valuable after discovering large numbers of hosts — visual review is much faster than manual browsing
- Look for:
- Login pages (credential attacks)
- Default pages (unchanged default configs)
- Admin panels exposed to network
- Interesting titles that reveal application types
- Headless browsers may fail on heavy JavaScript SPAs — check results manually for important targets
- Reports are sortable — sort by title or response code to cluster similar services
Help / Man page
witnessme [command] [options]
Commands:
screenshot Take screenshots
report View report in browser
screenshot options:
-n FILE Nmap XML file
-p PORTS Ports to probe
-t N Threads (default: 5)
--timeout N Timeout per request
report options:
DIR Results directory to serve
Vue d’ensemble
WitnessMe prend des captures d’écran de services web et génère des rapports HTML navigables. Il utilise Playwright pour la navigation headless et peut traiter la sortie XML de nmap, des plages d’IP, ou des listes d’URL : ce qui facilite la revue visuelle de centaines d’interfaces web après un scan de ports.
Installation
pip3 install witnessme
# Installer le navigateur Playwright
playwright install
Utilisation de base
# Capturer une liste d'URL
witnessme screenshot http://10.10.10.1 https://10.10.10.2
# Capturer à partir d'un XML nmap
witnessme screenshot -n nmap_scan.xml
# Capturer à partir d'une liste d'IP
witnessme screenshot -p 80,443,8080,8443 192.168.1.0/24
Scan à partir du XML nmap
# D'abord lancer nmap avec sortie XML
nmap -sV -p 80,443,8080,8443 192.168.1.0/24 -oX scan.xml
# Puis capturer tous les services web
witnessme screenshot -n scan.xml
# Visualiser le rapport
witnessme report ./witnessme_results/
Scan de plage d’IP
# Scanner une plage d'IP pour les ports web courants
witnessme screenshot -p 80,443,8080,8443,8000,3000 192.168.1.0/24
# Liste de ports personnalisée
witnessme screenshot -p 80,443,8080,8443,8888,9090 10.10.10.0/24
# Avec des threads
witnessme screenshot -t 5 -p 80,443 192.168.1.0/24
Visualiser les résultats
# Générer et visualiser le rapport HTML
witnessme report ./witnessme_results/
# Le rapport affiche :
# - miniatures des captures d'écran
# - URL et code de réponse
# - titre
# - technologies détectées
# - tri/filtrage par code de statut
Ouvrir dans le navigateur
firefox witnessme_results/report.html
Intégration avec d’autres outils
# Après une énumération de sous-domaines
cat subdomains.txt | xargs -I{} echo "http://{}" > urls.txt
cat urls.txt | xargs witnessme screenshot
# Après masscan
masscan 10.0.0.0/8 -p 80,443 -oX masscan.xml
witnessme screenshot -n masscan.xml
Conseils
- Particulièrement utile après la découverte d’un grand nombre d’hôtes : la revue visuelle est bien plus rapide qu’une navigation manuelle
- À rechercher :
- pages de connexion (attaques d’identifiants)
- pages par défaut (configurations par défaut non modifiées)
- panneaux d’administration exposés au réseau
- titres intéressants révélant le type d’application
- Les navigateurs headless peuvent échouer sur des SPA riches en JavaScript : vérifier les résultats manuellement pour les cibles importantes
- Les rapports sont triables : trier par titre ou code de réponse pour regrouper les services similaires
Aide / Page de manuel
witnessme [command] [options]
Commands:
screenshot Take screenshots
report View report in browser
screenshot options:
-n FILE Nmap XML file
-p PORTS Ports to probe
-t N Threads (default: 5)
--timeout N Timeout per request
report options:
DIR Results directory to serve