====== 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