Security operations · Infrastructure · Detection engineering
I built an enterprise network out of surplus hardware, broke into it, and caught myself doing it.
Cerberus is a five-host, VLAN-segmented cyber range running a live Active Directory forest, a Wazuh SIEM, and an air-gapped malware lab on the other side of a firewall. Total hardware cost: about $820. It scored 100/100 as a capstone. It is still running.
Surface
192.168.50.0/24 · managementThis page is laid out the way the network is: by depth. Every section below is a real segment with its own trust boundary, and each project sits at the depth it actually runs at. The surface is the management plane — five machines sourced from university surplus and spare parts, running a three-node Proxmox cluster with a redundant Corosync ring on a dedicated cable mesh. Two of those machines share one case I 3D-printed for them. 136 GB of RAM for roughly a quarter of retail.
The Gate
argus · opnsenseNothing crosses between the management plane and the range except what I explicitly allow. The range rides as tagged VLAN 40 over each node's existing uplink, with no switch SVI — so the switch itself can never route into it. OPNsense is the only gateway, running default-deny, with a small number of narrow, source-restricted exceptions. Every one of those exceptions was verified in both directions: the allowed host reaches the service, and a different host on the same subnet times out.
osiris $ curl -sk https://range-svc:55000/ HTTP 401 Unauthorized # path works — no creds sent, as expected heavy $ curl -sk --max-time 10 https://range-svc:55000/ curl: (28) Connection timed out # different host, same subnet: blocked
The Range
10.40.40.0/24 · isolatedAn enterprise network in miniature, deliberately built wrong in specific, documented ways. A Windows Server domain with Kerberoastable service accounts, an AS-REP roastable user, an over-permissioned help desk group, unconstrained delegation, and a misconfigured certificate template. Wazuh watches all of it. The point is not that it's vulnerable — it's that every vulnerability is one I chose, placed, and can explain.
Cerberus
Three-node Proxmox cluster, firewall-segmented range VLAN, a full Active Directory forest with a certificate authority, a Wazuh SIEM with Sysmon telemetry off the Windows endpoints, and a rack of intentionally vulnerable targets. Built end to end, documented to a technical reference and two field guidebooks, and submitted as a capstone that scored 100/100.
Read the case file →The Gauntlet
A scored campaign layered over the range: nineteen challenges, per-instance cryptographic flags that can't be looked up online, and a hint economy. The part I care about is the blue-team half — it queries the SIEM over your run window and pays a stealth bonus only if you completed the objective without tripping a detection.
Read the case file →The Pit
10.66.66.0/24 · no route outThe malware lab is the one machine that is not part of the cluster, on purpose. Clustering it would mean heartbeat traffic, shared storage paths, and live migration between the detonation host and everything else — which would quietly undo the isolation that is the entire point of it. So Hades stands alone, and its detonation bridge has no physical uplink and no host IP at all.
$ ping -c1 8.8.8.8 # the internet 1 packets transmitted, 0 received exit 2 $ ping -c1 192.168.50.1 # the management plane 1 packets transmitted, 0 received exit 2 $ ping -c1 10.40.40.1 # the range next door 1 packets transmitted, 0 received exit 2 Bridge has no physical port. Host has no IP on it. ip_forward=0. No NAT, no route.
Capabilities, and where to verify them
Every claim on this page points at something I built.
Skills lists are cheap. Here is what I can do and the specific piece of work that demonstrates it — including the parts that broke.
Designed and cabled a VLAN-tagged range with no switch routing path into it, a firewall as sole gateway, default-deny, and source-restricted exceptions verified from both an allowed and a denied host. Built a redundant Corosync ring over a dedicated three-node cable mesh so quorum survives a switch failure.
Stood up a forest and certificate authority from an unattended install, then seeded it with Kerberoastable SPNs across three difficulty tiers, AS-REP roasting, unconstrained delegation, an ACL abuse path to Domain Admin, and an ESC1 certificate template — each verified by reading the live object back after publishing.
Wazuh manager with agents on the Windows and Linux victims, Sysmon feeding the Windows endpoints, and Atomic Red Team used to generate technique coverage. Purple-team loop: run the technique, check whether it fired, write a rule to close the gap when it didn't.
Designed the detonation environment for isolation first: standalone host, bridge with no uplink and no host IP, simulated internet, one-way sample intake. Verified the air gap empirically against three separate networks rather than assuming it from the config.
Found a critical unauthenticated credential-disclosure flaw in my own application during a self-review and rebuilt it: a single deny-by-default gate instead of per-route decorators, tracked example configs separated from gitignored real ones with startup validation, brute-force lockout, TLS, and shared-secret auth for the one headless client.
A full technical reference with schematics, two field guidebooks totalling fourteen structured lab exercises, and a capstone report — all written to be handed to someone else and used. The reflection section was singled out as the strongest part of the capstone.