枚举工具服务器

一个包装enum4linux的模型上下文协议(MCP)服务器,提供Windows/Samba枚举功能,通过SSH在Kali Linux主机上执行命令并返回结构化的JSON结果。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 schwarztim/sec-enum4linux-mcp

使用说明

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 使用自定义标志执行 自定义

先决条件

  1. Kali Linux主机 已配置SSH访问
  2. enum4linux Kali上安装的: apt install enum4linux
  3. Samba工具 已安装(rpcclient、smbclient、nmblookup、net)
  4. 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许可证-请参阅 许可证 了解详情。

免责声明

此工具仅用于授权的安全测试和教育目的。未经授权访问计算机系统是非法的。在测试之前,始终获得适当的授权。