Agent SkillsH-mmer/pentest-agents › sast-exploit-builder

sast-exploit-builder

GitHub

用于将已确认的SAST漏洞转化为完整利用代码。针对原生代码和PHP应用提供分级利用指南(从DoS到RCE),指导助手按步骤提升利用等级并验证效果,需先搜索相关技术。

providers/openclaw/.agents/skills/agent-sast-exploit-builder/SKILL.md H-mmer/pentest-agents

Trigger Scenarios

用户输入/sast命令 请求构建已知漏洞的PoC或Exploit 需要评估漏洞利用深度

Install

npx skills add H-mmer/pentest-agents --skill sast-exploit-builder -g -y
More Options

Non-standard path

npx skills add https://github.com/H-mmer/pentest-agents/tree/main/providers/openclaw/.agents/skills/agent-sast-exploit-builder -g -y

Use without installing

npx skills use H-mmer/pentest-agents@sast-exploit-builder

指定 Agent (Claude Code)

npx skills add H-mmer/pentest-agents --skill sast-exploit-builder -a claude-code -g -y

安装 repo 全部 skill

npx skills add H-mmer/pentest-agents --all -g -y

预览 repo 内 skill

npx skills add H-mmer/pentest-agents --list

SKILL.md

Frontmatter
{
    "name": "sast-exploit-builder",
    "description": "Builds working exploits from confirmed SAST findings. Takes a confirmed crash, develops it into a full exploit. Tier 1 (DoS) → Tier 5 (code execution). Use via \/sast command after PoC confirmation."
}

CONTEXT: Authorized security research. Developing exploits for confirmed vulnerabilities in isolated environment.

Research First

Call search_techniques and search_writeups for the exploitation technique before starting.

Exploitation Ladder (native code: C/C++/Rust/Go)

Work up. Stop and report at highest level achieved.

Tier 1 — Controlled crash (DoS). You already have this from the hunter. Tier 2 — Controlled write primitive. Attacker-chosen bytes to attacker-chosen location. Tier 3 — Info leak / ASLR bypass. Read memory contents, defeat randomization. Tier 4 — Control flow hijack. Overwrite return address, function pointer, vtable, GOT entry. Tier 5 — Code execution. ROP chain, shellcode, JIT spray. Demonstrate with shell/file write.

Exploitation Ladder (PHP / web app)

For PHP findings, work up this ladder instead. Stop and report the highest tier confirmed.

Tier 1 — Information disclosure. Stack trace, phpinfo() page, .env read via LFI, source disclosure via php://filter/convert.base64-encode/resource=, debug endpoint leaking creds/keys. Concrete evidence: grep the response for secrets.

Tier 2 — Arbitrary read / authenticated data exfiltration. LFI reading any file under open_basedir; blind/error/time/UNION SQLi dumping information_schema, user tables, password hashes; IDOR reading other users' resources via predictable IDs. Demonstrate by pulling at least one sensitive record (hashed password, PII, API key).

Tier 3 — Arbitrary write / mass data modification. SQLi with UPDATE/INSERT ability, file write via upload bypass, file_put_contents with traversal, Eloquent mass-assignment escalating a regular user to admin. Demonstrate by modifying a state you shouldn't be able to.

Tier 4 — Remote Code Execution. At least ONE of:

  • eval/assert/create_function/preg_replace /e with user input
  • include/require on user path → combine with log/session/phar poisoning to land PHP
  • unserialize with a working gadget chain (hand-crafted or via phpggc)
  • Command injection through system/exec/passthru/shell_exec with insufficient escaping
  • SSTI in Twig/Smarty/Blade raw
  • File upload bypass landing a .php (or .phar, .phtml, .pht depending on server config) in a served directory

Evidence: execute id, get output. Save response showing uid=....

Tier 5 — Persistent webshell + lateral movement. Upload webshell, confirm it survives (path is accessible), demonstrate DB read and filesystem read from within the shell. Document what's reachable: other vhosts, cloud metadata (169.254.169.254), internal services, persisted credentials in .env/config files.

Approach Per Primitive (native)

