enum4linux MCP服务器
   
一个模型上下文协议(MCP)服务器,它封装 enum4linux,一个强大的Windows/Samba枚举实用程序。服务器通过SSH在Kali Linux主机上执行枚举命令,并返回结构化的JSON结果。
特性
- 12种专门的计数工具 涵盖所有enum4linux功能
- 结构化JSON输出 使用解析的用户、组、共享和策略
- 基于SSH的执行 在远程Kali Linux上进行隔离安全测试
- 可配置超时 以及用于大型枚举的缓冲区大小
- 支持身份验证和匿名枚举
可用工具
| 工具 | 描述 | enum4linux标志 |
|---|---|---|
enum4linux_all | 全面枚举(用户、组、共享、策略、操作系统、NetBIOS、RID循环、打印机) | -a |
enum4linux_users | 通过RPC枚举用户 | -U |
enum4linux_groups | 通过RPC枚举组和成员 | -G |
enum4linux_shares | 枚举SMB共享 | -S |
enum4linux_policies | 获取密码策略和锁定设置 | -P |
enum4linux_os | 获取操作系统信息 | -o |
enum4linux_rid | 通过RID循环枚举用户 | -r / -R |
enum4linux_printers | 枚举打印机 | -i |
enum4linux_netbios | NetBIOS名称查找(相当于nbtstat) | -n |
enum4linux_ldap | 通过LDAP获取域信息(仅限DC) | -l |
enum4linux_machines | 枚举域中的计算机 | -M |
enum4linux_aggressive | 带有写检查的主动模式 | -A |
enum4linux_raw | 使用自定义标志执行 | 自定义 |
先决条件
- Kali Linux主机 已配置SSH访问
- enum4linux Kali上安装的:
apt install enum4linux - Samba工具 已安装(rpcclient、smbclient、nmblookup、net)
- Node.js 运行MCP服务器的主机上的18+
安装
git clone https://github.com/schwarztim/sec-enum4linux-mcp.git
cd sec-enum4linux-mcp
npm install
npm run build配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
KALI_HOST | kali | Kali Linux的SSH主机名 |
SSH设置
确保对Kali主机的无密码SSH访问:
# Generate SSH key if needed
ssh-keygen -t ed25519
# Copy to Kali host
ssh-copy-id kali
# Test connection
ssh kali "enum4linux -h"Claude桌面配置
添加到 ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"enum4linux": {
"command": "node",
"args": ["/path/to/sec-enum4linux-mcp/dist/index.js"],
"env": {
"KALI_HOST": "kali"
}
}
}
}使用示例
完整枚举
对目标执行全面的SMB枚举:
{
"tool": "enum4linux_all",
"arguments": {
"target": "192.168.1.100"
}
}经过身份验证的用户枚举
枚举具有凭据的用户:
{
"tool": "enum4linux_users",
"arguments": {
"target": "192.168.1.100",
"username": "administrator",
"password": "Password123",
"detailed": true
}
}使用暴力共享枚举
使用单词表枚举共享:
{
"tool": "enum4linux_shares",
"arguments": {
"target": "192.168.1.100",
"bruteforce": "/usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt"
}
}RID自行车用户发现
通过RID循环发现用户(在正常枚举失败时很有用):
{
"tool": "enum4linux_rid",
"arguments": {
"target": "192.168.1.100",
"ridRanges": "500-550,1000-2000,3000-3050",
"keepSearching": 20
}
}自定义标志
使用特定标志执行:
{
"tool": "enum4linux_raw",
"arguments": {
"target": "192.168.1.100",
"flags": "-U -G -S -P -o -n -i"
}
}输出格式
结果以结构化JSON格式返回:
{
"tool": "enum4linux_users",
"target": "192.168.1.100",
"success": true,
"command_executed": "enum4linux -U 192.168.1.100",
"users": ["Administrator", "Guest", "krbtgt", "user1"],
"groups": ["Domain Admins", "Domain Users"],
"shares": ["ADMIN$", "C$", "IPC$", "NETLOGON", "SYSVOL"],
"domain": "CONTOSO",
"os": "Windows Server 2019",
"password_policy": {
"min_length": 8,
"max_age": "42 days",
"lockout_threshold": 5
},
"sections": {
"users": "...",
"share_enumeration": "..."
},
"raw_output": "..."
}安全考虑
- 仅限授权测试:仅用于您有权测试的系统
- 网络隔离:从专用安全测试网络运行
- 凭证处理:避免硬编码凭证;使用环境变量
- 日志记录:请注意,目标系统上可能会记录enum4linux活动
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Run the server
npm start参考文献
许可证
MIT许可证-请参阅 许可证 了解详情。
免责声明
此工具仅用于授权的安全测试和教育目的。未经授权访问计算机系统是非法的。在测试之前,始终获得适当的授权。
