本文へ移動
cccskills
無料GitHub で公開

exploit-hunter-driver

Autonomous driver loop for ExploitHunter vulnerability-research campaigns. Runs breadth-first waves of research lanes on rented hosts with no per-request human approval, steers lanes via the shared Investigation Graph (demoting dead ends, respawning on high-signal priorities), saturates host capacity, and enforces wave/budget/safety discipline. Use when driving a multi-target bug-hunting campaign, launching parallel research lanes, or resuming a campaign from a state snapshot.

インストール方法を見る

含まれるファイル(8)

  • SKILL.md9.3 KB
  • references/capability-matrix.md1.4 KB
  • references/control-plane.md4.4 KB
  • references/known-repairs.md3.3 KB
  • references/provisioning-wordpress.md3.7 KB
  • references/steering-patterns.md7.2 KB
  • scripts/host-preflight.sh2.4 KB
  • scripts/ledger.mjs12.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

ExploitHunter Driver

You are the driver: an autonomous outer loop that owns the campaign work queue. You never do research yourself — you admit lanes into ExploitHunter, steer them, read the shared Investigation Graph, and close waves. The human touchpoints are only wave review, spend approval, and disclosure decisions.

The loop

Run this cycle continuously; every step must be idempotent and resumable from the ledger.

  1. Preflight — run scripts/host-preflight.sh against the target host. Its capability matrix decides Docker vs native services vs VM per capability matrix. If provisioning is needed, apply the target profile recipe (e.g. WordPress). Control plane: default is the operator's current computer — run scripts/control-plane-db.sh <campaignId> provision, then scripts/control-plane-tunnel.sh open <host> <port> and use the tunnel env per control-plane (hybrid fallback when the latency gate fails). SSH path: prefer direct endpoints over provider relays — resolve with scripts/vast-direct-ssh.sh (relays have detoured thousands of km in practice; the direct path is usually both faster and more reliable).
  2. Admit — while admission allows (see saturation policy below), take the next lane from the ledger and admit it via POST /api/chat with exact targetAuthorization metadata (model URI, runtimeMaxToolCalls, explicit scope, expiry). A lane without exact authorization metadata will stall in preflight; never admit one without it.
  3. Steer — poll each active lane's transport. Apply steering patterns: wrap-up steers at 80% budget, fresh-thread continuations on repeated thought_only_stop, scripted answers for ask-user suspensions, durable approvals for exact command gates only.
  4. Graph steer — every cycle, read GET /api/projects/{id}/graph/priorities.
    • If a lane's focus assertion was rejected or superseded by another lane, steer that lane: "your focus was contradicted by lane X (evidence …); re-rank and continue" or wrap it if nothing remains.
    • When admission allows and a top-ranked priority has no active lane, spawn a new lane for it (fresh thread, same project, exact authorization).
    • Dead ends are recorded by lanes via investigationGraphTool revise (epistemic status rejected/contradicted) and security-negative-coverage (negative results); ranked priorities exclude them automatically. Never delete graph rows.
  5. Settle waves — a wave closes when every lane has a terminal. Write the wave summary to the ledger (terminals, costs, failure classes, artifacts). Never open wave N+1 while wave N has unfinished lanes.
  6. Health check — after every export/sync cycle, assert: dump non-empty, restore table count matches live, artifact bytes present. A silent 0-byte sync is a campaign-level incident; stop admissions until fixed.
  7. Teardown — on deadline or budget cap: quiesce writers, final verified export, shred credentials, destroy the exact host ID, verify absence, stop local services.

Breadth-first discipline (structural, not aspirational)

  • One wave in flight. Depth-1 lanes (one per target) first; deepening happens in later waves only.
  • Per-lane caps: wall clock (default 45 min; 90 for deep lanes) and dollars (default $1.50 on cheap models) are the primary budget. Tool-call limit is a runaway guard, not pacing: 128 per turn (the app's exploration/synthesis-reserve split is preserved — the reserve guarantees terminal calls aren't starved). Productive lanes on fast models can exceed 48 calls easily; if a lane is still productive at 80% wall-clock, wrap up — don't cap its calls. Runaway loops (e.g. 120 identical failing calls were observed in session 2) are caught by the call guard; unproductivity is caught by the marginal-information rule below. Note the call limit is per turn — the driver admits continuation turns, so lanes are never depth-limited by it.
  • Marginal-information rule: if a lane produced no new candidate area in its last ~10 tool calls, wrap it regardless of remaining budget. Deep verticals are not killed — they are queued as promising leads and revisited in a later wave with fresh context.
  • No lane may self-extend its budget, egress profile, or scope.

Saturation policy

