====== gowitness ======
**gowitness** es un programa para realizar capturas de pantalla de sitios web. Para hacer las capturas, utiliza Google Chrome en su versión //[[https://developer.chrome.com/docs/chromium/headless?hl=es-419|headless]]// (sin interfaz gráfica) mediante el proyecto [[https://github.com/go-rod/rod|Rod]].
gowitness también incluye un visor de informes para ver los resultados.
* [[https://github.com/sensepost/gowitness|Repositorio de código]]
{{ https://raw.githubusercontent.com/sensepost/gowitness/refs/heads/master/images/gowitness-gallery.png |}}
===== 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 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