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
Strumenti/GitHubGitHub/laresllc/cve-2021-1675
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitInformatica ForenseApprendimento e FormazioneRisposta agli IncidentiRisorse Curate
GitHublaresllc/cve-2021-1675

CVE-2021-1675

CVE-2021-1675 Informazioni di rilevamento

Vedi Repository
2143833 anni faRevisionato da Kitploit

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

Da Lares Labs: Informazioni di rilevamento e remediation per CVE-2021-1675 e CVE-2021-34527

🚨 Patch rilasciata:

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527

La patch ha confermato di correggere l'RCE, tuttavia la escalation dei privilegi locali sembra non essere stata ancora corretta. Pertanto, le soluzioni alternative elencate di seguito sono ancora consigliate.

Questo repository contiene un campione EVTX dell'attacco CVE-2021-1675 e CVE-2021-34527, oltre a un file di configurazione minimale di Sysmon che può essere utilizzato per generare la telemetria pertinente.

Si noti che queste regole potrebbero essere aggirate - applicare le patch appropriate e disabilitare il servizio Spooler di stampa sui controller di dominio.

Testare tutte le correzioni consigliate prima del rilascio in produzione, poiché potrebbero esserci conseguenze indesiderate a seguito di queste modifiche di hardening. Abbiamo scritto un post sul blog che spiega il contenuto di questo repository e le informazioni trovate. Qui: https://labs.lares.com/detection-and-mitigation-printnightmare/

Verifica della vulnerabilità di Marcello https://twitter.com/byt3bl33d3r

  • https://twitter.com/byt3bl33d3r/status/1412798525323157504

  • https://github.com/byt3bl33d3r/ItWasAllADream

Diagramma di flusso

Grazie a Benjamin Delpy, è disponibile un diagramma di flusso aggiornato sullo sfruttabilità di questo problema per determinare se i vostri sistemi sono probabilmente vulnerabili.

Correzioni mostrate nel diagramma di flusso sopra

  1. GPO: Impostazioni di sicurezza -> Servizi di sistema -> Spooler di stampa -> Disabilita
    1. Registry: HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start = 4
  2. GPO: Configurazione computer -> Modelli amministrativi -> Stampanti -> Consenti allo Spooler di stampa di accettare connessioni client -> Disabilita
    1. Registry: HKLM\Software\Policies\Microsoft\Windows NT\Printers\RegisterSpoolerRemoteRpcEndPoint = 2
  3. GPO: Stampanti -> Restrizioni Point and Print -> Richieste di sicurezza -> Quando si installano driver per una nuova connessione -> Mostra avviso e richiesta di elevazione
    1. Registry: HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint = 0
  4. Registry: HKLM\SOFTWARE\Microsoft\Windows\CurrrentVersion\Policies\System\EnableLUA = 1

Soluzione alternativa

La patch rilasciata da Microsoft nel giugno 2021 corregge CVE-2021-1675 ma purtroppo non risolve il problema noto come PrintNightmare (CVE-2021-34527), pertanto è possibile applicare una soluzione alternativa disabilitando il servizio Spooler di stampa. Ecco come fare sia tramite GPO che PowerShell. È stato confermato che la GPO corregge sia la funzione MS-RPRN RpcAddPrinterDriverEx che la funzione Win32 AddPrinterDriverEx utilizzate da SharpPrintNightmare.

GPO

La seguente GPO può essere impostata per negare le connessioni client allo spooler, che rappresenta una potenziale soluzione alternativa quando la disabilitazione completa del servizio Spooler potrebbe non essere un'opzione. È stata testata su controller di dominio e endpoint (W7/W10) in ambiente di laboratorio e gli utenti possono ancora aggiungere/rimuovere stampanti e stampare, ma impedisce il funzionamento dell'exploit. Nota: è anche noto che questa GPO corregge anche CVE-2021-34527 come indicato nella pagina delle vulnerabilità di Microsoft.

Configurazione computer -> Modelli amministrativi -> Stampanti -> Consenti allo Spooler di stampa di accettare connessioni client impostare su Disabilitato:

Quindi riavviare il servizio Spooler sull'host interessato. Se tutto funziona, l'exploit verrà negato:

root@kitploit:~
./CVE-2021-1675.py lares.labs/[email protected] '\\certer.lares.labs\share\evil.dll'                                                                                    1 ⨯
Password:
[*] Try 1...
[*] Connecting to ncacn_np:192.168.1.157[\PIPE\spoolss]
[-] Connection Failed

Rimozione degli Utenti autenticati da Accesso compatibile Pre-Windows 2000

Un'altra correzione/soluzione alternativa è rimuovere gli utenti autenticati da Accesso compatibile Pre-Windows 2000 come scoperto da Dirk-jan.

