Estrazione di credenziali crittografate da strumenti comuni PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Estrazione di credenziali crittografate da strumenti comuni

Il maggioranza degli attacchi informatici fare affidamento su credenziali rubate, ottenute inducendo dipendenti e utenti finali a condividerle o raccogliendo credenziali di dominio memorizzate nella cache su workstation e altri sistemi sulla rete. Queste credenziali rubate offrono agli aggressori la possibilità di spostarsi lateralmente all'interno dell'ambiente mentre passano da una macchina all'altra, sia on-premise che nel cloud, fino a raggiungere le risorse business-critical.

Nel Violazione di Uber a settembre, attaccanti ha trovato le credenziali in uno specifico script di PowerShell. Ma ci sono molti modi meno appariscenti, ma altrettanto dannosi, in cui gli aggressori possono trovare le credenziali che consentirebbero loro di accedere all'ambiente. Questi includono credenziali locali comuni, utenti locali con password simili e credenziali archiviate all'interno di file su condivisioni di rete.

Nella nostra ricerca, abbiamo affrontato la questione di che tipo di informazioni possono essere estratte da una macchina compromessa - senza sfruttare alcuna vulnerabilità - per spostarsi lateralmente o estrarre informazioni sensibili. Tutti gli strumenti che abbiamo usato qui sono disponibili sul nostro GitHub repository.

Le organizzazioni si affidano a diversi strumenti per autenticarsi su server e database utilizzando i protocolli SSH, FTP, Telnet o RDP e molti di questi strumenti salvano le credenziali per velocizzare l'autenticazione. Esaminiamo tre strumenti di questo tipo, WinSCP, Robomongo e MobaXterm, per mostrare come un utente malintenzionato potrebbe estrarre credenziali non in chiaro.

WinSCP: credenziali offuscate

Quando un controller di dominio non è disponibile, un utente può accedere alle risorse di sistema utilizzando le credenziali memorizzate nella cache che sono state salvate localmente dopo un accesso al dominio riuscito. Poiché l'utente è stato autorizzato in precedenza, l'utente può accedere alla macchina utilizzando l'account di dominio tramite credenziali memorizzate nella cache anche se il controller di dominio che ha autenticato l'utente in passato non è disponibile.

WinSCP offre la possibilità di salvare i dettagli delle credenziali utilizzate per connettersi a macchine remote tramite SSH. Sebbene le credenziali siano offuscate quando vengono salvate nel registro di Windows (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions), non sono affatto crittografate. Chiunque conosca l'algoritmo utilizzato per l'offuscamento può accedere alle credenziali.

Poiché il codice sorgente di WinSCP è disponibile su GitHub, siamo riusciti a trovare l'algoritmo di offuscamento. Abbiamo utilizzato uno strumento che implementava lo stesso algoritmo per de-offuscare le credenziali e abbiamo ottenuto l'accesso alle credenziali in chiaro.

L'implementazione di un algoritmo di offuscamento per proteggere le credenziali archiviate non è una buona pratica, in quanto può essere facilmente annullata e portare al furto delle credenziali.

Robomongo: non una chiave segreta

Robomongo (ora Robo 3T) è un client MongoDB utilizzato per connettersi ai server di database Mongo. Quando salvi le tue credenziali, queste vengono crittografate e salvate in un file robot3t.json file JSON. Anche la chiave segreta utilizzata per crittografare le credenziali viene salvata localmente, in chiaro, in un file a robot3t.key file.

Ciò significa che un utente malintenzionato che ottiene l'accesso a una macchina può utilizzare la chiave salvata in chiaro per decrittografare le credenziali.

Abbiamo esaminato il codice sorgente di Robomongo su GitHub per capire come viene utilizzata la chiave per crittografare la password e abbiamo appreso che utilizza la libreria SimpleCrypt di Qt. Sebbene Robomongo utilizzi la crittografia per archiviare in modo sicuro le credenziali, il fatto che la chiave segreta sia salvata in chiaro non è una buona pratica. Gli aggressori potrebbero potenzialmente leggerlo, perché qualsiasi utente con accesso alla workstation può decrittografare le credenziali. Anche se le informazioni sono codificate in un modo che gli esseri umani non possono leggere, alcune tecniche potrebbero determinare quale codifica viene utilizzata, quindi decodificare le informazioni.

MobaXterm: decifrare la password

MobaXterm è un potente strumento per connettersi a macchine remote utilizzando vari protocolli come SSH, Telnet, RDP, FTP e così via. A un utente che desidera salvare le credenziali all'interno di MobaXterm verrà chiesto di creare una password principale per proteggere i propri dati sensibili. Per impostazione predefinita, MobaXterm richiede la password principale solo su un nuovo computer.

Ciò significa che la password principale viene salvata da qualche parte e MobaXterm la recupererà per accedere alle credenziali crittografate. Abbiamo utilizzato Procmon dalla Sysinternals Suite per mappare tutte le chiavi di registro e i file a cui accede MobaXterm e abbiamo trovato la password principale salvata nel registro di Windows (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM). Le credenziali e le password vengono salvate rispettivamente nelle chiavi di registro C e P.

Inizialmente, non siamo stati in grado di decrittografare la password principale, che è stata crittografata tramite DPAPI. Alla fine abbiamo capito che i primi 20 byte DPAPI, che sono sempre gli stessi quando si utilizza DPAPI, erano stati rimossi. Quando abbiamo aggiunto i primi 20 byte, siamo stati in grado di decrittografare il codice DPAPI per ottenere l'hash SHA512 della password principale. Questo hash viene utilizzato per crittografare e decrittografare le credenziali.

Qui, la chiave di crittografia utilizzata per archiviare in modo sicuro le credenziali viene salvata utilizzando DPAPI. Ciò significa che solo l'utente che ha salvato le credenziali può accedervi. Tuttavia, anche un utente con accesso di amministratore o un utente malintenzionato che ottiene l'accesso alla sessione della vittima può decrittografare le credenziali memorizzate sulla macchina.

Conosci i rischi

Sviluppatori, DevOps e IT utilizzano vari strumenti per connettersi a macchine remote e gestire questi dettagli di accesso. I fornitori devono archiviare queste informazioni sensibili nel modo più sicuro. Tuttavia, la crittografia è sempre sul lato client e un utente malintenzionato può replicare il comportamento dello strumento per decrittografare le credenziali.

Come sempre, non esiste una soluzione magica in grado di risolvere tutti i problemi che abbiamo discusso qui. Le organizzazioni potrebbero, tuttavia, iniziare esaminando i servizi che stanno attualmente utilizzando. Possono costruire una matrice di rischio accurata ed essere meglio preparati per le violazioni dei dati avendo una comprensione più approfondita dei tipi di dati sensibili e delle credenziali che stanno archiviando.

Timestamp:

Di più da Lettura oscura