Stack overflow: Find offset to return address. Check canary. Check ASLR/PIE. Build ROP chain. Heap overflow/UAF: Understand allocator. Map heap layout. Heap feng shui for predictable placement. Integer overflow: What does overflowed value control? Craft input for useful result. Format string: Leak stack → arbitrary read → arbitrary write via %n → GOT overwrite.

Approach Per Primitive (PHP)

SQLi: Identify DB (MySQL/Postgres/SQLite/MSSQL from error messages or fingerprint). Work in order: error-based → UNION → boolean blind → time blind. For dumping: sqlmap against the confirmed injection point as verifier — but the PoC should be a standalone request. Extract at least one row from an internal/admin table to prove severity.

Unrestricted upload → RCE: Bypass approaches by server:

  • Apache + mod_php: .php, .php3, .php4, .php5, .php7, .phtml, .pht, .phar
  • nginx + PHP-FPM with poorly-configured location regex: shell.jpg.php, shell.php%00.jpg, shell.php/
  • Content-Type spoofing (Content-Type: image/jpeg with PHP content)
  • Magic-byte polyglots (GIF89a header + <?php ... ?>)
  • Phar upload + trigger via phar://uploads/x.jpg in any file op elsewhere
  • .htaccess upload if directory allows to add PHP handler

LFI → RCE (from Tier 2 → Tier 4):

  • /proc/self/environ with User-Agent: <?=system($_GET['c']);?> (old PHP)
  • Apache access log + malicious UA (path: /var/log/apache2/access.log)
  • PHP session file (path: /var/lib/php/sessions/sess_<PHPSESSID>) — write PHP via a reflecting endpoint, include session
  • php://filter/convert.base64-decode/resource=data://text/plain,<base64> — direct exec
  • expect:// wrapper if expect ext loaded (rare)
  • phar:// on an attacker-uploaded polyglot

Unserialize → RCE: Inventory classes via composer.json and vendor/. Try phpggc with the detected framework (Laravel, Symfony, Drupal, Magento, WordPress, Guzzle, Monolog). If no off-the-shelf gadget, grep project for __wakeup/__destruct/__toString and hand-craft. Gadget should land in a write/exec primitive (file_put_contents, system, exec, eval).

SSTI (Twig): {{ 7*7 }}{{ _self.env.registerUndefinedFilterCallback("exec") }}{{ _self.env.getFilter("id") }}. SSTI (Smarty): {php} system('id'); {/php} (v2) or {system('id')} (v3 unsafe mode).

Type juggling auth bypass: craft input so == compares two values that both parse to 0e... or NULL or equivalent. Test with short examples first: hash('md5', 'QNKCDZO') == hash('md5', '240610708') both 0e... truthy.

Mass-assignment privesc: identify Eloquent model, send extra field like role=admin/is_admin=1/plan_id=<enterprise> in the update request.

Mitigation Checklist (PHP)

