LDAP域名转储服务

一个提供AI助手访问ldapdomaindump工具的MCP服务器,用于Active Directory LDAP枚举,常用于渗透测试和安全评估。

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

使用说明

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  │
└─────────────┘               └─────────────┘                └─────────────┘

先决条件

  1. Kali Linux主机 已配置SSH访问
  2. ldapdomaindump Kali上安装的:
    pip install ldapdomaindump
    
  3. 基于SSH密钥的身份验证 到Kali主机
  4. 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_key

Claude桌面配置

添加到您的 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是否存在身份验证或网络错误

相关工具

许可证

MIT许可证-请参阅 许可证 了解详情。

免责声明

此工具仅用于教育和授权的安全测试目的。用户有责任确保在对任何系统使用此工具之前,他们都有适当的授权。未经授权访问计算机系统是非法的。