Skip to content

Quick Start

No Compilers Necessary

This section details the installation and configuration of GHOSTS from precompiled binaries for both the server and the client.

If you are just checking out the project for the first time and want to see NPCs performing activities, skip to the client section below. Otherwise, it is easier to install the API first and then a client that will connect to that installed API instance.

GHOSTS API Server

Easy installation requires:

  1. Install 🐳 Docker
  2. Install Docker Compose
  3. We'll use this docker-compose.yml file in the following command block which will download the required containers will automatically. The commands to stand up the GHOSTS API containers is:

    mkdir ghosts-api
    cd ghosts-api
    curl https://raw.githubusercontent.com/cmu-sei/GHOSTS/master/src/Ghosts.Api/docker-compose.yml -o docker-compose.yml
    docker-compose up -d
    
  4. Once the command completes, if you open http://localhost:5000/ in your browser, you should see the initial API page outlining the version of the install, and a few test machine entries. If this page renders, your API is up, running, and available. If the page does not render, follow the advice in the API troubleshooting section.

You will still need to set up Grafana. Beware that you must often chown g_data, which is the host location for the Graphana container as listed in the docker-compose file. Otherwise, the Grafana container will just continually restart in error due to insufficient permissions (detailed in API troubleshooting).

GHOSTS Clients

For any of the clients utilizing the browser, an automation driver is necessary to be included in the same folder as the GHOSTS binary. For Firefox, download the appropriate 🦎 Geckodriver for your version of the browser here. For Chrome, download the appropriate Chromedriver for your version of the browser here.

Note there are additional configuration steps for Outlook email automation.

The GHOSTS client should typically be run as a specific user, and not as an administrator or root account.

Windows Client

  1. Your client machine will need to have (at least) the Microsoft DotNet 4.6.1 runtime installed. You do not need the full SDK.
  2. Download the latest Windows client.
  3. Unzip to your client machine in a directory such as c:\exercise\ghosts. You will need to adjust the configuration in config/application.json for your client to talk to the already installed API server from above.

Linux Client

  1. Your client Linux machine will need to have version 6 of the Microsoft dotnetcore runtime installed. Again, note that you only need the runtime installed, not the full SDK.
  2. Download the latest Linux client zip file. Unzip to a folder such as ~/ghosts for the user that you want GHOSTS to run as.

Note that on Linux machines running the client as root and utilizing web browsing may result in failures due to Gecko/Chromedriver display issues.