Tabla de Contenidos
gowitness
gowitness es un programa para realizar capturas de pantalla de sitios web. Para hacer las capturas, utiliza Google Chrome en su versión headless (sin interfaz gráfica) mediante el proyecto Rod.
gowitness también incluye un visor de informes para ver los resultados.
Características
- Capturas de pantalla rápidas y precisas.
- Escanea una lista de URLs, CIDRs, resultados d Nmap, Nesus, etc.
- Posibilidad de obtener y guardar datos (log de peticiones, log de consola, cabeceras, cookies…)
- Guarda datos en muchos formatos (base de datos de SQLite, JSON Lines, CSV, etc.)
- Visor de resultados web (si se guardan los datos en SQLite), incluyendo una API.
Instalación
Docker
Si vamos a usar SQLite, cremos primero el fichero para la base de datos:
touch gowitness.sqlite3
Ejemplo de Docker Compose:
--- services: gowitness: image: ghcr.io/sensepost/gowitness:latest restart: unless-stopped command: gowitness report server --host 0.0.0.0 --screenshot-path /data/screenshots --db-uri sqlite:///data/gowitness.sqlite3 volumes: - ./gowitness.sqlite3:/data/gowitness.sqlite3 - ./screenshots:/data/screenshots ports: - 7171:7171
Se creará un contenedor con gowitness y Google Chrome. También se arrancará un servidor web para ver los informes de cada captura que vayamos haciendo (http://localhost:7171).
Uso
Captura de pantalla
gowitness scan single --screenshot-fullpage --url "https://tempwin.net"
La opción --screenshot-fullpage es para indicar que queremos que capture la pantalla completa, no solo lo que se ve por las dimensiones de la ventana del navegador (viewport).
Si usamos el contenedor Docker:
docker run --rm -v $(pwd)/screenshots:/data/screenshots ghcr.io/sensepost/gowitness gowitness scan single --screenshot-fullpage --url "https://tempwin.net"
Con el comando anterior, se creará un contenedor con gowitness y se hará una captura de pantalla de la página completa (--screenshot-fullpage) que se guardará en el directorio screenshots del directorio actual. Al terminar, se dentendrá en contenedor y se borrará.
Si usamos el contenedor en ejecución mediante Docker Compose:
docker exec <NOMBRE_CONTENEDOR> gowitness scan single --screenshot-fullpage --url "https://tempwin.net"
Captura de pantalla desde fichero con URLs
Si tenemos un fichero con un listado de URLs (una por línea) llamado urls.txt.
Con Docker:
docker run --rm -v $(pwd):/data -v $(pwd)/screenshots:/data/screenshots ghcr.io/sensepost/gowitness gowitness scan file -f /data/urls.txt

