OFFENSIVE SECURITY / HANDS-ON TRAINING
Ghost-Level Tradecraft: Building Stealthy AI Operators
3 MODULES · 12 LESSONSAbout this course
Building AI Operators for Offensive Adversary Simulation. A full-day, hands-on workshop where you build the discipline layer that turns an unconstrained AI agent into a stealthy, scoped, observable operator doing autonomous host triage against a defended target.
Course content
3 modules12 lessons~9–12 hoursHands-on labs
Boot your five-system range and verify browser access to every box. Confirm copy-paste through the lab desktop, then capture the activation flag planted at boot. This is the pre-flight check that makes the rest of the engagement possible.
- Objectives
- Boot your range, open all 5 systems through Guacamole, verify copy-paste, and read the planted flag from the Attacker system.
Build a base64-wrapped payload in Mythic and host it from your attacker box. Land your first callback on the Windows victim and read the flag out of the agent's first tasking. Your foothold on the target network starts here.
- Objectives
- Build a base64 Medusa payload in Mythic, wrap it into an echo | python one-liner, host it, run it on the Windows victim with irm | iex, and capture the flag{...} value the range injects into the callback's task output.
With a live callback in hand, enumerate the compromised host to understand where you've landed. Pull local group membership and user context to surface the planted flag. Situational awareness is what separates a blind operator from a precise one.
- Objectives
- Issue whoami/ps/env/net user through the Medusa beacon, capture findings, and find the flag in the net user group-membership line.
Wire an autonomous AI operator to your C2 over MCP and let it drive the engagement. Watch it enumerate, task, and summarize credentials without hand-holding. The flag lands in the agent's own credential report.
- Objectives
- Install the adversary operator system prompt, wire the Mythic MCP, launch OpenCode, give it the credential-discovery goal, and capture the flag from the agent's cred summary.
Push the AI operator further with tighter, goal-scoped tasking prompts. Learn to steer an agent that loops or over-reaches and keep it converging on the objective. You'll feel exactly where human judgment still beats raw autonomy.
- Objectives
- Self-paced: try bonus prompts (lateral movement, network connections, attack surface) and capture the flag from a bonus-prompt result summary.
Pivot to the defender's chair and hunt your own activity in the SIEM. Reconstruct the noise an unconstrained agent leaves behind and read the flag from a saved-query result. Every loud operation teaches you what quiet is supposed to look like.
- Objectives
- Log into Wazuh, filter the Windows victim's last 90 minutes, locate the detection-surface burst of process-creation events, and capture the flag from the MITRE ATT&CK module (Windows Command Shell, T1059.003).
Install and build the Ghostshell payload type on your C2 and land a stealthier, in-memory callback. Confirm it registers distinctly from your first agent. This is your transition from loud access to operator-grade tradecraft.
- Objectives
- Clone Ghostshell, install it into Mythic, build an http payload, run it on the victim, and capture the second (Ghostshell) callback id.
Extend Ghostshell with a custom in-memory module and load it without ever touching disk. Run it against the victim and submit the planted return value. You're now writing capability, not just using it.
- Objectives
- Copy the _template, write an in-memory whoami module (getpass.getuser, no subprocess), rebuild, load it into the live beacon, run it, and capture the returned username as the flag.
Have the AI operator generate a brand-new in-memory module on demand, rejecting anything that reaches for disk or a subprocess. Load the LLM-authored capability and read the flag from its output. This is capability development at machine speed.
- Objectives
- Point OpenCode at the capability-interface doc, have it generate list_env/list_procs/find_files, load each, run them in-memory, and capture the flag from the list_procs output.
Clone and deploy a ready-made library of in-memory credential-search modules. Point them at the victim and recover the planted credential string. A real operator carries a kit — here's yours.
- Objectives
- Clone ghostshell-credsearch, copy its modules in, rebuild, load search_files/dump_env/reg_query, run them, and capture the flag from the search_files recovered-credential output.
Compare the telemetry from your loud early operations against your quiet in-memory tradecraft. Open both saved queries side by side and read the flag from the opsec delta. Seeing that difference is the whole point of the course.
- Objectives
- Filter Wazuh for the last hour (Ghostshell run), compare to the morning's saved query, save the afternoon-quiet-run query, and capture the flag from the comparison query result.
Turn the fully-loaded Ghostshell agent loose on an autonomous, end-to-end simulation under a strict in-memory-only constraint. Let it triage, act, and report without ever spawning a shell. The final flag is in its triage summary — earn your ghost.
- Objectives
- Confirm the full capability surface is loaded, give the agent the capstone triage goal, let it run autonomously through in-memory capabilities, and capture the flag from the final host-triage summary.