Bypassare MFA con l'attacco Pass-the-Cookie
L'autenticazione a più fattori (MFA) è un ottimo metodo per incrementare la sicurezza sia on-premises che in cloud. Con l'MFA attivato, quando un utente effettua l'accesso, deve fornire non solo il proprio ID utente e password, ma anche un ulteriore fattore di autenticazione, come un codice inviato al suo telefono. Questo processo riduce la superficie di attacco impedendo agli avversari in possesso di credenziali utente rubate di accedere.
Tuttavia, l'MFA non è una panacea per la cybersecurity. In particolare, gli avversari possono utilizzare l'attacco Pass-the-Cookie per usare i cookie del browser per aggirare l'MFA e ottenere l'accesso ai servizi cloud. In questo post, esploreremo come funziona questo attacco e le migliori pratiche di sicurezza per difendersi da esso.
I cookie del browser consentono alle applicazioni web di memorizzare le informazioni di autenticazione degli utenti, così possono rimanere connessi invece di dover fornire ogni volta il nome utente e la password ogni volta che navigano in una nuova pagina di un sito web. (Questo è simile all'autenticazione Kerberos o NTLM, in cui un artefatto viene memorizzato localmente sul sistema dell'utente e utilizzato per future autenticazioni.)
Come funziona l'attacco Pass the Cookie
Se MFA è abilitato, l'utente deve fornire una prova aggiuntiva della propria identità, ad esempio accettando una notifica push sul proprio dispositivo mobile. Una volta che l'utente ha superato MFA, viene creato un cookie del browser e memorizzato per la sessione web.
Mentre i cookie semplificano l'esperienza utente, presentano una vulnerabilità evidente: se qualcuno riuscisse a estrarre i cookie giusti dal browser, potrebbe autenticarsi come un altro utente in una sessione di navigazione web completamente separata su un altro sistema. In breve, potrebbero utilizzare il cookie per aggirare l'autenticazione tramite MFA. (Questo è analogo all'attacco Pass the Hash in Active Directory.)
Come un avversario può estrarre i cookie del browser.
Vediamo come un attaccante potrebbe estrarre i cookie utilizzando l'esempio del browser Google Chrome. Chrome memorizza i cookie nella seguente posizione in un database SQLite:
%localappdata%GoogleChromeUser DataDefaultCookies
The cookies for a given user are encrypted using keys tied to that user via the Microsoft Data Protection API (DPAPI). To access the cookie database and decrypt the cookies, an adversary can use the following mimikatz command:
dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect
Alternatively, they could execute the following from the command line:
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
L'utilizzo di una qualsiasi di queste opzioni fornirà i cookie del browser:
Scenario di attacco Pass-the-Cookie
Vediamo come funzionerebbe un attacco Pass-the-Cookie in uno scenario reale.
Supponiamo che l'utente Tobias sia un amministratore IT. Una delle applicazioni web che Tobias utilizza regolarmente è il portale di gestione Microsoft Azure. Poiché MFA è abilitato, quando Tobias accede ad Azure, deve fornire un codice dall'app autenticatore sul suo dispositivo mobile, come mostrato di seguito.
Quindi, finché nessuno ruba il suo iPhone, le credenziali Azure dovrebbero essere al sicuro, giusto? Non così in fretta. Supponiamo che Tobias abbia cliccato su un'email di phishing o che il suo sistema sia stato compromesso in qualche altro modo, e ora un attaccante è in grado di eseguire codice nel contesto utente di Tobias. Tobias NON è un amministratore sul suo laptop quindi i danni dovrebbero essere contenuti, giusto?
Vediamo.
Passaggio 1. Estrai i Cookie.
Come abbiamo visto in precedenza, tutto ciò che dobbiamo fare per ottenere i cookie del browser di Tobias è eseguire questo comando quando siamo in esecuzione come Tobias:
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
In questo caso, ci interessano i cookie di autenticazione di Azure, inclusi ESTSAUTH, ESTSAUTHPERSISTENT e ESTSAUTHLIGHT. Questi cookie sono disponibili perché Tobias è stato attivo su Azure di recente:
Passaggio 2. Passa i cookie.
Potrebbe sembrare che, poiché non conosciamo l'ID utente o la password di Tobias e non abbiamo accesso al suo dispositivo mobile, non possiamo accedere a applicazioni web come Azure come Tobias.
Ma dato che abbiamo i suoi cookie, dobbiamo solo passarli in un'altra sessione per prendere il controllo dell'account di Tobias. Questo è abbastanza facile da fare: basta aprire Chrome su un altro server e utilizzare l'interfaccia “Ispeziona” per inserire un cookie.
2.1. Prima, ispezioniamo la sessione rubata:
2.2. Successivamente, ci spostiamo in Application > Cookies. Come potete vedere, i cookie attuali non includono ESTSAUTH o ESTSAUTHPERSISTENT:
2.3. Aggiungiamo il cookie ESTSAUTH o, se disponibile, il cookie ESTSAUTHPERSISTENT. (Se disponibile, ESTSAUTHPERSISTENT è preferito perché viene generato dall'opzione “Rimani connesso”.)
2.4. Aggiorniamo la pagina e ora siamo entrati in Azure come Tobias — nessuna MFA richiesta!
Mitigare il tuo rischio
Gli attacchi Pass-the-Cookie rappresentano una seria minaccia per diversi motivi. Primo, un attacco Pass-the-Cookie non richiede diritti amministrativi; tutti gli utenti hanno accesso per leggere e decifrare i propri cookie del browser, indipendentemente dal fatto che abbiano diritti privilegiati sui loro workstation. Secondo, l'attaccante non deve conoscere l'ID utente o la password dell'account compromesso, quindi questo attacco è possibile con informazioni minime. Terzo, siamo stati anche in grado di completare attacchi Pass-the-Cookie dopo che il browser era stato chiuso.
Un modo per minimizzare il rischio di furto dei cookie è cancellare più spesso i cookie degli utenti. Tuttavia, ciò costringerà gli utenti a ri-autenticarsi ogni volta che accedono a un sito, il che li frustrerà e li porterà ad evitare di chiudere mai il loro browser per non perdere i loro cookie.
Una strategia migliore consiste nell'implementare prodotti di monitoraggio dell'autenticazione e rilevamento delle minacce come questi. Netwrix Threat Manager può rilevare prontamente gli account che vengono utilizzati in modi inaspettati in modo da poter rapidamente interrompere le attività malevole.
FAQ
Condividi su
Visualizza attacchi informatici correlati
Abuso dei permessi dell'applicazione Entra ID – Come funziona e strategie di difesa
Modifica di AdminSDHolder – Come funziona e strategie di difesa
Attacco AS-REP Roasting - Come Funziona e Strategie di Difesa
Attacco Hafnium - Come funziona e strategie di difesa
Spiegazione degli attacchi DCSync: minaccia alla sicurezza di Active Directory
Attacco Pass the Hash
Comprendere gli attacchi Golden Ticket
Attacco agli Account di Servizio Gestiti di Gruppo
Attacco DCShadow – Come Funziona, Esempi Reali e Strategie di Difesa
ChatGPT Prompt Injection: Comprensione dei rischi, esempi e prevenzione
Attacco di estrazione password NTDS.dit
Attacco Kerberoasting – Come Funziona e Strategie di Difesa
Spiegazione dell'attacco Pass-the-Ticket: Rischi, Esempi e Strategie di Difesa
Attacco di Password Spraying
Attacco di estrazione di password in chiaro
Spiegazione della vulnerabilità Zerologon: Rischi, exploit e mitigazione
Attacchi ransomware di Active Directory
Sbloccare Active Directory con l'attacco Skeleton Key
Movimento laterale: cos'è, come funziona e prevenzioni
Attacchi Man-in-the-Middle (MITM): cosa sono e come prevenirli
Attacco Silver Ticket
4 attacchi agli account di servizio e come proteggersi
Perché PowerShell è così popolare tra gli aggressori?
Come prevenire gli attacchi malware che impattano sulla tua azienda
Compromettere SQL Server con PowerUpSQL
Cosa sono gli attacchi di Mousejacking e come difendersi
Rubare credenziali con un Security Support Provider (SSP)
Attacchi con Rainbow Table: Come Funzionano e Come Difendersi
Uno sguardo approfondito agli attacchi alle password e come fermarli
Ricognizione LDAP
Cos'è il Credential Stuffing?
Attacco Golden SAML