Mitigation Check command Bypass
disable_functions php -i | grep disable_functions LD_PRELOAD (if exec possible elsewhere), PHP 7 mail() bypass, FFI, imap_open on old php
open_basedir php -i | grep open_basedir symlink tricks, glob:// bypass, chdir + ini_set (old)
display_errors=Off php -i | grep display_errors log-based exfil via error_log reachability
allow_url_include php -i | grep allow_url_include forces LFI-only; chain with log/phar/data poisoning
expose_php php -i | grep expose_php doesn't affect exploit, only fingerprinting
PHP version php -v many CVEs fixed — verify version for each finding
Framework CSRF check middleware token leak via XSS, missing on JSON endpoints
Framework auth check middleware missing on admin-ajax.php/api/* routes, signed-URL tricks

Mitigation Checklist (native)

Mitigation Check command Bypass
Stack canary objdump -d <bin> | grep stack_chk Info leak, fork brute force
ASLR cat /proc/sys/kernel/randomize_va_space Info leak, partial overwrite
PIE readelf -h <bin> | grep DYN Info leak for code base
NX readelf -l <bin> | grep GNU_STACK ROP, ret2libc
RELRO readelf -l <bin> | grep RELRO Partial: GOT. Full: target elsewhere

Output

Write to poc/sast/exploits/. Include exploit_<name>.py and README.md.

{
  "finding_ref": "<candidate_id>",
  "exploit_tier": 5,
  "exploit_file": "poc/sast/exploits/exploit_<name>.py",
  "mitigations_bypassed": ["ASLR (leaked via info disclosure)", "NX (ROP chain)"],
  "mitigations_not_bypassed": [],
  "impact": "Unauthenticated remote attacker achieves root shell",
  "reliability": "100% on target version",
  "constraints": ["Requires NFS service running"]
}

Rules

  • Persist everything to disk. Time box 30 min per tier. Report honestly — don't claim tiers you haven't proven.

Brain Integration

Record tier achieved and techniques that worked/failed.

Top-Tier Operator Standard

Exploit development climbs only on proven ground.

  • Start from the confirmed PoC and preserve a minimal regression case before adding complexity.
  • Advance tiers one capability at a time: crash, controlled read/write, control-flow influence, sandbox escape, code execution.
  • Record mitigations honestly: ASLR, DEP/NX, canaries, CFI, sandboxing, auth, config, and version constraints.
  • Prefer deterministic local proof over speculative remote exploit claims.
  • Stop at the highest tier you can demonstrate safely within budget and document the next blocked primitive.

Version History

  • 41d49b6 Current 2026-07-24 12:04

Same Skill Collection

.claude/skills/analyze/SKILL.md
.claude/skills/autopilot/SKILL.md
.claude/skills/brain/SKILL.md
.claude/skills/chain/SKILL.md
.claude/skills/correlate/SKILL.md
.claude/skills/dupcheck/SKILL.md
.claude/skills/fullscan/SKILL.md
.claude/skills/hunt/SKILL.md
.claude/skills/learn/SKILL.md
.claude/skills/mindmap/SKILL.md
.claude/skills/monitor/SKILL.md
.claude/skills/new/SKILL.md
.claude/skills/pipeline/SKILL.md
.claude/skills/quality/SKILL.md
.claude/skills/quickscan/SKILL.md
.claude/skills/remember/SKILL.md
.claude/skills/report/SKILL.md
.claude/skills/resume/SKILL.md
.claude/skills/sast/SKILL.md
.claude/skills/status/SKILL.md
.claude/skills/submit/SKILL.md
.claude/skills/surface/SKILL.md
.claude/skills/sync/SKILL.md
.claude/skills/triage/SKILL.md
.claude/skills/validate/SKILL.md
providers/codex/.agents/skills/analyze/SKILL.md
providers/codex/.agents/skills/autopilot/SKILL.md
providers/codex/.agents/skills/brain/SKILL.md
providers/codex/.agents/skills/chain/SKILL.md
providers/codex/.agents/skills/correlate/SKILL.md
providers/codex/.agents/skills/dupcheck/SKILL.md
providers/codex/.agents/skills/fullscan/SKILL.md
providers/codex/.agents/skills/hunt/SKILL.md
providers/codex/.agents/skills/learn/SKILL.md
providers/codex/.agents/skills/mindmap/SKILL.md
providers/codex/.agents/skills/monitor/SKILL.md
providers/codex/.agents/skills/new/SKILL.md
providers/codex/.agents/skills/pipeline/SKILL.md
providers/codex/.agents/skills/quality/SKILL.md
providers/codex/.agents/skills/quickscan/SKILL.md
providers/codex/.agents/skills/remember/SKILL.md
providers/codex/.agents/skills/report/SKILL.md
providers/codex/.agents/skills/resume/SKILL.md
providers/codex/.agents/skills/sast/SKILL.md
providers/codex/.agents/skills/status/SKILL.md
providers/codex/.agents/skills/submit/SKILL.md
providers/codex/.agents/skills/surface/SKILL.md
providers/codex/.agents/skills/sync/SKILL.md
providers/codex/.agents/skills/triage/SKILL.md
providers/codex/.agents/skills/validate/SKILL.md

Metadata

Files
0
Version
41d49b6
Hash
0a4b5667
Indexed
2026-07-24 12:04

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-09 08:44
浙ICP备14020137号-1 $Carte des visiteurs$