← retour aux outils back to tools

# 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