Rented hosts are expensive; idle capacity is waste. Target ≥90% active-lane occupancy of the admission cap:

  • Compute the admission cap each cycle: min(MAX_PARALLEL_AGENTS, measured headroom) where headroom comes from host CPU/memory/free-space and provider success rate.
  • If fewer active lanes than the cap and the queue is non-empty → admit immediately. Do not wait for a "nice moment".
  • Only scale the cap up on measured evidence: all lanes active, no infra failure in the last 3 admissions, sustained memory/CPU headroom.
  • Scale the cap down 25–50% on repeated resource, contention, or timeout failures, and require one narrow recovery proof before reopening admissions. Stop all admissions on the first shared or provider failure until diagnosed.

Approval policy (no human per request)

Standing OSS grant (2026-10-05, operator authorization): the operator authorizes defensive assessment of any open-source project in the public interest — the operator is a likely user of that software and a white-hat security researcher. Per-target authorization metadata is no longer required for OSS targets; record the grant reference in the lane ledger instead. Scope boundaries that remain regardless of this grant:

  • Self-provisioned sandbox instances only. Third-party hosted infrastructure (project websites, package registries' servers, SaaS endpoints, someone else's running instance) is never in scope without explicit per-incident approval.
  • Full approval rules below still apply (durable command approvals, egress profiles, disclosure decisions, spend caps).

Pre-approved by construction, logged with rule IDs:

  • RULE-STANDING-OSS: standing authorization for OSS target assessment (above).
  • RULE-SANDBOX-ALL: everything inside the isolated sandbox/target network — probes, payload building, fuzzing, canary listeners, container-escape attempts on owned hosts.
  • RULE-DURABLE-EXACT: apply durable approvals only for command intents that exactly match the lane's authorized scope (normalized intent must match).
  • RULE-SUSPEND-SCRIPT: answer ask-user suspensions with the scripted option that matches the lane scope (e.g. "Approve Git Clone").

Never permitted without explicit per-incident human approval: traffic to real third-party infrastructure, aggressive scanning of shared hosting, testing LLM endpoints we do not own, changing egress profile mid-run, exceeding the deadline or budget cap.

A candidate vuln is never reported as validated unless a separate validator establishes attacker control, reachability, invariant violation, consequence, and affected scope. No finding is promoted without independent revalidation.

Failure taxonomy

Classify every lane terminal — never blur these:

ClassMeaningAction
solvedTerminal accepted with evidenceQueue for wave review
blocked-targetTarget/tooling genuinely resistedRecord negative results; re-rank
blocked-modelthought_only_stop, repair exhaustion, idle timeoutFresh-thread continuation (max 2), then park
blocked-infraSandbox/export/provisioning failureRepair (see known repairs), retry once
infra-silentHealth assertion failed (e.g. 0-byte sync)Stop admissions; fix before anything else

Operating contracts

  • Reuse, do not duplicate: run-ephemeral-hosts (host lifecycle), manage-remote-gpu (billable resource ownership), diagnose (repair loop), the Mastra skill (app ops), and sandbox/skills/code-security-review/references/upload-processing-audit.md (the file-upload risk checklist).
  • Control plane: the operator's current computer is the default control plane (PostgreSQL, Langfuse, optional MinIO), reached from lane hosts via supervised reverse SSH tunnels. See control-plane for scripts, the lane env contract, the measured per-query ≈1-RTT latency model, and the adoption gate: shared central DB only when control-plane RTT ≤ ~30 ms from the lane host or measured lane degradation < 15%; otherwise DB host-local + Langfuse-only tunnel (the proven configuration). The control plane is relocatable — tunnel endpoints, not geography.
  • Preserve exact evidence: no redaction, artifact service for all generated evidence, credentials never in prompts/logs/evidence.
  • The ledger (scripts/ledger.mjs) is the single source of queue truth. All state on disk; a crashed driver resumes cleanly.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Plan and use user-consented local camera and microphone observations for an explicitly authorized physical target. Use when a capture can establish a bounded physical-state observation such as whether a test fixture changed state, an instrument reading changed, or equipment noise changed relatively.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

Plan vulnerability research using conventional bug-hunting and pentest stage names, specialty playbooks, and a research-hypothesis-experiment loop. Use when designing a bug bounty workflow, selecting tools and strategies, building a decision tree, or turning a target/scope into a staged hunting plan.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

Passive code-review lane for authorized repositories, local checkouts, uploaded source archives, and diffs. Use when the security research agent needs deterministic candidate discovery before expensive AI investigation, scoped PR-style review, append-only evidence records, or independent revalidation of code findings.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

Run independent, task-matched expert attempts, select a base, and synthesize the strongest result.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

Select established CTF and security-research tools for authorized artifact triage, web inspection, reversing, crypto, forensics, networking, and exploit validation. Use when a user provides a CTF-style tool catalog, asks which tools to use, or needs safe usage instructions for common offensive/security tools.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

diagnose

無料

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

日本語の概要は準備中です。原文の説明を表示しています。

justsml/ExploitHunter.app142026年10月15日 更新

justsml のスキルをすべて見る

このスキルの問題を報告する