CrackMapExec MCP服务器
一种模型上下文协议(MCP)服务器,为AI助手提供通过SSH访问Kali Linux主机的CrackMapExec/NetExec网络渗透测试功能的权限。
概述
此MCP服务器通过标准化的MCP接口公开CrackMapExec(CME)/NetExec(NXC)功能,实现了基于AI的网络安全评估。它支持多种协议和全面的枚举、凭据转储和命令执行功能。
特性
支持的协议
| 协议 | 描述 |
|---|---|
| 中小企业 | Windows文件共享-共享、用户、组、SAM/LSA/NTDS转储 |
| 远程管理 | Windows远程管理-远程命令执行 |
| 安全外壳协议 | 安全Shell-Linux/Unix命令执行 |
| MSSQL | Microsoft SQL Server-查询执行,xp_cmdshell |
| 轻量级目录访问协议 | Active Directory枚举-用户、计算机、委派 |
| 远程桌面协议 | 远程桌面协议-访问验证 |
| Windows 管理规范 | Windows管理规范-远程执行 |
能力
- 枚举:共享、用户、组、会话、计算机、域控制器
- 凭证转储:SAM、LSA机密、NTDS.dit、gMSA密码
- 命令执行:cmd、PowerShell,通过多种方法(wmiexec、smbexec、atexec)
- 密码喷涂:支持抖动的多线程证书测试
- 模块系统:可通过NetExec模块进行扩展
- 凭证数据库:存储和搜索发现的凭据
安装
先决条件
- Node.js 18+
- SSH访问安装了NetExec/CrackMapExec的Kali Linux主机
- 配置了基于SSH密钥的身份验证(推荐)
设置
# Clone the repository
git clone https://github.com/schwarztim/sec-crackmapexec-mcp.git
cd sec-crackmapexec-mcp
# Install dependencies
npm install
# Build
npm run build配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
KALI_HOST | Kali Linux主机的主机名或IP | kali |
SSH_USER | SSH用户名 | (无) |
SSH_KEY | SSH私钥路径 | (无) |
NXC_BINARY | 二进制名称(nxc 或 crackmapexec) | nxc |
Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"crackmapexec": {
"command": "node",
"args": ["/path/to/sec-crackmapexec-mcp/dist/index.js"],
"env": {
"KALI_HOST": "your-kali-host",
"SSH_USER": "kali",
"SSH_KEY": "/path/to/ssh/key"
}
}
}
}可用工具
cme_smb
执行SMB协议操作,包括共享枚举、用户枚举、凭据转储和命令执行。
// Example: Enumerate shares
{ targets: "192.168.1.0/24", username: "admin", password: "pass123", shares: true }
// Example: Dump SAM hashes
{ targets: "192.168.1.100", username: "admin", password: "pass123", sam: true }cme_winrm
通过Windows远程管理(端口5985/5986)执行命令。
{ targets: "192.168.1.100", username: "admin", password: "pass123", execPowershell: "Get-Process" }cme_ssh
在Linux/Unix主机上测试SSH凭据并执行命令。
{ targets: "192.168.1.0/24", username: "root", password: "toor", execCmd: "id" }cme_mssql
通过xp_cmdshell查询MSSQL数据库并执行操作系统命令。
{ targets: "192.168.1.50", username: "sa", password: "password", query: "SELECT @@version" }cme_ldap
通过LDAP查询枚举Active Directory。
{ targets: "dc01.domain.local", username: "user", password: "pass", domain: "domain.local", usersEnabled: true }cme_rdp
验证RDP对目标的访问权限。
{ targets: "192.168.1.0/24", username: "admin", password: "pass123" }cme_wmi
通过WMI执行命令。
{ targets: "192.168.1.100", username: "admin", password: "pass123", execCmd: "whoami" }cme_modules
列出协议的可用模块或获取模块选项。
// List SMB modules
{ protocol: "smb" }
// Get options for specific module
{ protocol: "smb", moduleName: "mimikatz" }cme_spray
使用抖动支持执行密码喷洒攻击。
{
protocol: "smb",
targets: "192.168.1.0/24",
usernames: "users.txt",
passwords: "Summer2024!",
domain: "corp.local",
jitter: "1-3"
}cme_creds
管理NetExec凭据数据库。
// List all credentials
{ action: "list" }
// Search credentials
{ action: "search", searchTerm: "admin" }
// Export credentials
{ action: "export", exportPath: "creds.csv" }cme_raw
执行原始NetExec命令以进行高级操作。
{ command: "smb 192.168.1.100 -u admin -p pass123 --shares" }安全考虑
此工具用于 仅限授权安全测试。确保您拥有:
- 测试目标系统的书面授权
- 为业务提供适当的范围定义
- 了解适用的法律法规
未经明确许可,切勿对系统使用此工具。
建筑
┌─────────────────┐ SSH ┌─────────────────┐
│ Claude/AI │ ────────────► │ Kali Linux │
│ Assistant │ │ + NetExec │
├─────────────────┤ └─────────────────┘
│ MCP Server │ │
│ (Node.js) │ ▼
└─────────────────┘ ┌─────────────────┐
│ Target Network │
└─────────────────┘发展
# Run in development mode
npm run dev
# Build for production
npm run build
# Start production server
npm start许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
相关项目
贡献
欢迎投稿!请随时提交拉取请求。
免责声明
此软件仅用于教育和授权的安全测试目的。作者不对该工具造成的任何误用或损坏负责。在进行安全评估之前,始终获得适当的授权。
