GTFOBins MCP服务器
一种模型上下文协议(MCP)服务器,通过Claude Desktop提供对GTFOBins数据库的无缝访问。查询利用技术,搜索特定的二进制文件,并直接从您的Claude对话中探索特权升级方法。
什么是GTFOBins? GTFOBins是一个精心策划的Unix二进制文件列表,可用于绕过配置错误的系统中的本地安全限制。这个MCP服务器将这些知识直接带入Claude Desktop。
✨ 特性
- 🔍 智能搜索:按名称、函数类型或技术查找二进制文件
- 📋 功能过滤:按特定功能(shell、文件上传、SUID等)列出二进制文件
- 📖 详细信息:通过代码示例获取完整的利用技术
- 🐳 Docker化:干净、隔离的部署,依赖性最小
- 🍎 苹果硅优化:M1/M2/M3 Mac的原生ARM64支持
- 🚀 按需:没有持久容器-每次会话都会新运行
🎯 用例
- 安全性研究:在评估过程中快速查找利用技术
- 红队行动:找到滥用合法系统实用程序的创造性方法
- 蓝队防守:了解攻击者可以对常见二进制文件做什么
- 教育的:了解Unix安全和特权升级向量
- CTF竞赛:解决挑战的快速参考
🚀 快速开始
先决条件
- Docker已安装并正在运行
- Claude桌面应用程序
- 苹果Silicon Mac(M1/M2/M3)或兼容系统
1.设置项目
# Create project directory
mkdir gtfobins-mcp-server
cd gtfobins-mcp-server
# Copy the following files to this directory:
# - Dockerfile
# - requirements.txt
# - server.py2.构建Docker镜像
# Build the image for Apple Silicon
docker build --platform linux/arm64 -t gtfobins-mcp-server .
# Test the build
docker run --rm --platform linux/arm64 gtfobins-mcp-server python -c "
import sys; sys.path.append('/app')
from server import GTFOBinsServer
server = GTFOBinsServer()
print(f'✅ Successfully loaded {len(server.binaries_data)} GTFOBins entries')
"3.配置克劳德桌面
编辑您的Claude Desktop配置文件:
位置: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"gtfobins": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--platform",
"linux/arm64",
"gtfobins-mcp-server",
"python",
"/app/server.py"
],
"env": {}
}
}
}4.重新启动克劳德桌面
完全退出并重新启动Claude Desktop以加载新的MCP服务器。
💬 使用示例
配置后,您可以直接通过Claude Desktop与GTFOBins交互:
搜索二进制文件
"What GTFOBins techniques are available for python?"
"Search for binaries that can create reverse shells"
"Show me wget exploitation methods"按功能类型筛选
"List all binaries that support file upload"
"What binaries can be used for SUID privilege escalation?"
"Show me all shell escape techniques"获取详细信息
"Get complete exploitation details for curl"
"Show me the sudo techniques for vim"
"What are all the capabilities-based attacks for systemctl?"🛠 可用工具
MCP服务器提供三个主要工具:
1. search_gtfobins
按二进制名称或技术关键字搜索数据库。
参数:
query(必填):搜索词function_type(可选):按功能类型筛选
示例:使用“shell”函数搜索“python”二进制文件
2. get_binary_details
获取特定二进制文件的完整利用信息。
参数:
binary(必填):二进制文件的名称
示例:获取“wget”的所有可用技术
3. list_binaries_by_function
列出支持特定函数类型的所有二进制文件。
参数:
function(必填):以下选项之一:shell、文件上传、文件下载、文件写入、文件读取、库加载、suid、sudo、功能
示例:列出所有采用SUID利用技术的二进制文件
📁 项目结构
gtfobins-mcp-server/
├── Dockerfile # Container definition with GTFOBins data
├── requirements.txt # Python dependencies (MCP SDK, PyYAML, etc.)
├── server.py # Main MCP server implementation
├── docker-compose.yml # Optional: Alternative deployment method
├── build.sh # Automated setup script
└── README.md # This documentation🔧 建筑
MCP服务器的工作原理如下:
- 数据加载:在Docker构建期间克隆GTFOBins存储库
- 解析:使用YAML frontmatter处理所有markdown文件
- 索引:在内存中创建可搜索的数据结构
- MCP接口:通过MCP工具公开搜索/查询功能
- 按需执行:为每个Claude Desktop会话运行新鲜容器
🐛 故障排除
常见问题
“没有这样的容器”错误:
- 新配置使用
docker run而不是docker exec - 不需要持久容器-每个会话都是全新运行的
“容器未运行”错误:
- 确保您使用的是更新的Claude Desktop配置
- 检查Docker是否正在运行:
docker ps
构建失败:
- 确保您使用Apple Silicon并使用
--platform linux/arm64旗帜 - 检查Docker是否有足够的磁盘空间用于镜像
MCP连接问题:
- 验证claude_desktop_config.json语法是否为有效的json
- 配置更改后完全重新启动Claude Desktop
- 检查Claude Desktop日志中的特定错误消息
调试命令
# Test Docker image
docker run --rm --platform linux/arm64 gtfobins-mcp-server python --version
# Test GTFOBins data loading
docker run --rm --platform linux/arm64 gtfobins-mcp-server python -c "
import sys; sys.path.append('/app')
from server import GTFOBinsServer
server = GTFOBinsServer()
print(f'Loaded: {len(server.binaries_data)} binaries')
print('Sample binaries:', list(server.binaries_data.keys())[:5])
"
# Check configuration file
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python -m json.tool获取帮助
如果您遇到问题:
- 检查Claude Desktop日志中的特定错误消息
- 验证所有文件是否正确放置在项目目录中
- 确保Docker正在运行并且有足够的资源
- 在连接到Claude之前独立测试Docker镜像
🔒 安全考虑
重要安全注意事项:
- 此服务器提供 只读访问 GTFOBins数据
- GTFOBins包含合法的系统管理技术 可能被误用
- 负责任地使用 并符合贵组织的安全策略
- 旨在 授权安全测试 和 仅用于教育目的
- Docker容器运行 最低特权 和 无网络访问 默认情况下
最佳实践:
- 仅在授权的测试环境中使用
- 部署前了解组织的安全策略
- 使用最新的GTFOBins数据更新Docker镜像
- 监控使用情况是否符合安全准则
📄 许可和归属
该项目用于教育和合法的安全研究目的。
- GTFOBins数据:受其自身许可条款的约束
- MCP服务器代码:教育用途-请尊重负责任的披露做法
- Docker配置:可免费用于合法的安全研究
🤝 贡献
欢迎改进!贡献领域:
- 附加搜索功能
- 更好的错误处理和日志记录
- 性能优化
- 扩展过滤选项
- 与其他安全工具集成
📚 了解更多
- GTFOBins:
- 模型上下文协议: https://modelcontextprotocol.io
- 克劳德桌面: https://claude.ai/desktop
- 码头工人:
______________________________________________________________________
⚡ 准备好探索了吗?问Claude:“你最喜欢的Unix实用程序有哪些GTFOBins技术?”
