colinthebomb1/AutoPwn

GitHub: colinthebomb1/AutoPwn

基于LLM智能体和MCP工具服务器的自动化二进制漏洞利用框架,能够自主分析ELF二进制并迭代生成可用的exploit脚本。

Stars: 0 | Forks: 0

# AutoPwn 围绕 LLM 驱动的 ReAct 循环、MCP 工具服务器和 pwntools 执行构建的智能体二进制漏洞利用框架。 `AutoPwn` 分析 ELF 二进制文件,根据保护机制选择漏洞利用策略,并通过内置的动态分析和漏洞利用生成工具迭代生成可用的漏洞利用程序。 ## 功能特性 - ReAct 风格的漏洞利用循环与工具使用(`checksec`、符号、gadgets、GDB、漏洞利用执行) - MCP 支持的工具服务器用于: - 静态/侦察辅助(ELF 符号、字符串、libc 偏移量、payload 构建器) - 动态调试辅助(GDB 断点/运行/堆栈/vmmap) - 带有机器可读成功信号(`shell_detected`、`flag_detected`)的漏洞利用运行器 - 提示词 + 知识库驱动的策略指导 - 包含针对 ret2win/ret2libc/format/shellcode 工作流的挑战赛题测试套件 ## 项目结构 - `agent/` - ReAct 循环、提示词、规划器、CLI 入口 - `agent/mcp_servers/` - 打包的 MCP 工具服务器实现 - `tests/` - 单元/集成测试 + 挑战赛题二进制文件/源码 - `exploits/` - 生成的解题脚本和最新尝试的镜像 ## 环境要求 - Python 3.11+ - 可用的 `gdb`,用于动态分析工具 - 可选:`pwntools` 扩展,用于漏洞利用工作流 - 可选:[Ghidra](https://ghidra-sre.org/) + JDK,用于 `ghidra_decompile` 工具(设置 `GHIDRA_HOME` / `PWN_GHIDRA_HOME`;将 `java` 添加到 `PATH` 或设置 `JAVA_HOME` / `PWN_JAVA_HOME`) ## 安装说明 ``` git clone https://github.com/colinthebomb1/AutoPwn.git cd AutoPwn python -m venv .venv source .venv/bin/activate pip install . ``` ## 配置说明 将 `.env.example` 复制为 `.env` 并至少设置: - `ANTHROPIC_API_KEY`(必填) 可选配置项: - `PWN_AGENT_MAX_ITERATIONS`(默认值:`30`) - `PWN_AGENT_CONTEXT_TURNS` - `PWN_AGENT_TOOL_RESULT_MAX` - `PWN_AGENT_RUN_EXPLOIT_SCRIPT_SNIP` - `PWN_AGENT_MAX_OUTPUT_TOKENS` - `PWN_AGENT_BOOTSTRAP_GHIDRA`(默认值:`1`)— 启动时运行一次无头 Ghidra;设为 `0` 跳过 - `PWN_AGENT_BOOTSTRAP_MAX_CHARS_WITH_GHIDRA` — 反编译成功时更大的引导 JSON 上限(默认值 `12000`) - `JAVA_HOME` 或 `PWN_JAVA_HOME` — 如果 `java` 不在您的 `PATH` 中(在某些 venv/IDE 启动中很常见),请指向一个 JDK 以便 Ghidra 可以启动 - `PWN_AGENT_USER_CONTEXT_MAX` — 发送到模型的 `--notes` / `--notes-file` 文本的最大长度(默认值 `12000`) ## 快速入门 针对本地挑战赛题二进制文件运行: ``` autopwn tests/challenges/ret2win_x64 ``` 覆盖模型/迭代预算: ``` autopwn tests/challenges/ret2libc_real_x64 -m claude-sonnet-4-20250514 -n 20 ``` 使用远程目标: ``` autopwn ./chall -r host:port ``` 添加 **CTF 或出题人上下文**(描述、约束、疑似漏洞类别、解题思路): ``` autopwn ./chall --notes "Heap UAF + FSOP; libc 2.39, Full RELRO" ``` 长文题解: ``` autopwn ./chall --notes-file ./challenge.txt ``` (如果同时传递了 `--notes-file` 和 `--notes`,前者将覆盖后者。) ## 测试说明 运行所有测试: ``` pytest -q ``` 在 PTY 受限的环境中,跳过动态 GDB 测试: ``` pytest -q --ignore=tests/test_mcp_dynamic.py ``` ## 备注 - 最新尝试的漏洞利用会镜像保存到 `exploits/last_attempt_.py`。 - 成功的解题会保存到 `exploits/solve_.py`。 - 本框架旨在用于 CTF/研究以及经您授权测试的受控目标。 ## 许可证 MIT
标签:Agent, Anthropic Claude, CISA项目, CTF工具, CTF自动出题/解题, DLL 劫持, DNS 反向解析, DNS 解析, ELF分析, GDB, Ghidra, Go语言工具, MCP工具服务器, Pwn, pwntools, Python, ReAct循环, ROP链, Shellcode, Web报告查看器, 二进制漏洞利用, 云安全监控, 云资产清单, 人工智能, 大语言模型, 安全工具开发, 技术调研, 无后门, 格式化字符串漏洞, 模型上下文协议, 漏洞分析, 漏洞利用生成, 漏洞搜索, 用户模式Hook绕过, 缓冲区溢出, 网络安全, 网络安全攻防, 自动化渗透测试, 自定义密码套件, 路径探测, 逆向工具, 逆向工程, 隐私保护, 静态分析