Un bel giorno (o notte, chi sa?) un programmatore qualunque si è svegliato con la voglia di esercitarsi sul linguaggio C e magicamente ne ha tirato fuori un potentissimo tool che sfrutta varie vulnerabilità di Windows. Dalla documentazione ufficiale:

<<It's well known to extract plaintexts passwords, hash, PIN code and kerberos tickets from memory.>>

Il tool sfrutta a pieno il potenziale del linguaggio C per andare a leggere proprio a livello fisico le celle di memoria della RAM e manipolare i token di sistema, le autorizzazioni, i certificati, le credenziali etc. Si tratta di informazioni a cui gli ordinari applicativi non hanno permessi di accesso, ma che mimikatz riesce a recuperare intrufolandosi subdolamente nella RAM e leggendola byte per byte.

''''

L'exploit è completamente organizzato in moduli, ciascuno dei quali prevede i propri comandi per uno specifico campo di applicazione. Per questo motivo tutti i comandi lanciabili dal tool hanno la seguente forma: 

modulename::commandname arguments...    

Noi tratteremo solo qualche aspetto in particolare, ma come potete vedere i moduli sono davvero tanti e questo dovrebbe farci riflettere sul numero di vulnerabilità a cui il nostro sistema operativo è esposto:

Il primo comando da eseguire fa parte del modulo privilege, che come avrete intuito fornisce alcuni comandi per manipolare i privilegi sul processo di mimikatz.

mimikatz # privilege::debug

''''

Questo comando concede a mimikatz i privilegi di debug su processi a cui normalmente non avrebbe accesso.
 

Per rendere l'idea della potenza (= pericolosità) del tool, eseguiamo il comando:

sekurlsa::logonpasswords

Saranno sparate sul terminale tutte le password di logon Windows, che di fatto sono salvate in chiaro nella RAM, spazio di indirizzi in cui mimikatz sa navigare benissimo.

 

Il prossimo modulo da menzionare è sicuramente kerberos, che permette di giocare con le Microsoft Kerberos API e controllare il servizio che gestisce le chiavi e le autorizzazioni del sistema operativo. Se lanciate un generico kerberos:: comparirà la lista dei comandi disponibili:

''''

 

A proposito di sicurezza, lanciando un semplice

token::elevate

per ottenere i privilegi di sistema, e poi

lsadump::sam

sarà possibile fare un dump, quindi una fotografia, del file SAM (Security Account Manager) dove sono memorizzati gli hash delle credenziali per ogni utente, pronti per essere craccati, magari con le Rainbow Tables.
 

Per non farci mancare nulla mimikatz dispone anche del modulo process che consente di manipolare a proprio piacimento tutti i processi di sistema:

''''

 

Giusto per avere una dimostrazione tangibile del fatto che mimikatz riesca a leggere attivamente tutte le celle della memoria volatile del sistema, se aprite una partita di Prato Fiorito e contestualmente lanciate

minesweaper::infos

avrete una mappatura in tempo reale del vostro prato di gioco, ammirevole!

 

Beh, se vi state annoiando al solo pensiero di essere esposti a così tante vulnerabilità, potete sempre farvi un buon caffè:

mimikatz # coffee

Tags