认证MCP服务器
  
概述
此MCP服务器使AI助手能够通过SSH在远程Kali Linux机器上执行Certpy命令来执行AD CS安全评估。它支持在 认证二手车 研究。
关键能力
- 枚举 -发现证书颁发机构、模板和ESC1-ESC16漏洞
- 证书请求 -使用易受攻击的模板请求证书
- 认证 -执行PKINIT身份验证以获取TGT和NTLM哈希
- 金证书 -使用泄露的CA私钥伪造证书
- 影子凭据 -通过关键凭证链接接管帐户
- NTLM中继 -针对AD CS HTTP/RPC端点的中继攻击
- 模板/CA管理 -修改模板和管理CA配置
安装
先决条件
- Kali Linux机器 安装Certify后:
sudo apt install certipy-ad
# or
pip install certipy-ad- SSH访问 配置到Kali机器(建议无密码):
# Example ~/.ssh/config entry
Host kali
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/id_rsa- Node.js 运行MCP服务器的机器上的18+
设置
# Clone the repository
git clone https://github.com/schwarztim/sec-certipy-mcp.git
cd sec-certipy-mcp
# Install dependencies
npm install
# Build
npm run buildClaude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"certipy": {
"command": "node",
"args": ["/path/to/sec-certipy-mcp/dist/index.js"],
"env": {
"CERTIPY_KALI_HOST": "kali",
"CERTIPY_SSH_OPTIONS": "-o StrictHostKeyChecking=no -o ConnectTimeout=10"
}
}
}
}配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
CERTIPY_KALI_HOST | kali | Kali机器的SSH主机别名或IP |
CERTIPY_SSH_OPTIONS | -o StrictHostKeyChecking=no -o ConnectTimeout=10 | SSH连接选项 |
可用工具
证书查找
枚举AD CS配置并识别漏洞(ESC1-ESC16)。这通常是任何AD CS评估的第一步。
{
"username": "user",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"vulnerable": true
}认证要求
向AD CS请求证书。支持多种注册协议(RPC、DCOM、HTTP)。
{
"username": "user",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"ca": "corp-DC-CA",
"template": "VulnerableTemplate",
"upn": "administrator@corp.local"
}认证
使用证书(PKINIT)进行身份验证,以获取Kerberos TGT和NTLM哈希。
{
"pfx": "/path/to/administrator.pfx",
"dc_ip": "192.168.1.1"
}证书伪造
使用泄露的CA私钥伪造证书(黄金证书攻击)。
{
"ca_pfx": "/path/to/ca.pfx",
"upn": "administrator@corp.local",
"subject": "CN=Administrator,CN=Users,DC=corp,DC=local"
}证明_阴影
滥用影子凭据(密钥凭据链接)进行帐户接管。
{
"username": "attacker",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"account": "target_user",
"action": "auto"
}证书回放
针对AD CS HTTP/RPC端点的NTLM中继攻击(ESC8/ESC11)。
{
"target": "http://ca.corp.local/certsrv/certfnsh.asp",
"ca": "corp-DC-CA",
"template": "DomainController"
}证书模板
查看和修改证书模板配置(ESC4)。
{
"username": "user",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"template": "VulnerableTemplate",
"save_config": "template_backup.json"
}证书CA
管理证书颁发机构-列出/启用/禁用模板,发出/拒绝请求(ESC7)。
{
"username": "user",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"ca": "corp-DC-CA",
"list_templates": true
}认证证书
管理本地证书-导入、导出、格式转换。
{
"pfx": "certificate.pfx",
"export": true,
"out": "certificate"
}凭证账户
管理攻击设置的AD用户和计算机帐户。
{
"username": "user",
"password": "password",
"domain": "corp.local",
"dc_ip": "192.168.1.1",
"user": "newcomputer$",
"create": true
}证书_帮助
获取Certpy命令的帮助。
{
"command": "find"
}AD CS攻击向量参考
| ESC | 漏洞 | 认证工具 | 描述 |
|---|---|---|---|
| ESC1 | 证书模板配置错误 | certipy_req 和 -upn | 允许请求者指定SAN的模板 |
| ESC2 | 任何目的或子CA模板 | certipy_req | EKU配置过于宽松 |
| ESC3 | 注册代理模板 | certipy_req 和 -on-behalf-of | 代表其他用户请求证书 |
| ESC4 | 易受攻击的模板ACL | certipy_template | 对模板对象的写入权限 |
| ESC5 | 易受攻击的PKI AD对象ACL | certipy_ca | CA配置的写入权限 |
| ESC6 | EDITF_属性主题名称2 | certipy_req | CA允许SAN规范 |
| ESC7 | 易受攻击的CA ACL | certipy_ca | ManageCA或ManageCertificate权限 |
| ESC8 | HTTP注册(NTLM中继) | certipy_relay | 网络注册易受中继攻击 |
| ESC9-16 | 各种配置错误 | certipy_find | 其他模板/CA问题 |
安全通知
此工具仅用于授权的安全测试和研究目的。未经授权访问计算机系统是非法的。在进行安全评估之前,始终确保您有适当的授权。
参考文献
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
