A complete walkthrough of building a realistic penetration testing lab in Proxmox — isolated network segments, a vulnerable Active Directory environment, intentional web application vulnerabilities, and the attack infrastructure to test against all of it.
Most security certifications and courses teach you concepts. What they don't give you is a realistic environment to practice those concepts repeatedly, break things intentionally, and develop genuine muscle memory. I wanted to be able to practice Active Directory attacks — Kerberoasting, AS-REP roasting, lateral movement, DCSync — and web application exploitation without using live systems or depending on a VPN connection to a hosted lab.
The goal was a self-contained environment I could snapshot before any major attack chain, test techniques from a real Kali machine, and fully document what I was seeing. Every machine in this lab exists to teach me something specific.
| Component | Spec |
|---|---|
| Hypervisor | Proxmox VE 8.x |
| Hardware | Intel Core i5, 32GB RAM, 3x 500GB SSD + 1x 500GB NVMe |
| Networks | 3 isolated network segments |
| VMs | 7 virtual machines |
| Domain | ad.lab |
Three completely isolated network segments prevent any accidental traffic leakage and simulate real network boundaries:
| Segment | Purpose | Machines |
|---|---|---|
| Management | Proxmox management access | Proxmox host only |
Attack Net10.10.10.0/24 | Attack machine + web targets | Kali, Linux Web Server |
AD Environment10.80.80.0/24 | Active Directory network | DC01 Domain Controller, AD-joined targets |
Primary attack platform. Full Kali Linux installation with the complete offensive toolkit. Dual-homed with access to both the attack network and (selectively) the AD environment for AD attack scenarios. All practice sessions run from here.
Windows Server running the ad.lab domain. Intentionally misconfigured with vulnerable accounts to practice specific attack techniques:
| Account | Password | Vulnerability |
|---|---|---|
svc_sql | SQLService1 | Kerberoastable SPN (MSSQLSvc) |
svc_backup | BackupPass1! | Kerberoastable SPN — Domain Admin member |
asrep.user | ASREPRoast1! | Pre-authentication disabled (AS-REP Roastable) |
john.smith | Welcome1! | Standard domain user — assumed breach starting point |
Ubuntu 22.04 LTS running multiple intentionally vulnerable web applications via Docker:
A typical practice session follows this workflow:
1. Take Proxmox snapshots on all target VMs (clean restore point)
2. Start from the appropriate starting position:
- Unauthenticated: just Kali on the network, no creds
- Assumed breach: john.smith credentials provided
3. Run through the attack chain completely from enumeration to objective
4. Document every command, output, and decision in Markdown
5. Restore to snapshot — repeat until execution is clean
6. Write the formal write-up from my notes
The snapshot restore workflow is intentional — it forces me to practice the same technique repeatedly until I understand exactly what each tool is doing and why each command produces the output it does.
Being honest about what this lab is and isn't: