Aggiornamento del 19.05.2016
I server di TeslaCrypt chiudono e gli sviluppatori hanno rilasciato la master key utile per decriptare i dati da tutte le versioni di TeslaCrypt. Per maggiori informazioni potete cliccare QUI
Nell'articolo Ransomware Ransom32 ho già parlato di ransomware: un tipo di malware che prende il controllo del sistema (bloccandone l'accesso e/o cifrandone i dati) e richiede un riscatto per lo sblocco.
In quest'articolo tratterò un altro tipo di ransomware piuttosto diffuso, TeslaCrypt , soffermandomi sul recupero dei dati cifrati
Le prime segnalazioni di questo ransomware risalgono a febbraio 2015. Il punto debole delle prime versioni di TeslaCrypt era la gestione della chiave di cifratura. La chiave, infatti, veniva memorizzata sul disco del sistema infetto rendendo relativamente semplice il recupero dei dati. Le successive versioni del ransomware, oltre all'utilizzo di una cifratura più sofisticata (le chiavi vengono generate tramite l’algoritmo a curve ellittiche ECDH Elliptic curve Diffie–Hellman), presentano alcun accorgimenti che prevengono l’identificazione dei server a cui il malware si connette (server di comando e controllo). I server si trovano sulla rete TOR e il ransomware comunica con essi attraverso tor2web.
In linea generale il modo di operare di TeslaCrypt è analogo a quello della maggior parte degli altri ransomware in circolazione: una volta installato segretamente sul sistema della vittima procede a cifrare i dati con il sistema AES. Il ransomware viene diffuso attraverso allegati alle email oppure tramite apposite pagine web. Dopo aver cifrato un file il ransomware aggiunge una nuova estensione che varia in base alla versione del malware (.xxx, .ttt, .abcor, .micro, .ecc, .ezz, .exx, .xyz, .zzz, .aaa, .abc, .ccc, .vvv) inoltre provvede a cancellare le copie Shadow Volume e i punti di ripristino. Una volta terminata la cifratura dei documenti della vittima viene mostrato il messaggio di riscatto e vengono creati i seguenti file sul desktop e in altre cartelle: Howto_Restore_FILES.BMP, Howto_Restore_FILES.HTM, Howto_Restore_FILES.TXT. Questi 3 file contengono informazioni su come pagare il riscatto per poter recuperare i dati.
Sono state individuate e analizzate diverse varianti in circolazione di TeslaCrypt, la maggior parte di esse creano un file eseguibile all'interno di %AppData% (ad es. c:\Utenti\<nomeutente>\Appdata\Roaming\<nome file.exe>) mentre le chiavi di registro che vengono modificate sono
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ Qui dovrebbe esserci un richiamo al file .exe in %AppData%
HKCU\Software\
HKCU\Software\xxxsys
Le estensioni dei file interessate da TeslaCrypt sono:
.sql, .mp4, .7z, .rar, .m4a, .wma, .avi, .wmv, .csv, .d3dbsp, .zip, .sie, .sum, .ibank, .t13, .t12, .qdf, .gdb, .tax, .pkpass, .bc6, .bc7, .bkp, .qic, .bkf, .sidn, .sidd, .mddata, .itl, .itdb, .icxs, .hvpl, .hplg, .hkdb, .mdbackup, .syncdb, .gho, .cas, .svg, .map, .wmo, .itm, .sb, .fos, .mov, .vdf, .ztmp, .sis, .sid, .ncf, .menu, .layout, .dmp, .blob, .esm, .vcf, .vtf, .dazip, .fpk, .mlx, .kf, .iwd, .vpk, .tor, .psk, .rim, .w3x, .fsh, .ntl, .arch00, .lvl, .snx, .cfr, .ff, .vpp_pc, .lrf, .m2, .mcmeta, .vfs0, .mpqge, .kdb, .db0, .dba, .rofl, .hkx, .bar, .upk, .das, .iwi, .litemod, .asset, .forge, .ltx, .bsa, .apk, .re4, .sav, .lbf, .slm, .bik, .epk, .rgss3a, .pak, .big, wallet, .wotreplay, .xxx, .desc, .py, .m3u, .flv, .js, .css, .rb, .png, .jpeg, .txt, .p7c, .p7b, .p12, .pfx, .pem, .crt, .cer, .der, .x3f, .srw, .pef, .ptx, .r3d, .rw2, .rwl, .raw, .raf, .orf, .nrw, .mrwref, .mef, .erf, .kdc, .dcr, .cr2, .crw, .bay, .sr2, .srf, .arw, .3fr, .dng, .jpe, .jpg, .cdr, .indd, .ai, .eps, .pdf, .pdd, .psd, .dbf, .mdf, .wb2, .rtf, .wpd, .dxg, .xf, .dwg, .pst, .accdb, .mdb, .pptm, .pptx, .ppt, .xlk, .xlsb, .xlsm, .xlsx, .xls, .wps, .docm, .docx, .doc, .odb, .odc, .odm, .odp, .ods, .odt
Come rimuovere il ransomware
TeslaCrypt potrebbe infiltrare e installare altri virus all'interno del sistema. Prima di tentare il recupero dei dati è necessario rimuovere il ransomware. Per rimuoverlo è possibile eseguire la scansione del sistema con un antivirus aggiornato. Un buon alleato in questi casi è un antivirus con cui eseguire il boot del sistema come Kaspersky Rescue Disk che è possibile scaricare da QUESTA PAGINA. Scaricata l'immagine è possibile masterizzarla su CD\DVD oppure creare una pendrive bootable tramite il tool rescue2USB. Eseguendo il boot con Kaspersky Rescue Disk è possibile fare in modo che l'antivirus scarichi automaticamente da internet gli aggiornamenti prima di procedere alla scansione dell'intero sistema.
Terminata la scansione ed eliminati eventuali virus trovati, avviare il sistema in modalità provvisoria quindi installare ed eseguire una scansione con una versione di Malwarebytes e/o SpyHunter aggiornata.
Recupero Dati
Per decifrare i dati è necessario recuperare la PrivateKeyBC (Chiave privata usata da TeslaCrypt come master key). Prima di poter risalire alla PrivateKeyBC è necessario ricavare SharedSecretBC (chiave calcolata tramite PrivateKeyBC, PublicKeyBC e TeslaPublicKey) e PublicKeyBC (chiave pubblica relativa all'indirizzo bitcoin). Riporto di seguito i passaggi necessari al recupero della PrivateKeyBC.
Passo 1: Procurarsi i tool TeslaDecoder e Yafu
La prima operazione da fare è quella di procurarsi i tools necessari: TeslaDecoder e Yafu. I tool possono essere scaricati dai seguenti link:
TeslaDecoder
Yafu
I file sono compressi (.zip) quindi è necessario procedere alla loro estrazione. Se si dispone già di questi tool è consigliabile riscaricarli in modo da essere sicuri di utilizzare l'ultima versione disponibile.
I seguenti passaggi vengono indicati anche, in inglese, all'interno del file Instructions.html fornito insieme a TeslaDecoder (sviluppato da BloodDolly di BleepingComputer).
Passo 2: Eseguire TeslaViewer per estrarre PublicKeyBC e SharedSecret1*PrivateKeyBC
All'interno di TeslaDecoder troviamo 3 file eseguibili: TeslaDecoder.exe, TeslaRefactor.exe e TeslaViewer.exe. Eseguire TeslaViewer.exe, cliccare sul pulsante Browse e selezionare un file cifrato da TeslaCrypt.
TeslaViewer estrae dal file una serie di informazioni. I campi che ci interessano sono PublicKeyBC e SharedSecret1*PrivateKeyBC.
FIG 1 - TeslaViewer |
Passo 3: Fattorizzazione di SharedSecret1*PrivateKeyBC tramite factordb.com
Ora bisogna procedere alla fattorizzazione in numeri primi del valore decimale di SharedSecret1*PrivateKeyBC. L'operazione potrebbe richiedere molto tempo ma il sito Factordb.com ci viene incontro fornendoci numerosi valori pre-calcolati.
Apriamo il file Work.txt creato con TeslaViewer e copiamo il valore decimale di SharedSecret1*PrivateKeyBC
FIG 2 - Work.txt e SharedSecret1*PrivateKeyBC |
Se nella colonna Status troviamo il valore FF allora siamo fortunati e non ci resta che creare un file di testo e copiare i fattori all'interno del file (un fattore per riga). Può capitare che qualche fattore venga visualizzato come 5933269477...11<154> in questi casi dobbiamo cliccare sul fattore per visualizzare l'intero valore. Il numero tra parentesi angolari (154) indica il numero di cifre che compongono il valore. A questo punto possiamo passare al Passo 5.
Se, invece, nella colonna status, viene visualizzato il valore CF allora dobbiamo procedere in proprio alla fattorizzazione e proseguire con il Passo 4.
FIG 3 - factordb.com |
Se non siamo stati fortunati con il sito factordb.com dobbiamo procedere autonomamente alla fattorizzazione. L'operazione potrebbe richiedere molto tempo anche su PC potenti. Per la fattorizzazione utilizzeremo il tool Yafu che abbiamo scaricato nel Passo 1. Come prima cosa procediamo alla ottimizzazione del tool in base al nostro sistema. Eseguire tuneX86.bat (per sistemi a 32 bit) o tuneX64.bat (per sistemi a 64 bit) e attendere il termine dell'operazione. La procedura di ottimizzazione potrebbe richiedere un po' di tempo e al termine verrà visualizzato il messaggio Tune Finished.
FIG 4 - Ottimizzazione di Yafu: tuneX86 e tuneX64 |
Lanciare factorX86.bat (per sistemi a 32 bit) o factorX64.bat (per sistemi a 64 bit). Quando richiesto incollare il valore SharedSecret1*PrivateKeyBC copiato precedentemente e premere invio.
FIG 5 - FactorX86 e FactorX64: SharedSecret1*PrivateKeyBC |
FIG 6 - FactorX86 e FactorX64: Threads |
FIG 7 - FactorX86 e FactorX64: Risultati |
FIG 8 - Risultato Fattorizzazione |
Siamo quasi giunti al termine. Nella cartella TeslaDecoder avviamo il tool TeslaRefactor. Nella casella dove è indicato il messaggio <Put decimal factors here> incollare i valori forniti dalla fattorizzazione in numeri primi (quelli forniti da FactorDB.com oppure quelli calcolati tramite Yafu). Nel campo Public Key (hex) copiare il valore PublicKeyBC presente all'interno del file works.txt. Cliccare su Find Private Key per calcolare la chiave privata.
FIG 9 - TeslaRefactor |
FIG 10 - TeslaRefactor Private Key |
Passo 6: Decriptare i dati tramite TeslaDecoder
Ora che si dispone della chiave privata è possibile procedere a decriptare i propri file utilizzando TeslaDecoder. Avviare TeslaDecoder come amministratore (cliccare con il tasto destro del mouse su TeslaDecoder.exe e selezionare Esegui come amministratore).
FIG 11 - TeslaDecoder |
FIG 12 - TeslaDecoder Set key |
FIG 13 - TeslaDecoder cancellare i file criptati |
Conclusioni
Le raccomandazioni per evitare la perdita dei dati sono le solite: disporre di un buon antivirus e tenerlo sempre aggiornato, diffidare di siti ed email sospette, effettuare frequenti backup dei dati su più dispositivi esterni e non perennemente connessi al sistema. Per chi effettua il backup su cloud in genere i provider consentono di mantenere più "versioni" del file. In questi casi, se i file vengono crittografati da qualche ransomware, dovrebbe essere possibile recuperare una versione antecedente.
Se questo articolo vi è stato d'aiuto a recuperare i vostri dati e volete offrirmi un caffè, potete utilizzare l'apposito link delle donazioni (le transazioni vengono gestite da paypal).
Aggiornamento del 05.02.2016
Al momento per i file cifrati da TeslaCrypt 3 aventi estensione .ttt, .xxx, .micro e .mp3 non esiste un metodo per estrarre la chiave dato che viene utilizzato un algoritmo diverso. Chi è stato colpito da tale variante di TeslaCrypt può effettuare un backup dei file cifrati in attesa che venga trovata una soluzione. Il tool TeslaDecoder è in continuo aggiornamento. Il ransomware può comunque essere rimosso seguendo i passaggi indicati nell'articolo. Provvederò ad aggiornare il presente articolo nel caso venga trovato il metodo per recuperare i dati cifrati da questa variante del ransomware.
Aggiornameno del 15.02.2016
Una nuova variante di TeslaCrypt 3.0 rinomina il file con estensione .mp3.
Aggiornamento del 18.03.2016
Ancora una brutta notizia. Non è stata trovato ancora alcun modo per decriptare i file con estensione .micro e .mp3 e, dal giorno 14.03.2016, si sta diffondendo una nuova versione di TeslaCrypt: TeslaCrypt 4.0. In quest'ultima versione i file vengono cifrati ma l'estensione non viene modificata. Tale comportamento renderà difficile riconoscere a colpo d'occhio i file cifrati sul disco. In questa nuova versione del ransomware, inoltre, è stato corretto un BUG che corrompeva i file con grandezza superiore ai 4GB. Il file eseguibile del ransomware viene creato in
%UserProfile%\Documenti\[caratteri_alfanumerici_random].exe
Le chiavi di registro coinvolte sono
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\_[caratteri_alfanumerici_random]
HKEY_CURRENT_USER\Software\
HKEY_CURRENT_USER\Software\Data
Aggiornamento del 26.04.2016
Da circa una settimana è in circolazione una nuova variante di TeslaCrypt: TeslaCrypt 4.1b.
Anche questa a nuova variante del ransomware è stata analizzata da BloodDolly di BleepingComputer e presenta alcune piccole modifiche rispetto alle versioni precedenti:
Il file di dati ora risulta %MyDocuments%\desctop._ini
Il file contentente le istruzioni ha una dimensione leggermente superiore rispetto alle versioni precedenti del ransomware.
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Txt
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Htm
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Png
%UserProfile%\Documents\-!recover!-!file!-.txt
L'eseguibile del ransomware viene creato con un nome random in Documenti:
%UserProfile%\Documents\[caratteri casuali].exe
Una volta che TeslaCrypt ha terminato la cifratura dei dati, contatta il server di comando e controllo inviando un messaggio di POST criptato:
Sub=Ping&dh=[PublicKeyRandom1_octet|AES_PrivateKeyMaster]&addr=[bitcoin_address]&size=0&version=4.1b&OS=[build_id]&ID=[?]&inst_id=[victim_id]
Anche in questa ultima versione ai file cifrati non viene aggiunta alcuna estensione.
Aggiornamento 04.05.2016
L'utente BloodDolly di BleepingComputer ha individuato e analizzato una nuova versione di TeslaCrypt: siamo alla versione 4.2. La nuova versione apporta alcuna piccole modifiche. Il messaggio che compare all'utente è stato modificato e vengono visualizzate solo le informazioni essenziali per procedere al pagamento del riscatto. Il codice è stato ottimizzato e compilato utilizzando un compilatore diverso da quello utilizzato nelle versioni precedenti del ransomware. La nuova versione di TeslaCrypt esegue l'injection code in svchost.exe per poter eliminare le copie shadow (operazione che viene eseguita sia prima che dopo aver cifrato i dati).
I file creati da TeslaCrypt 4.2 sono
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.HTML
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.PNG
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.TXT
%UserProfile%\Documents\-!recover!-!file!-.txt
%UserProfile%\Documents\[random].exe
Il ransomware provvede a modificare la seguente chiave di registro per avviarsi ad ogni logon
[HKCU\Software\Microsoft\Windows\CurrentVersion\Run] serv[5 caratteri random] C:\Windows\SYSTEM32\CMD.EXE /C START "" "[malware].exe"