SMBMap MCP服务器
  ](https://nodejs.org/) 
概述
此MCP服务器使Claude等AI助手能够执行基于SMB的安全评估和渗透测试任务。它通过SSH在远程Kali Linux机器上执行命令,提供安全和隔离的执行环境。
[AI Assistant] [MCP Server] [SSH] [Kali Linux] [SMBMap] [Target]特性
| 工具 | 说明 |
|---|---|
smbmap_enum | 枚举目标主机上的SMB共享 |
smbmap_permissions | 检查共享权限(读取、写入、禁止访问) |
smbmap_list | 列出共享中的文件和目录(支持递归) |
smbmap_download | 从SMB共享下载文件 |
smbmap_upload | 将文件上传到SMB共享 |
smbmap_exec | 通过SMB执行命令(需要管理员) |
smbmap_search | 按名称模式搜索文件(支持正则表达式) |
smbmap_content_search | 搜索文件内容(需要管理员+PowerShell) |
smbmap_drives | 列出目标系统上的所有驱动器 |
smbmap_delete | 从SMB共享中删除文件 |
smbmap_host_file | 从文件中扫描多个主机 |
先决条件
- Node.js 18+
- SSH访问 到Kali Linux机器(建议使用无密码SSH)
- SMBMap 安装在Kali上(
apt install smbmap)
安装
# Clone the repository
git clone https://github.com/schwarztim/sec-smbmap-mcp.git
cd sec-smbmap-mcp
# Install dependencies
npm install
# Build the project
npm run build配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
KALI_HOST | kali | Kali Linux机器的SSH主机名或IP |
SSH_OPTIONS | -o StrictHostKeyChecking=no -o ConnectTimeout=10 | SSH连接选项 |
Claude桌面配置
添加到您的Claude Desktop配置文件(~/.config/claude/claude_desktop_config.json 在Linux或 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"smbmap": {
"command": "node",
"args": ["/path/to/sec-smbmap-mcp/dist/index.js"],
"env": {
"KALI_HOST": "your-kali-host"
}
}
}
}SSH设置
确保对Kali计算机的无密码SSH访问:
# Generate SSH key if needed
ssh-keygen -t ed25519
# Copy key to Kali machine
ssh-copy-id kali
# Test connection
ssh kali "smbmap --help"使用示例
基本共享枚举(空会话)
{
"tool": "smbmap_enum",
"arguments": {
"host": "192.168.1.100"
}
}经过身份验证的枚举
{
"tool": "smbmap_enum",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "password123",
"domain": "CORP"
}
}通过哈希身份验证
{
"tool": "smbmap_enum",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "aad3b435b51404eeaad3b435b51404ee:da76f2c4c96028b7a6111aef4a50a94d"
}
}递归目录列表
{
"tool": "smbmap_list",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "password123",
"path": "C$\\Users",
"recursive": true,
"depth": 2
}
}搜索敏感文件
{
"tool": "smbmap_search",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "password123",
"pattern": ".*password.*",
"search_path": "C$\\Users"
}
}执行远程命令
{
"tool": "smbmap_exec",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "password123",
"command": "ipconfig /all"
}
}下载文件
{
"tool": "smbmap_download",
"arguments": {
"host": "192.168.1.100",
"username": "admin",
"password": "password123",
"remote_path": "C$\\Users\\admin\\Desktop\\passwords.txt"
}
}多主机扫描
{
"tool": "smbmap_host_file",
"arguments": {
"host_file": "/tmp/targets.txt",
"username": "admin",
"password": "password123",
"domain": "CORP"
}
}安全通知
此工具仅用于授权的渗透测试和安全评估。
- 在扫描任何系统之前,始终获得适当的书面授权
- 遵循负责任的披露做法
- 遵守所有适用的法律法规
- 切勿对您不拥有或没有明确测试权限的系统使用此工具
未经授权访问计算机系统是非法和不道德的。
发展
# Watch mode for development
npm run dev
# Build for production
npm run build
# Start the server
npm start参考文献
- SMBMap -底层枚举工具
- 模型上下文协议 -MCP规范
- Kali Linux工具-smbmap -Kali文件
- MCP TypeScript SDK -此服务器使用的SDK
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
- 克隆该仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
