본문으로 건너뛰기
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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구WordPress
설치 방법 보기

포함된 파일(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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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월 17일 업데이트

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월 17일 업데이트

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월 17일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

justsml/ExploitHunter.app142026년 10월 17일 업데이트

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월 17일 업데이트

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월 17일 업데이트

justsml의 스킬 모두 보기

이 스킬의 문제 신고