gef-mcp-for-ctf
GDB Enhanced Features MCP server for remote debugging and CTF exploitation with 41 specialized tools including ROP search, format-string detection, and memory patching.
README
GEF MCP Server v2.0
玄幕安全团队 - guaidao2 开发 🛡️
GDB Enhanced Features 的 Model Context Protocol (MCP) 服务器实现,支持通过 SSE 或 stdio 进行远程调试。专为安全测试和 CTF 竞赛优化。
特性
- GEF/GDB 集成: 自动加载 GEF 插件,提供增强调试能力
- 多会话: 最多 4 个并发调试会话
- SSE + stdio 双模式: 远程 HTTP SSE 或本地 Claude Desktop stdio
- PTY 终端: 真实终端模拟,支持交互式调试
- 41 个专用工具: 覆盖调试、内存操作、二进制分析、CTF exploit 开发全流程
- CTF 定向增强: checksec、ROP 搜索、format-string 检测、patch、assemble 等
- 安全防护: 路径注入消杀、换行防护、输出大小限制
- 后台僵尸回收: 自动清理崩溃的会话
安装
cd /root/Desktop/gef-mcp
pip install -r requirements.txt
安装 GEF(如未安装)
bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
使用
# SSE 模式 (默认 :8000)
python server.py
# 指定地址和端口
python server.py --host 127.0.0.1 --port 8080
# stdio 模式 (Claude Desktop)
python server.py --transport stdio
MCP 端点
- SSE 端点:
http://localhost:8000/sse - 消息端点:
http://localhost:8000/messages/
工具列表
会话管理
| 工具 | 描述 |
|---|---|
create_session |
创建新调试会话 |
list_sessions |
列出所有活跃会话 |
close_session |
关闭会话 |
文件与启动
| 工具 | 描述 |
|---|---|
load_file |
加载目标二进制 |
start_debugging |
加载文件 + 显示 GEF 上下文 |
断点
| 工具 | 描述 |
|---|---|
set_breakpoint |
设置断点 (函数/地址/文件:行) |
delete_breakpoint |
按编号删除断点 |
list_breakpoints |
列出所有断点/监视点 |
watchpoint |
设置数据断点 (读/写/访问) |
执行控制
| 工具 | 描述 |
|---|---|
run |
运行程序 (带参数) |
continue |
继续执行 |
step |
单步进入 |
next |
单步跳过 |
寄存器 / 栈
| 工具 | 描述 |
|---|---|
get_registers |
获取 CPU 寄存器 |
get_backtrace |
函数调用回溯 |
info_frame |
当前栈帧详细信息 |
反汇编
| 工具 | 描述 |
|---|---|
disassemble |
反汇编代码 |
内存操作
| 工具 | 描述 |
|---|---|
examine_memory |
检查内存 (x/16xg) |
write_memory |
向内存写入值 |
patch_byte |
GEF patch 修改字节 |
hexdump |
十六进制 + ASCII 视图 |
telescope |
递归解引用 (望远镜) |
search_pattern |
搜索内存模式 |
search_strings |
搜索可打印字符串 |
GEF 增强
| 工具 | 描述 |
|---|---|
vmmap |
虚拟内存映射 |
heap |
堆信息 |
checksec |
🔐 安全缓解措施检查 |
got_plt |
GOT/PLT 信息 |
get_context |
完整调试上下文 |
get_sections |
节区信息 |
get_entry_point |
入口点地址 |
elf_info |
ELF 文件头信息 |
reset_cache |
重置 GEF 缓存 |
CTF 专用 🔥
| 工具 | 描述 |
|---|---|
rop_search |
搜索 ROP gadgets |
rop_search_all |
列出所有 gadgets |
attach_process |
附加到进程 |
detach_process |
从进程分离 |
format_string_helper |
检测格式化字符串漏洞 |
assemble |
写入汇编指令 |
nop_sled |
写入 NOP chain |
execute_command |
任意 GEF/GDB 命令 |
与 Claude Desktop 集成
{
"mcpServers": {
"gef": {
"command": "python",
"args": ["/root/Desktop/gef-mcp/server.py", "--transport", "stdio"]
}
}
}
安全说明
filepath参数经过注入消杀,拒绝含有!;|等 shell 元字符的路径pattern参数拒绝换行符,防止命令注入execute_command按设计执行任意命令——请确保调用来源可信- 所有会话输出有 50KB 大小限制,防止内存膨胀
调试流程示例 (CTF)
# 1. 创建会话
session = await call_tool("create_session", {})
sid = session["session_id"]
# 2. 加载目标
await call_tool("load_file", {"session_id": sid, "filepath": "./vuln"})
# 3. 安全检查
sec = await call_tool("checksec", {"session_id": sid})
# → NX: enabled | PIE: disabled | Canary: enabled ...
# 4. 查看内存布局
map = await call_tool("vmmap", {"session_id": sid})
# 5. 断点 + 运行
await call_tool("set_breakpoint", {"session_id": sid, "location": "main"})
await call_tool("run", {"session_id": sid})
# 6. 搜索 ROP gadgets
gadgets = await call_tool("rop_search", {"session_id": sid, "gadget": "pop rdi"})
# 7. 检查 GOT
got = await call_tool("got_plt", {"session_id": sid})
# 8. 修改内存
await call_tool("write_memory", {
"session_id": sid,
"address": "0x601040",
"value": "0xdeadbeef"
})
许可证
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。