# 历史 CVE 漏洞

在进入域环境后，我们就可以对域进行侦查与枚举了。域是个很庞大的设施，有诸多信息需要我们去提取和枚举，一开始我们可能会觉得有些手足无措，但只要我们梳理好顺序与思路，就不会错过重要的线索。

我一直坚持，枚举和利用总是从最简单的做起，即 low hanging fruit。对于一个保持系统更新的企业域环境来说，想通过 1 个 CVE 漏洞一键接管是较难遇到的事情了，虽然有一些辅助性的漏洞或者默认配置（例如未开启LDAP签名、频道绑定）可以协助我们对单个主机进行执行远程代码或者特权提升。但另一方面，企业并非总是时刻保持域服务器的更新，因此容易受到一些历史 CVE 漏洞影响，尤其是近两年的。这些漏洞，能帮助拿下多个主机，甚至一键接管整个域乃至森林。

#### **配置 SOCKS**

在枚举这些漏洞的存在之前，在任意一个 Beacon 交互中执行 **socks 1080** 命令，这会在我们的 C2 服务器上开启 **1080** 端口。关于 SOCKS 代理的细节，我们会在后面的章节更详细地介绍。因为这些 CVE 漏洞的扫描或者利用 PoC 有的是以 **Python** 脚本的形式，我们会想在 VPS 上通过 SOCKS 将流量转发过去。如果 PoC 是 **.NET** 程序或者 **BOF** 的形式，那自然是更好的。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/yVDOe0cuHIv0DbKV-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/yVDOe0cuHIv0DbKV-image.png)

安装 **proxychains**，如果系统中还没有安装的话。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/ra4VF5pdnxKgShOP-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/ra4VF5pdnxKgShOP-image.png)

编辑 **/etc/proxychains.conf**

```shell
strict_chain
proxy_dns 
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 	127.0.0.1 1080

```

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/YNny87pa7OnfIrZd-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/YNny87pa7OnfIrZd-image.png)

使用 **nmap** 测试对靶场内部主机的连通性：**proxychains nmap -sT -Pn 172.16.1.52 -p135,139,445**

```shell
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)](https://github.com/SecuraBV/CVE-2020-1472)) 可用于测试目标域是否受该漏洞影响。我们可以使用 .NET 版本的工具 ([https://github.com/leitosama/SharpZeroLogon/tree/main](https://github.com/leitosama/SharpZeroLogon/tree/main)) 来测试和利用。该漏洞不需要认证或者明文凭证。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/KtyijchuaAWyQJNM-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/KtyijchuaAWyQJNM-image.png)

我们甚至能跨域对 dc01 进行检测：

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/i1UrBEgEc6MLzQuN-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/i1UrBEgEc6MLzQuN-image.png)

#### **CVE-2021-42278 NoPAC 漏洞**

该漏洞实际上利用了主机账号的伪造，攻击者可以从普通用户提升为域管理员。脚本 ([https://github.com/Ridter/noPac](https://github.com/Ridter/noPac)) 可用于检测以及利用该漏洞。但这里，我发现了个 .NET 编写的检测与利用工具 ([https://github.com/cube0x0/noPac](https://github.com/cube0x0/noPac))，下载后打开该项目，将 Main 函数公开化，编译。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/sLxYb7xkP7PSlNvv-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/sLxYb7xkP7PSlNvv-image.png)

将 exe 文件转移到 VPS 上。我们使用 execute-assembly 执行该工具。我们需要提供一个有效的账户，正好我们之前在 Web02 上找到了 serveradm 用户的明文凭证。

根据输出结果，**white-bird.local** 的域控具有 noPAC 的漏洞，我们在持有一个有效账户的情况下可以一键域内提权。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/TMVclDjhxDXJB0Ln-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/TMVclDjhxDXJB0Ln-image.png)

#### **MS14-068**

因为KDC对于伪造票据签名的失败校验，攻击者可以模仿域管理员从而接管域。我们可以使用脚本 ([https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS14-068/pykek/ms14-068.py](https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS14-068/pykek/ms14-068.py)) 对受影响的主机进行利用。考虑到该漏洞较为久远，且靶场的主机都是 Windows 2019，理论上不会存在该漏洞，我们就不进行尝试了。