Assicurarsi che i gruppi "Utenti autenticati" non siano membri del gruppo "Accesso compatibile Pre-Windows 2000". (Per impostazione predefinita, questi gruppi non sono inclusi nelle versioni correnti di Windows.) come mostrato nello screenshot qui sotto, non dovrebbero esserci membri:

In caso di dubbi su come procedere, è possibile seguire i seguenti passaggi:

  1. Aprire "Utenti e computer di Active Directory" (disponibile da vari menu o eseguire "dsa.msc").
  2. Espandere il dominio in esame nel riquadro sinistro e selezionare il contenitore "Builtin".
  3. Fare doppio clic sul gruppo "Accesso compatibile Pre-Windows 2000" nel riquadro destro.
  4. Selezionare la scheda "Membri".
  5. Se i gruppi "Accesso anonimo", "Utenti autenticati" o "Everyone" sono membri, selezionarli e fare clic su "Rimuovi".

PowerShell

Adattato lo script di 0gtweet per utilizzare ADDomainController per ottenere tutti i DC dal dominio

root@kitploit:~
# the script STOP and DISABLES Print Spooler service (aka #PrintNightmare) on each server from the list below IF ONLY DEFAULT PRINTERS EXIST.
# revert if you need: go to services.msc, find the "print spooler" service, change startup type to "automatic" and start the service.
# Source: https://github.com/gtworek/PSBits/blob/master/Misc/StopAndDisableDefaultSpoolers.ps1
#
# Requirements RSAT
# Get-Module -Name ActiveDirectory
# Import-Module -Name ActiveDirectory

$computers = Get-ADDomainController -filter * | %{ $_.name }

