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/gowitness

Overview

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 10 for 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 10 pour 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