Cover Image

Doppia vulnerabilità nello spooler di stampa di Windows

7 Agosto 2020 - Tempo di lettura: 8 minuti

A maggio 2020, Microsoft ha corretto CVE-2020-1048, una vulnerabilità di escalation dei privilegi nel servizio Spooler di stampa di Windows scoperta da Peleg Hadar e Tomer Bar di SafeBreach Labs.

Un mese dopo, i due ricercatori hanno trovato un modo per aggirare la patch e sfruttare nuovamente la vulnerabilità nell'ultima versione di Windows. Microsoft ha assegnato a questa vulnerabilità un nuovo numero di identificazione - CVE-2020-1337 - e lo correggerà il martedì patchday di agosto 2020Hanno anche scoperto un difetto DoS che riguarda lo stesso servizio, che non verrà corretto.

Cos'è lo spooler di stampa?

“Il componente principale dell'interfaccia di stampa è lo spooler di stampa. Lo spooler di stampa è un file eseguibile che gestisce il processo di stampa. La gestione della stampa implica il recupero della posizione del driver della stampante corretto, il caricamento di tale driver, lo spooling delle chiamate di funzioni di alto livello in un lavoro di stampa, la pianificazione del lavoro di stampa per la stampa e così via. Lo spooler viene caricato all'avvio del sistema e continua a funzionare finché il sistema operativo non viene arrestato ", spiega Microsoft .

“Il codice Print Spooler ha almeno 20 anni. In generale, il codice più vecchio tende a contenere vecchi bug e potrebbe essere più rischioso a causa di falle di sicurezza, ma, in realtà, sono state scoperte solo poche vulnerabilità nel servizio di spooler negli ultimi 20+ anni ", ha detto Hadar.

Uno di questi è CVE-2010-2729, la vulnerabilità di escalation dei privilegi sfruttata anni fa da Stuxnet. Un altro è CVE-2020-1048, il già citato difetto dello spooler di stampa corretto a maggio 2020.

Lo spooler di stampa di Windows scoperto di recente zero-days

Hadar e Bar hanno condiviso ulteriori informazioni sui due zero-day scoperti al Black Hat USA 2020 questa settimana.

CVE-2020-1337 è una vulnerabilità di escalation di privilegi locali che interessa tutte le versioni di Windows da Windows 7 a Windows 10 (32 e 64 bit).

Oltre a consentire agli aggressori di ottenere i privilegi di SISTEMA, può anche essere utilizzato come tecnica di persistenza, ha spiegato Hadar, utilizzando i seguenti passaggi:

  • Un codice dannoso potrebbe attivare la vulnerabilità a ogni riavvio del sistema operativo scrivendo file shd e spl nella cartella dello spooler
  • Dopo il riavvio del sistema operativo, il servizio spooler elaborerà il file shd e i file spl, la vulnerabilità verrà sfruttata e lo spooler riscriverà la dll del malware in un percorso in system32 vulnerabile al dirottamento della dll e verrà caricato da un processo di sistema.

La vulnerabilità DoS locale è vecchia: può essere sfruttata su tutte le versioni di Windows dal 2000 a Windows 10 (32 e 64 bit).

Questo non ha ottenuto un numero CVE e non verrà patchato, poiché Microsoft afferma che "non soddisfa la sua barra di manutenzione per gli aggiornamenti di sicurezza".

Maggiori dettagli sui due difetti possono essere trovati in questo white paper.

I ricercatori hanno rilasciato un exploit PoC per CVE-2020-1048 e il difetto DoS dello spooler e ne rilasceranno uno per CVE-2020-1337 la prossima settimana, dopo che la patch sarà disponibile.

Strumenti per la mitigazione e ulteriori ricerche

Hanno anche rilasciato un PoC di un mini-filtro driver del kernel per mitigare le vulnerabilità legate all'elevazione dei privilegi (dovute alla scrittura arbitraria nel file system).

"Una delle cause principali della classe di bug di scrittura arbitraria di file (nel contesto dell'escalation dei privilegi locali) è il fatto che a un utente senza privilegi è consentito scrivere direttamente su cartelle gestite direttamente da servizi eseguiti come NT AUTHORITY \ SYSTEM ", hanno spiegato.

Il driver dimostra come si possa prevenire lo sfruttamento di tali vulnerabilità in tempo reale (anche se, hanno avvertito, il codice è solo a scopo dimostrativo e non dovrebbe essere utilizzato in un ambiente di produzione).

Hanno anche reso disponibile un modello di file SHD per l'editor esadecimale 010, per aiutare altri ricercatori ad avviare la propria ricerca sul meccanismo dello spooler di stampa.

Tutte queste versioni sono disponibili da questo repository GitHub.

intopic.it