Loading...
Loading...
Local pentest sandbox for a full black-box engagement. Triggers on "kage", "pentest", "security audit on", "audit the security of". Runs recon, deep testing, exploit verification, and judging inside a per-engagement Kali Docker container. Each host working directory gets its own isolated sandbox. Produces `./results/<target>/audit-report.md`.
npx skill4agent add workersio/spec kagekage <target>pentest <target>security audit on <target>kage audit <local path>kage greybox <target> <source-path><target>*.example.comgreyboxaudit-context-building$K$PWDSKILL_DIR="$HOME/.claude/skills/kage"
K="$SKILL_DIR/scripts/k"
"$K" <cmd> # runs <cmd> inside this engagement's container
"$K" ls | reset | prune | nuke # management subcommands/skill/scripts/*.py/workspace/results/<target>/SKILL_DIR="$HOME/.claude/skills/kage"
K="$SKILL_DIR/scripts/k"
"$K" whoami # warms the sandbox; surfaces docker errors
TARGET="example.com" # derive from user prompt; slugify for paths
# Host-side mkdir so dirs are owned by your UID (host Write tool needs this).
mkdir -p "results/$TARGET"/{recon,vulns,testing,exploits,chains,verification,judging,reports}./creds.mdassets/creds.sample.mdgreyboxaudit-context-building<source-path>function-analyzerresults/$TARGET/context.mdcontext.mdresults/$TARGET/engagement.json{target, scope_type, started_at, rules_of_engagement}R="results/$TARGET"
"$K" bash -c '
set -e
cd /workspace
R="results/'"$TARGET"'"
(subfinder -d "'"$TARGET"'" -silent \
| tee "$R/recon/subs.txt" \
| httpx -silent -title -tech-detect -status-code \
| tee "$R/recon/live.txt") &
(gau --subs "'"$TARGET"'" > "$R/recon/wayback.txt") &
(until [ -s "$R/recon/live.txt" ]; do sleep 1; done
katana -u "$R/recon/live.txt" -d 3 -jc -silent -o "$R/recon/crawl.txt") &
(python3 /skill/scripts/dorks.py -d "'"$TARGET"'" --output "$R/recon/dorks.json") &
wait'port-scannerHOSTS_FILE=$R/recon/live.txtOUTDIR=$R/recon/ports/GITHUB_TOKENscripts/gitmail.py"$K" bash -c "GITHUB_TOKEN=\"$GH_TOKEN\" python3 /skill/scripts/gitmail.py \
-O <guessed-org> -r -s --verified-only \
-o /workspace/$R/recon/github.json"vuln-scannerLIVE_HOSTS_FILE=$R/recon/live.txtOUTPUT=$R/vulns/nuclei.txtrecon/summary.mdrecon-onlyrecon/summary.md$Ktesting/<class>/| Trigger in recon | Dispatch |
|---|---|
| login / SSO / OAuth / JWT endpoints | |
| API endpoints with object IDs + 2 accounts | |
| 403s, admin panels, role-gated routes + ≥2 roles | |
| |
| parameterised URLs, search fields, forms, GraphQL vars | |
| user-facing HTML (comments, profile, search) | |
OpenAPI/Swagger URL, | |
| payment / coupon / redeem / invite / signup endpoints | |
| crawler surface thin; hidden paths likely | |
| JS bundles discovered in Turn 1 | |
| any live web host | |
| needs 2+ provisioned accounts (self-service signup) | use |
greyboxresults/$TARGET/context.mdfindings[]summary{}scripts/tls.pyscripts/browser.pyreferences/judging.mdgreyboxcontext.mdcurl_cffiresults/$TARGET/exploits/<slug>.pyverifierOUTDIR=results/$TARGET/verification/F<NNN>/verification/verified_findings.jsonchain-builderreferences/chains.mdjudgereferences/judging.mdjudging/approved_findings.jsonjudgment.mddropped_findings.mdreport-writerTARGETENGAGEMENT_JSONAPPROVED_FINDINGS_JSONTEMPLATE=$SKILL_DIR/references/audit-report-template.mdOUTPUT=results/$TARGET/audit-report.md{{placeholders}}tls.py --impersonate <name>scripts/browser.pycreds.mdreferences/methodology.mdreferences/judging.mdreferences/chains.mdreferences/report-formatting.mdreferences/audit-report-template.mdreferences/tools.mdreferences/audit-context-building/SKILL.mdreferences/agentmail/SKILL.mdassets/creds.sample.mdassets/wordlist-strategy.md