历史 CVE 漏洞
在进入域环境后,我们就可以对域进行侦查与枚举了。域是个很庞大的设施,有诸多信息需要我们去提取和枚举,一开始我们可能会觉得有些手足无措,但只要我们梳理好顺序与思路,就不会错过重要的线索。
我一直坚持,枚举和利用总是从最简单的做起,即 low hanging fruit。对于一个保持系统更新的企业域环境来说,想通过 1 个 CVE 漏洞一键接管是较难遇到的事情了,虽然有一些辅助性的漏洞或者默认配置(例如未开启LDAP签名、频道绑定)可以协助我们对单个主机进行执行远程代码或者特权提升。但另一方面,企业并非总是时刻保持域服务器的更新,因此容易受到一些历史 CVE 漏洞影响,尤其是近两年的。这些漏洞,能帮助拿下多个主机,甚至一键接管整个域乃至森林。
配置 SOCKS
在枚举这些漏洞的存在之前,在任意一个 Beacon 交互中执行 socks 1080 命令,这会在我们的 C2 服务器上开启 1080 端口。关于 SOCKS 代理的细节,我们会在后面的章节更详细地介绍。因为这些 CVE 漏洞的扫描或者利用 PoC 有的是以 Python 脚本的形式,我们会想在 VPS 上通过 SOCKS 将流量转发过去。如果 PoC 是 .NET 程序或者 BOF 的形式,那自然是更好的。
安装 proxychains,如果系统中还没有安装的话。
编辑 /etc/proxychains.conf
strict_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 127.0.0.1 9050
使用 nmap 测试对靶场内部主机的连通性:proxychains nmap -sT -Pn 172.16.1.52 -p135,139,445
ubuntu@ts:~$ proxychains nmap -sT -Pn 172.16.1.52 -p135,139,445
ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nmap 7.80 ( https://nmap.org ) at 2023-03-30 15:54 UTC
|S-chain|-<>-127.0.0.1:1080-<><>-172.16.1.52:139-<><>-OK
|S-chain|-<>-127.0.0.1:1080-<><>-172.16.1.52:135-<><>-OK
|S-chain|-<>-127.0.0.1:1080-<><>-172.16.1.52:445-<><>-OK
Nmap scan report for ip-172-16-1-52.ec2.internal (172.16.1.52)
Host is up (0.76s latency).
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
CVE-2022-26923 证书服务提权漏洞
低权限的域用户在默认的 AD 以及 ADCS 环境中可以提升至域管理员特权。该漏洞需要多个工具组合利用,因为似乎暂时没有一键扫描或利用脚本,在后续章节我们会讲手动利用的具体过程。
CVE-2020-1472 ZeroLogon 漏洞
因为脆弱的密码学设计,攻击者可以模仿任何域主机,包括域控制器,以实现提权。脚本 (https://github.com/SecuraBV/CVE-2020-1472) 可用于测试目标域是否受该漏洞影响。我们可以使用 .NET 版本的工具 (https://github.com/leitosama/SharpZeroLogon/tree/main) 来测试和利用。该漏洞不需要认证或者明文凭证。
CVE-2021-42278 NoPAC 漏洞
该漏洞实际上利用了主机账号的伪造,攻击者可以从普通用户提升为域管理员。脚本 (https://github.com/Ridter/noPac) 可用于检测以及利用该漏洞。但这里,我发现了个 .NET 编写的检测与利用工具 (https://github.com/cube0x0/noPac),下载后打开该项目,将 Main 函数公开化,编译。
将 exe 文件转移到 VPS 上。我们使用 execute-assembly 执行该工具。我们需要提供一个有效的账户,正好我们之前在 Web02 上找到了 serveradm 用户的明文凭证。
根据输出结果,white-bird.local 的域控具有 noPAC 的漏洞,我们在持有一个有效账户的情况下可以一键域内提权。
MS14-068
因为KDC对于伪造票据签名的失败校验,攻击者可以模仿域管理员从而接管域。我们可以使用脚本 (https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS14-068/pykek/ms14-068.py) 对受影响的主机进行利用。考虑到该漏洞较为久远,且靶场的主机都是 Windows 2019,理论上不会存在该漏洞,我们就不进行尝试了。