Module introduction
In this module, you’ll build the core platform for the C2 environment. Depending on your situation, choose the most appropriate starting point:
Bare metal server (no virtualization yet): If you plan to install a new virtualization platform on a bare metal server, start with section 2.1 and follow the instructions for setting up Proxmox VE.
Existing virtualization platform: If you need (or are required) to use an existing (corporate-managed) virtualization platform (e.g., Proxmox VE or vSphere), you can start at section 2.2. If you plan to use this platform for live red-teaming engagements, ensure that your virtualization platform meets the hardening baseline described in sections 2.1.5 and 2.1.6.
Desktop hypervisor for learning purposes (e.g. VMware Workstation): If you are using a desktop hypervisor purely for training or lab purposes, you can also start at section 2.2.
From there, you’ll create a Debian-based server template, provision the management server, and set up OPNsense with OpenVPN for secure remote access and network segmentation. You’ll then deploy Apache Guacamole as a central access gateway into the internal C2 infrastructure, with fine-grained role-based permissions and full session auditing.
Platform Compatibility Warning:
Please be aware that this course officially uses Proxmox VE. If you deploy a different hypervisor, you will need to adapt the Proxmox-specific steps in the training material to your chosen virtualization stack. A different hypervisor choice also directly impacts the provided automated deployment dashboard, which relies on Proxmox functionality out of the box. While the automation is tailored to Proxmox, adapting the dashboard to alternatives like vSphere is entirely possible; we have successfully deployed this automation dashboard within vSphere environments ourselves, and the underlying logic can be modified to fit your enterprise architecture.
Credential Management
Starting with this module, you will create and use several different accounts (for systems, services, and applications). We strongly recommend storing all credentials in a password manager. You can use any manager you prefer. In this course, we will use KeePassXC, because it runs on macOS, Linux, and Windows and supports auto-type (e.g. {MODE=VIRTUAL}{PASSWORD}{ENTER}), which is especially useful in the beginning when copy/paste on a VM is limited or inconvenient.