AI-300 roadmap (AI Red Teamer)
AI-300 is OffSec’s AI Red Teamer certification. It tests whether you can break LLM-backed applications end-to-end: prompt injection (direct and indirect via RAG/tool output), jailbreaks, model and training-data extraction, agentic loop hijacking, MCP abuse, and model supply-chain tampering. Expect a hands-on exam against a graded LLM-app stack with a written report at the end. Plan on 10 weeks of focused study if you already have web pentest fundamentals and can write Python; longer if either is shaky. Ideal candidate: a working AppSec/red-team engineer who has shipped at least one LLM feature or audited one, and is comfortable reading model-server code.
Who this is for
- You have web pentest fundamentals (OWASP Top 10, Burp, auth flows) — AI-300 assumes you can already break a normal web app.
- You write Python fluently — every harness, fuzzer and eval you build will be Python.
- You have touched the OpenAI/Anthropic/HF APIs at least once and understand tokens, context windows, and tool/function calling.
- You can stand up Docker, a vector DB and a local model without hand-holding.
- You are comfortable writing reports that translate weird LLM behaviour into business impact.
What AI-300 tests
- Format: proctored, hands-on lab exam against a graded LLM-application environment plus a written report.
- Duration: roughly 48 hours of lab time followed by a 24-hour report window (treat the report as half the grade).
- Environment: OffSec-hosted stack with multiple LLM apps — a RAG assistant, an agent with tools, and at least one MCP-style integration.
- You must demonstrate working exploits, not theoretical ones — payloads, transcripts, and reproduction steps.
- Coverage: OWASP LLM Top 10 mapped to concrete attacks (LLM01 prompt injection, LLM02 insecure output handling, LLM06 sensitive info disclosure, LLM07 insecure plugin design, LLM10 model theft).
- Deliverables: a professional report with proof-of-exploit, impact, and remediation per finding — graded like an OSCP report, not a blog post.
- Scoring rewards full chains (injection -> tool abuse -> data exfil) over isolated single-turn jailbreaks.
- Novel-technique allowance: anything you discover mid-engagement counts if you can reproduce it.
Lab setup (do before week 1)
- Linux host with 32 GB RAM minimum, NVIDIA GPU with 12 GB+ VRAM if you want to run local models seriously.
- Python 3.11 with
uvorpyenv; pin per-project venvs. - Docker Engine 26+ and
docker composev2 for spinning up vulnerable stacks. - Ollama 0.3+ for local Llama 3.1, Qwen 2.5, Mistral; plus an OpenAI and Anthropic API key for cross-vendor testing.
- A vector DB you control: Chroma or Qdrant in Docker. Do not depend on managed services.
- Tooling baseline:
promptfoo(npm),pyrit(pip),garak(pip),giskard(pip),nemoguardrails(pip). - Burp Suite Pro with the AI-focused extensions; mitmproxy for inspecting model traffic that Burp mangles (SSE, websockets).
- A note-taking system that survives 10 weeks — Obsidian vault, one note per attack class, one transcript per successful exploit.
1
2
3
4
5
uv venv ai300 && source ai300/bin/activate
uv pip install pyrit garak giskard nemoguardrails openai anthropic httpx
npm i -g promptfoo
docker run -d -p 6333:6333 qdrant/qdrant:latest
ollama pull llama3.1:8b qwen2.5:7b
The 10 weeks
Week 1 — LLM threat model and OWASP LLM Top 10
- Read: ai-red-teaming, llm-prompt-injection, owasp-llm-top-10, report-writing-for-pentesters
- Labs: Walk every category in
garak --list_probesagainst a local Llama 3.1 8B and record which probes trip on a vanilla system prompt. - Deliverable: a one-page threat-model template you reuse for every target — assets, trust boundaries, prompt-flow diagram.
Week 2 — Direct prompt injection and jailbreaks
- Read: llm-prompt-injection, llm-jailbreaks-2025, ai-eval-harnesses-promptfoo
- Labs: Reproduce DAN-family, payload smuggling (base64, ROT, unicode tag chars), and multilingual jailbreaks against three vendors. Confirm which still work on current frontier models.
- Deliverable: a
promptfoosuite of 40+ jailbreak cases with pass/fail asserts, runnable in CI.
Week 3 — Indirect prompt injection via RAG
- Read: indirect-prompt-injection-via-rag, llm-prompt-injection, ai-red-teaming
- Labs: Stand up a RAG chatbot over Qdrant. Poison a document so a benign user query triggers exfiltration of session context to a webhook.
- Deliverable: a documented exploit chain with the poisoned document, the user query, and the captured exfil request.
Week 4 — Agentic loop hijacking and tool abuse
- Read: agentic-llm-attacks, indirect-prompt-injection-via-rag, ai-red-team-tooling-pyrit-garak
- Labs: Build a LangGraph or pure-Python agent with three tools (search, file read, shell). Hijack it via tool output to call an unintended tool with attacker-chosen args.
- Deliverable: a video or transcript showing the agent reading attacker content and then executing a destructive tool call.
Week 5 — MCP server abuse
- Read: mcp-attacks, mcp-server-supply-chain-attacks, agentic-llm-attacks
- Labs: Run two community MCP servers locally; demonstrate tool-poisoning (malicious tool description that hijacks the model) and cross-server confused-deputy.
- Deliverable: a written MCP threat-model section with three concrete CVE-class findings.
Week 6 — Model and training-data extraction
- Read: ai-red-teaming, llm-prompt-injection, ai-red-team-tooling-pyrit-garak
- Labs: Use PyRIT orchestrators to extract system prompts, hidden tool schemas, and memorised training fragments from a fine-tuned model you host yourself.
- Deliverable: a redacted transcript proving system-prompt recovery with diff against the real prompt.
Week 7 — Supply chain: models, datasets, packages
- Read: supply-chain-attacks-on-models, slopsquatting, mcp-server-supply-chain-attacks
- Labs: Build a malicious Hugging Face repo with a poisoned
pickleand a benign-lookingsafetensors; demonstrate code execution on load. Then craft a slopsquatted PyPI name that an LLM coding assistant happily recommends. - Deliverable: a supply-chain finding writeup including detection rules a defender could deploy.
Week 8 — Evals, guardrails and bypasses
- Read: ai-eval-harnesses-promptfoo, ai-red-team-tooling-pyrit-garak, llm-jailbreaks-2025
- Labs: Wrap a target with NeMo Guardrails and Llama Guard; then break each control with payload smuggling and tool-output injection.
- Deliverable: a guardrail-bypass matrix — control vs attack vs result — that becomes a section in your report.
Week 9 — Full-chain engagement rehearsal
- Read: agentic-llm-attacks, mcp-attacks, report-writing-for-pentesters
- Labs: Pick a vulnerable app (Damn Vulnerable LLM Agent, Gandalf, Lakera’s gauntlet) and chain at least three primitives into a single business-impact finding.
- Deliverable: a dry-run report with executive summary, finding chain, and remediation, time-boxed to 24 hours.
Week 10 — Exam simulation
- Read: re-read your own notes; skim ai-red-teaming and report-writing-for-pentesters only.
- Labs: 48-hour timed run against a target you have not touched; no new tooling allowed.
- Deliverable: a graded report you would actually submit. Have a peer review it.
Required tooling
- promptfoo, PyRIT, garak, Giskard, NeMo Guardrails, Llama Guard
- Burp Suite Pro, mitmproxy,
httpx - Ollama, vLLM or TGI for self-hosted targets
- Qdrant or Chroma for RAG labs
- LangGraph or a small custom agent loop you fully understand
- Docker,
uv,jq,ripgrep
Practice corpus
- Gandalf (Lakera) — fast feedback on direct injection
- Damn Vulnerable LLM Agent — agentic tool abuse
- Prompt Airlines, Doublespeak, Tensor Trust — adversarial prompt games
- MCP reference servers (filesystem, fetch, git) — real protocol surface
- Hugging Face’s
huggingface/transformersissues for live model-loading CVEs - AI Village CTFs at DEF CON archives for end-to-end scenarios
Pragmatic notes from people who sat the exam
- Build your own eval harness early — promptfoo plus a small Python wrapper beats memorising payloads. The harness is also half your report appendix.
- Tooling moves monthly; the exam rewards methodology. If garak’s probe X fails today, you should be able to write probe X’ from the paper.
- CVE numbering is loose in this space. Make impact concrete: “data exfil of 200 customer records via tool-call to attacker webhook” lands; “LLM01 observed” does not.
- Novel techniques mid-engagement happen. Keep a
findings.mdopen and timestamp everything — exam graders care about reproducibility, not elegance. - Distinguish policy bugs from app bugs. A jailbreak alone is rarely a finding; a jailbreak that triggers an authenticated tool call is.
- Report writing is the gate. Plan a full day for it and write the executive summary first — it forces you to know what you actually proved.
Failure modes to avoid
- Chasing every new jailbreak paper instead of building a repeatable harness.
- Testing only against ChatGPT — the exam targets self-hosted stacks where guardrails behave differently.
- Ignoring the agent’s tool schema; most high-impact chains live in tool argument injection, not the chat surface.
- Writing the report at the end. Draft findings as you exploit them, screenshots and all.
- Treating MCP as exotic — it is just JSON-RPC with tool descriptions, and that is where the bugs live.
After AI-300
- Contribute a probe or eval upstream to garak or promptfoo — it cements the methodology and is portfolio gold.
- Move toward applied research: read the latest AI Village, BlackHat AI track, and arXiv
cs.CRweekly, and reproduce one paper per month. - Pair AI-300 with a classical offensive cert (OSWE for app depth, OSEP for evasion) — the combination is rare and hireable.
References
- https://www.offsec.com/courses/ai-300/
- https://owasp.org/www-project-top-10-for-large-language-model-applications/
- https://github.com/Azure/PyRIT
- https://github.com/NVIDIA/garak
- https://www.promptfoo.dev/docs/red-team/
- https://modelcontextprotocol.io/specification
See also: ai-red-teaming, llm-prompt-injection, indirect-prompt-injection-via-rag, agentic-llm-attacks, mcp-attacks, supply-chain-attacks-on-models, ai-eval-harnesses-promptfoo, report-writing-for-pentesters