Skip to content

Report Server

Leon Jacobs edited this page Sep 17, 2024 · 2 revisions

Once data collection is complete, an interactive report server can be started to work through all of the collected data. This can be done with the gowitness server command, which will open port 7171 on localhost, exposing a web interface.

The report server contains both a Web interface as well as an API for some automation. API documentation can be found by browsing to the /swagger endpoint on your server.

exposing the report server

Sometimes, you may want to expose the report server (and by extension the API) to a larger network. It is up to you to secure this interface as by default, gowitness has no authentication mechanism. An example of how to do that more securely using Traefik to add a basic authentication layer to the report server is available here.

on reverse proxies

Depending on how you want to expose the report server, you may need to specify the base path command line flag for the web interface to make sure paths are correctly generated for the UI/API. If you are serving the report server on the root path (aka /), then you typically wont need to set this. However, if you wanted to serve gowitness say on /gowitness, then this may be needed. An example nginx configuration using the similar docker-compose setup (replacing Traefik) follows:

version: '3'

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

  nginx:
    image: nginx
    restart: unless-stopped
    ports:
      - 80:80
    volumes:
      - ./nginx/gowitness.conf:/etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /gowitness/ {
        proxy_pass          http://gowitness:7171/;
    }
}

Table of Contents

Table of Contents

Guides

Clone this wiki locally