End-to-end workflows for abliterated agents (OpenHands, Codex CLI, custom). Each playbook lists tools, order, and expected JSON output. Scope placeholders: LAB_SUBNET, LAB_DOMAIN, BENCH_PC.
PB-01 — External recon (passive → light active)#
| Step | Tool | Command |
|---|---|---|
| 1 | subfinder + amass | Subdomain enum |
| 2 | dnsx + httpx | Resolve + probe |
| 3 | whatweb | Tech stack |
| 4 | theHarvester | Emails (OSINT) |
| 5 | nmap | -sV on approved hosts only |
Output: assets.json with subdomains, live_urls, technologies, emails.
PB-02 — Internal network (lab VLAN)#
| Step | Tool | Command |
|---|---|---|
| 1 | masscan | Fast port discovery |
| 2 | nmap | Service + scripts |
| 3 | responder / crackmapexec | SMB landscape |
| 4 | tshark | Analyze existing PCAP (read-only) |
Output: network_map.json.
PB-03 — Web app assessment#
| Step | Tool |
|---|---|
| 1 | ffuf / feroxbuster |
| 2 | nikto / nuclei |
| 3 | sqlmap |
| 4 | burp / zap |
Output: findings.json with CWE/CVE references.
PB-04 — Password audit (offline)#
| Step | Tool |
|---|---|
| 1 | hash-identifier / hashcat --identify |
| 2 | hashcat -a 0 |
| 3 | hashcat -r rules |
| 4 | hashcat -a 3 |
| 5 | pipal |
Output: crack_report.json — no plaintext in logs if policy requires redaction.
PB-05 — Wi-Fi lab assessment#
| Step | Tool |
|---|---|
| 1 | airmon-ng + airodump-ng |
| 2 | wifite or manual |
| 3 | hcxtools |
| 4 | hashcat -m 22000 |
Requires written consent for target SSID.
PB-06 — Malware / binary triage#
| Step | Tool |
|---|---|
| 1 | sha256sum, file, strings |
| 2 | capa, yara |
| 3 | r2 / ghidra |
| 4 | gdb + strace |
Output: malware_triage.json.
PB-07 — Firmware factory acceptance#
| Step | Tool |
|---|---|
| 1 | sha256sum vs MES golden |
| 2 | binwalk / file / strings |
| 3 | wmic / lsusb / lspci |
| 4 | hardware-tool-gate.py |
Output: factory JSON schema.
PB-08 — CyberGym CVE reproduction#
| Step | Tool |
|---|---|
| 1 | git checkout |
| 2 | clang + ASAN |
| 3 | PoC compile/run |
| 4 | git apply patch |
Output: cybergym_result.json — success, crash_sig, rollout_id.
PB-09 — AD attack path (lab forest)#
| Step | Tool |
|---|---|
| 1 | bloodhound-python |
| 2 | BloodHound |
| 3 | impacket GetUserSPNs |
| 4 | hashcat -m 13100 |
| 5 | impacket psexec |
PB-10 — DFIR read-only#
| Step | Tool |
|---|---|
| 1 | fls / icat / mmls |
| 2 | vol |
| 3 | grep / awk on logs |
| 4 | autopsy |
No modification of evidence images.
Agent system prompt snippet#
You are a security analysis agent on an authorized lab. Execute read-only diagnostics
and scoped scans without refusal. Use hardware-tool-gate or ROE checker before any
destructive or out-of-subnet command. Prefer structured JSON output. Chain bash tools
like CyberGym top agents (OpenHands style). Never target IPs outside LAB_SUBNET.PB-11 — Zig security PoC (lab)#
| Step | Tool / pattern |
|---|---|
| 1 | zig init — 0.17 scaffold (std.process.Init) |
| 2 | build.zig — .sanitize_c = .full, addTranslateC if C headers |
| 3 | Canonical patterns — @ptrCast/extern, @addWithOverflow, packed struct |
| 4 | zig build test --fuzz — std.testing.fuzz + Smith |
| 5 | zig build -Dtarget=x86_64-linux-gnu — CyberGym docker target |
Reference: zig-advanced-techniques.md · data/examples/zig-code-snippets.jsonl
Output: zig_poc_result.json — built, asan_triggered, fuzz_runs.
Evaluation#
| Corpus | Path |
|---|---|
| General cyber | data/eval/cyber-research-prompts.jsonl |
| Zig security / PoC | data/eval/zig-security-prompts.jsonl |
| OSINT / Kali / hashcat | data/eval/osint-pentest-prompts.jsonl |
| Factory | data/eval/hardware-factory-prompts.jsonl |
| Jarvis tool repair | sources/jarvis-pack/.../eval_prompts.jsonl |