Skip to content

Back to the catalog

gowitness
github.comrepo

gowitness

gowitness is a Golang website screenshot utility that drives Chrome Headless to capture screenshots of web interfaces at scale from the command line, ingesting targets from URL lists, CIDRs, Nmap, or Nessus results. It can also capture request/console logs, headers, and cookies, writing results to SQLite, JSONL, or CSV, with a bundled web-based report viewer and API for triaging large recon datasets.

TL;DR Go-based headless-Chrome screenshotting tool for mass web recon triage, with a SQLite-backed report viewer.
Document

What it is

gowitness is a Go command-line tool from SensePost that takes website screenshots with Chrome Headless and can save the data it collects along the way. It is licensed under GNU GPL v3, and the page says other terms may be available from SensePost at http://sensepost.com/contact/.

Preconditions / Affected

Linux and macOS are supported. The page says Windows support is "mostly working". Because it drives Chrome Headless, a Chrome install is presumably needed, but the page does not say so.

The licence is GPLv3, which matters if you plan to embed or redistribute it inside other software.

What to do

Install with Go, assuming $GOBIN is on your $PATH:

go install github.com/sensepost/gowitness@latest

The page also offers prebuilt platform release binaries and building from source. Run a first scan of one target, saving results to SQLite with screenshots in ./screenshots:

gowitness scan single --url "https://sensepost.com" --write-db

Add -h after any command to list its flags and scan types. The page says there are many of both, and the README does not list them. Advanced installation notes are on the project wiki.

The web results viewer and its API only work if data was saved to SQLite, so pass --write-db on any scan you want to triage in the browser. Other output formats, such as JSONL and CSV, do not feed the viewer.

Caveats

The README does not document the individual scan subcommands beyond scan single, or the command that starts the report viewer. It also gives no performance figures for "fast". For those, use the -h output or the wiki. The page names wappalyzergo and goimagehash among its dependencies, but does not say how they are used.

Technologies named here

Related in OSINT