Prerequisites

Before your first launch, make sure you have:

  1. Built the server, client, and extenders (see Building from Source)
  2. Generated TLS certificates (see SSL/TLS Setup)
  3. Configured profile.yaml with a strong password (see profile.yaml Reference)

Step 1: Generate TLS Certificates

cd dist
bash ssl_gen.sh

Follow the prompts. For a quick test, press Enter for all fields.

Step 2: Edit the Configuration

Open dist/profile.yaml and change at minimum:

Teamserver:
  password: "YourStrongPasswordHere"
  port: 4321

Step 3: Start the Server

cd dist
./justserver

You should see output similar to:

[*] Loading extenders...
[+] Loaded listener: BeaconHTTP
[+] Loaded listener: BeaconTCP
[+] Loaded listener: BeaconSMB
[+] Loaded listener: BeaconDNS
[+] Loaded agent: beacon
[+] Loaded listener: GopherTCP
[+] Loaded agent: gopher
[*] Starting teamserver on 0.0.0.0:4321
[+] Teamserver started

If extenders fail to load, check that the .so files exist in the extender directories and were built with the same Go version as the server.

Step 4: Launch the Client

Open a new terminal:

cd dist
./JustClient

The client opens a connection dialog.

Step 5: Connect to the Server

In the connection dialog:

  1. Host: Enter the server’s IP address or hostname (e.g., 127.0.0.1 for local, or your VPS IP)
  2. Port: The port from profile.yaml (default: 4321)
  3. Endpoint: The endpoint from profile.yaml (default: /endpoint)
  4. Username: Any name (if only_password: true) or your operator username
  5. Password: The password from profile.yaml
  6. Project Directory: Local directory where the client stores engagement data

Click Connect. The client will establish a TLS connection, authenticate, and open the main interface.

Since the server uses a self-signed certificate, the client automatically accepts it. This is by design for C2 operations.

Step 6: Verify the Connection

Once connected, you should see:

  • The main toolbar with all operation tabs (Sessions, Listeners, Downloads, etc.)
  • A green connection indicator
  • An empty sessions table (no agents deployed yet)

Next Steps

  1. Create a listener to accept agent connections
  2. Generate an agent payload and deploy it on a test target
  3. Interact with sessions through the console