foreach ($computer in $computers)
{
    Write-Host "Processing $computer ..." 
    $service = Get-Service -ComputerName $computer -Name Spooler -ErrorAction SilentlyContinue
    if (!$service)
    {
        Write-Host "Cannot connect to Spooler Service on $computer. Skipping." -ForegroundColor Yellow
        continue
    }
    if ($service.Status -ne "Running")
    {
        Write-Host ("Service status is: """ + $service.Status + """. Skipping.") -ForegroundColor Yellow
        continue
    }
    $printers = (Get-WmiObject -class Win32_printer -ComputerName $computer)
    if (!$printers)
    {
        Write-Host "Cannot enumerate printers. Skipping." -ForegroundColor Yellow
        continue
    }

    $disableSpooler = $true
    foreach ($DriverName in ($printers.DriverName))
    {
        if (($DriverName -notmatch 'Microsoft XPS Document Writer') -and ($DriverName -notmatch 'Microsoft Print To PDF'))
        {
            Write-Host "  Printer found: $DriverName" -ForegroundColor Green
            $disableSpooler = $false
        }
    }
    if ($disableSpooler)
    {
        Write-Host "Only default printers found. Stopping and disabling spooler..." -ForegroundColor DarkCyan
        (Get-Service -ComputerName $computer -Name Spooler) | Stop-Service -Verbose
        Set-Service -ComputerName $computer -Name Spooler -StartupType Disabled -Verbose

    }
    else
    {
        Write-Host "Non-default printers found. Skipping." -ForegroundColor Green
    }
}

File di configurazione Sysmon

Il file di configurazione Sysmon fornito CVE-2021-1675.xml può essere installato con Sysmon Config Pusher: https://github.com/LaresLLC/SysmonConfigPusher

Query Splunk

root@kitploit:~
index=sysmon EventCode=7 Image="C:\\Windows\\System32\\spoolsv.exe" NOT (Signature="Microsoft Windows" SignatureStatus=Valid)
| stats values(ImageLoaded),values(TargetObject),values(Details),values(TargetFilename)

Approccio alternativo

Un modo generico per cercare lo sfruttamento dello Spooler di stampa è cercare errori generati dallo spooler a causa del caricamento della DLL payload. Questo può essere fatto cercando la generazione di WerFault.exe da parte di spoolsv.exe o la generazione dell'Event ID 7031 che mostra la terminazione imprevista del servizio Spooler di stampa.

Query Splunk alternativa

root@kitploit:~
((index=sysmon EventCode=1 
ParentImage="C:\\Windows\\System32\\spoolsv.exe" Image="C:\\Windows\\System32\\WerFault.exe") 
OR (index=windows Channel=System EventCode=7031 
Message="The Print Spooler service terminated unexpectedly"))

Approccio aggiuntivo

Dopo diversi test di sfruttamento dell'implementazione di cube0x0 è stato trovato un artefatto aggiuntivo: Event ID 5145 con Share Name: \\*\IPC$ e Relative Target Name: spoolss. I vantaggi di questo approccio sono che è possibile vedere l'IP sorgente (Source Address) e l'account (Security ID o Account Name) utilizzati per eseguire l'attacco. Possono esserci falsi positivi da veri server di stampa, ma possono essere filtrati per hostname e Access Mask. Possono esserci altri falsi positivi che possono essere filtrati combinando hostname-username-access mask.

Query Splunk

root@kitploit:~
index=windows_security EventCode=5145 Share_Name="\\\\*\\IPC$" Relative_Target_Name=spoolss

Query KQL per Sentinel / MDE da Olaf Hartong

root@kitploit:~
let serverlist=DeviceInfo
| where DeviceType != "Workstation"
| distinct DeviceId;
let suspiciousdrivers=DeviceImageLoadEvents
| where DeviceId in (serverlist)
| where FolderPath startswith @"c:\windows\system32\spool\drivers"
| distinct SHA1
| invoke FileProfile(SHA1, 1000) 
| where GlobalPrevalence < 50 and IsRootSignerMicrosoft != 1 and SignatureState != "SignedValid";
suspiciousdrivers
| join kind=inner (DeviceImageLoadEvents
| where DeviceId in (serverlist)
| where FolderPath startswith @"c:\windows\system32\spool\drivers") on SHA1
| where InitiatingProcessFileName != "ccmexec.exe"

Source: https://twitter.com/olafhartong/status/1410229699993874442

Osservazioni Zeek

Strumento utilizzato: https://github.com/cisagov/Malcolm

File transfer of DLL:

NTLM Authentication from "Attacking" Machine:

Relevant RPC Calls:

🟢 PCAP File Available

🟢 Zeek dce_rpc.log

Query di caccia Carbon Black per CVE-2021-1675

Source: https://github.com/mrezqi/CVE-2021-1675_CarbonBlack_HuntingQuery/blob/main/README.md

  • 1 Basato sulla regola Sigma per rilevare il codice POC
root@kitploit:~
filemod_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old\\1\\123
  • 2 Basato sulla regola Sigma per rilevare il codice POC
root@kitploit:~
(modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3* OR modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old*) AND parent_cmdline:spoolsv\.exe
  • 3 Basato sulla regola Sigma per rilevare il codice POC
root@kitploit:~
(modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3* OR modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old*) AND process_name:spoolsv\.exe
  • 4 Rilevamento di eventi di file (non firmati), adattalo alla tua baseline. Non ho specificato intenzionalmente il percorso del driver qui poiché lo sfruttamento e la post-esploitazione sono ancora un po' poco chiari. Assicurati di adattarlo alla tua baseline (hash noto, ecc.).
root@kitploit:~
process_name:spoolsv\.exe AND NOT filemod_publisher_state:FILE_SIGNATURE_STATE_SIGNED
  • 5 Rilevamento di eventi di file (firmati da non Microsoft), adattalo alla tua baseline
root@kitploit:~
process_name:spoolsv\.exe AND filemod_publisher_state:FILE_SIGNATURE_STATE_SIGNED AND NOT filemod_publisher:"Microsoft Windows*"

Riferimenti

Twitter Posts referencing attacks and hunting queries

  • https://twitter.com/ionstorm/status/1410258694386880518
  • https://twitter.com/dez_/status/1410298162548559875
  • https://twitter.com/markus_neis/status/1410255678996942854
  • https://twitter.com/cyb3rops/status/1410250996362715137
  • https://twitter.com/gentilkiwi/status/1410066827590447108
  • https://twitter.com/wdormann/status/1410198834970599425
  • https://twitter.com/NathanMcNulty/status/1410289115354914820
  • https://twitter.com/mvelazco/status/1410291741241102338
  • https://twitter.com/StanHacked/status/1410527329839980547
  • https://twitter.com/_dirkjan/status/1410618720460754947
  • https://github.com/mrezqi/CVE-2021-1675_CarbonBlack_HuntingQuery
  • https://twitter.com/cube0x0/status/1411364227089117185

Osservazioni sui controller di dominio rispetto a quelli non controller di dominio tramite Benjamin Delpy:

  • https://twitter.com/gentilkiwi/status/1410614489167269892

Diagramma di flusso molto utile tramite Stan Hegt di Outflank

  • https://twitter.com/StanHacked/status/1410922404252168196

Nuova assegnazione CVE da Microsoft:

  • https://twitter.com/msftsecresponse/status/1410768945590636548

Diario SANS ICS:

  • https://isc.sans.edu/forums/diary/CVE20211675+Incomplete+Patch+and+Leaked+RCE+Exploit/27588/
Scarica lo strumento