ldapdomaindump MCP服务器
一种模型上下文协议(MCP)服务器,为AI助手提供访问 ldapdomaindump,一个功能强大的Active Directory LDAP枚举工具,通常用于渗透测试和安全评估。
概述
此MCP服务器使AI助手能够通过枚举执行Active Directory侦察:
- 域用户 -帐户名称、描述、上次登录时间、密码到期、帐户状态
- 域组 -组成员资格、描述、嵌套组
- 域计算机 -计算机帐户、操作系统、DNS主机名
- 域名信任 -信任关系、方向和类型
- 密码策略 -锁定阈值、密码要求、细粒度策略
建筑
服务器通过SSH在远程Kali Linux主机上执行命令,使其非常适合AI助手在与渗透测试环境不同的机器上运行的设置。
┌─────────────┐ SSH ┌─────────────┐ LDAP ┌─────────────┐
│ MCP Host │ ────────────> │ Kali │ ─────────────> │ Domain │
│ (Claude) │ │ Linux │ │ Controller │
└─────────────┘ └─────────────┘ └─────────────┘先决条件
- Kali Linux主机 已配置SSH访问
- ldapdomaindump Kali上安装的:
pip install ldapdomaindump- 基于SSH密钥的身份验证 到Kali主机
- Node.js 18+ 在MCP主机上
安装
git clone https://github.com/schwarztim/sec-ldapdomaindump-mcp.git
cd sec-ldapdomaindump-mcp
npm install
npm run build配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
KALI_HOST | Kali的SSH主机名或别名 | kali |
LDAP_OUTPUT_DIR | Kali上用于输出文件的目录 | /tmp/ldapdomaindump |
SSH设置
确保您对Kali主机具有基于SSH密钥的访问权限:
# Add to ~/.ssh/config
Host kali
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/kali_keyClaude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"ldapdomaindump": {
"command": "node",
"args": ["/path/to/sec-ldapdomaindump-mcp/dist/index.js"],
"env": {
"KALI_HOST": "kali",
"LDAP_OUTPUT_DIR": "/tmp/ldapdomaindump"
}
}
}
}可用工具
ldapdomaindump_dump
执行完整的LDAP域转储-枚举所有对象并输出HTML、JSON和可恢复文件。
ldapdomaindump_users
枚举具有SAM帐户名、显示名称、上次登录和帐户状态等属性的域用户。
ldapdomaindump_groups
枚举域组及其成员资格。
ldapdomaindump_computers
使用操作系统信息和DNS主机名枚举域计算机。
ldapdomaindump_trusts
枚举域信任关系。
ldapdomaindump_policies
获取域密码策略,包括锁定阈值和复杂性要求。
ldapdomaindump_read_output
从Kali主机读取之前生成的输出文件。
ldapdomaindump_ldd2pretty
使用ldd2pretty将JSON输出转换为类似enum4linux的可读格式。
ldapdomaindump_check
验证ldapdomaindump安装和SSH连接。
使用示例
完整域转储
Use ldapdomaindump_dump with:
- hostname: 10.10.10.1
- username: CORP\jsmith
- password: Password123仅枚举用户
Use ldapdomaindump_users with:
- hostname: dc01.corp.local
- username: CORP\enumuser
- password: EnumPass!
- useSsl: true通过哈希身份验证
Use ldapdomaindump_dump with:
- hostname: 10.10.10.1
- username: CORP\administrator
- password: aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
- authType: NTLM输出文件
ldapdomaindump生成多个输出文件:
| 文件 | 描述 |
|---|---|
domain_users.json | 所有用户帐户 |
domain_groups.json | 所有组和成员 |
domain_computers.json | 所有计算机帐户 |
domain_trusts.json | 域信任关系 |
domain_policy.json | 密码和锁定策略 |
domain_users_by_group.json | 按组组织的用户( --grouped-json) |
domain_computers_by_os.json | 按操作系统组织的计算机( --grouped-json) |
安全考虑
- 此工具用于 仅授权安全评估
- 凭据通过命令行参数传递-确保您的Kali主机是安全的
- 输出文件可能包含敏感信息-评估后清理
- 使用DNS解析时,大型域可能会导致域控制器负载过高
故障排除
SSH连接失败
# Test SSH connectivity
ssh kali "echo 'Connected'"
# Verify ldapdomaindump is installed
ssh kali "which ldapdomaindump"身份验证错误
- 验证用户名格式:
DOMAIN\username或username@domain.local - 检查NTLM身份验证的密码/哈希格式
- 如果NTLM失败,请尝试SIMPLE身份验证类型
无输出文件
- 检查输出目录是否存在并且可写
- 验证从Kali到域控制器的LDAP连接
- 检查stderr是否存在身份验证或网络错误
相关工具
- ldapdomaindump -底层Python工具
- 血猎犬 -AD攻击路径分析
- ldd2警犬 -将输出转换为BloodHound格式
许可证
MIT许可证-请参阅 许可证 了解详情。
免责声明
此工具仅用于教育和授权的安全测试目的。用户有责任确保在对任何系统使用此工具之前,他们都有适当的授权。未经授权访问计算机系统是非法的。
