gowitness
Utilitaire de capture d'écran web utilisant Chrome headless. Prend des captures de pages web à grande échelle : parfait pour trier visuellement de grandes listes d'hôtes ou de sous-domaines découverts. Web screenshot utility using Chrome headless. Takes screenshots of web pages at scale — perfect for visually triaging large lists of discovered hosts or subdomains.
↗ https://github.com/sensepost/gowitnessOverview
gowitness takes screenshots of web pages using a headless Chrome browser. Given a list of URLs or IP ranges, it captures what each web server actually shows — invaluable for quickly triaging hundreds or thousands of hosts after recon. Includes a built-in web UI to browse results.
Basic Usage
Screenshot a single URL
gowitness single https://example.com
Screenshot from a file of URLs
gowitness file -f urls.txt
Screenshot from a CIDR range
gowitness scan --cidr 192.168.1.0/24 --port 80,443,8080,8443
Screenshot from nmap XML output
gowitness nmap -f scan.xml
Launch web UI to view results
gowitness server --address 0.0.0.0:7171
File Input (Most Common)
Take screenshots of all URLs in file
gowitness file -f urls.txt
With custom output directory
gowitness file -f urls.txt --screenshot-path ./screenshots
With threads
gowitness file -f urls.txt --threads 10
Custom timeout per page (seconds)
gowitness file -f urls.txt --timeout 15
Skip SSL verification
gowitness file -f urls.txt --disable-db --no-http
Network Scanning
Scan CIDR for web services
gowitness scan --cidr 10.10.10.0/24 --port 80,443,8080,8443,8888,3000
With threads
gowitness scan --cidr 192.168.0.0/16 --port 80,443 --threads 20
Full range example
gowitness scan --cidr 172.16.0.0/12 --port 80,443,8080,8443
From Recon Pipelines
From subfinder/assetfinder output
subfinder -d example.com -silent | \
httpx -silent | \
gowitness file -
# From masscan results
masscan -p80,443 --rate 1000 10.0.0.0/8 -oL masscan.txt
cat masscan.txt | awk '{print $4":"$3}' > urls.txt
gowitness file -f urls.txt
# From nmap
nmap -p 80,443,8080 --open -oX scan.xml 192.168.1.0/24
gowitness nmap -f scan.xml
Web UI
Start the report server
gowitness server
# Access at: http://localhost:7171
# Shows gallery of all screenshots with response codes, titles, etc.
Custom port and bind
gowitness server --address 127.0.0.1:9000
# The DB file (gowitness.sqlite3) is created in the current directory
Tips
- After large subdomain enumeration, always run gowitness — visual triage is 10x faster than clicking URLs
- Screenshots reveal login pages, default credentials pages, exposed admin panels, and internal apps
- Use
--threads 10for faster processing; Chrome is resource-intensive so don’t go too high - The built-in server makes it easy to share results with a team
Help / Man page
gowitness [command]
Commands:
single Screenshot a single URL
file Screenshot URLs from a file
scan Scan CIDR ranges
nmap Screenshot from nmap XML output
server Launch web UI report server
report Generate a static HTML report
merge Merge multiple databases
Global flags:
--screenshot-path DIR Where to save screenshots (default: ./screenshots)
--db FILE SQLite database path (default: gowitness.sqlite3)
--threads N Concurrent threads
--timeout N Page load timeout seconds (default: 3)
--user-agent UA Custom user agent
--disable-db Don't write to DB
--no-https Skip HTTPS
--no-http Skip HTTP
Vue d’ensemble
gowitness prend des captures d’écran de pages web à l’aide d’un navigateur Chrome headless. À partir d’une liste d’URLs ou de plages IP, il capture ce que chaque serveur web affiche réellement : précieux pour trier rapidement des centaines ou des milliers d’hôtes après une phase de recon. Inclut une interface web intégrée pour parcourir les résultats.
Utilisation de base
# Capturer une seule URL
gowitness single https://example.com
# Capturer depuis un fichier d'URLs
gowitness file -f urls.txt
# Capturer depuis une plage CIDR
gowitness scan --cidr 192.168.1.0/24 --port 80,443,8080,8443
# Capturer depuis une sortie nmap XML
gowitness nmap -f scan.xml
# Lancer l'interface web pour consulter les résultats
gowitness server --address 0.0.0.0:7171
Entrée par fichier (le cas le plus courant)
# Capturer toutes les URLs du fichier
gowitness file -f urls.txt
# Avec un répertoire de sortie personnalisé
gowitness file -f urls.txt --screenshot-path ./screenshots
# Avec des threads
gowitness file -f urls.txt --threads 10
# Timeout personnalisé par page (secondes)
gowitness file -f urls.txt --timeout 15
# Ignorer la vérification SSL
gowitness file -f urls.txt --disable-db --no-http
Scan réseau
# Scanner un CIDR à la recherche de services web
gowitness scan --cidr 10.10.10.0/24 --port 80,443,8080,8443,8888,3000
# Avec des threads
gowitness scan --cidr 192.168.0.0/16 --port 80,443 --threads 20
# Exemple sur une plage complète
gowitness scan --cidr 172.16.0.0/12 --port 80,443,8080,8443
Depuis des pipelines de recon
# Depuis la sortie de subfinder/assetfinder
subfinder -d example.com -silent | \
httpx -silent | \
gowitness file -
# Depuis des résultats masscan
masscan -p80,443 --rate 1000 10.0.0.0/8 -oL masscan.txt
cat masscan.txt | awk '{print $4":"$3}' > urls.txt
gowitness file -f urls.txt
# Depuis nmap
nmap -p 80,443,8080 --open -oX scan.xml 192.168.1.0/24
gowitness nmap -f scan.xml
Interface web
# Démarrer le serveur de rapport
gowitness server
# Accès à : http://localhost:7171
# Affiche une galerie de toutes les captures avec codes de réponse, titres, etc.
# Port et bind personnalisés
gowitness server --address 127.0.0.1:9000
# Le fichier de base de données (gowitness.sqlite3) est créé dans le répertoire courant
Conseils
- Après une grosse énumération de sous-domaines, lancez toujours gowitness : le tri visuel est 10 fois plus rapide que de cliquer sur chaque URL
- Les captures révèlent des pages de connexion, des pages d’identifiants par défaut, des panneaux d’administration exposés et des applications internes
- Utiliser
--threads 10pour un traitement plus rapide ; Chrome est gourmand en ressources donc n’allez pas trop haut - Le serveur intégré facilite le partage des résultats avec une équipe
Aide / Page de manuel
gowitness [command]
Commands:
single Screenshot a single URL
file Screenshot URLs from a file
scan Scan CIDR ranges
nmap Screenshot from nmap XML output
server Launch web UI report server
report Generate a static HTML report
merge Merge multiple databases
Global flags:
--screenshot-path DIR Where to save screenshots (default: ./screenshots)
--db FILE SQLite database path (default: gowitness.sqlite3)
--threads N Concurrent threads
--timeout N Page load timeout seconds (default: 3)
--user-agent UA Custom user agent
--disable-db Don't write to DB
--no-https Skip HTTPS
--no-http Skip HTTP