mercoledì 27 gennaio 2016

Ransomware TeslaCrypt

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.exeEseguire 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.

TeslaViewer
FIG 1 - TeslaViewer
Cliccare sul pulsante Create work.txt per salvare tutte le informazioni all'interno del file di testo work.txt (il file di testo verrà creato all'interno della stessa cartella contenente TeslaViewer.exe).

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

Work.txt e SharedSecret1*PrivateKeyBC
FIG 2 - Work.txt e SharedSecret1*PrivateKeyBC
Quindi posizioniamoci sul sito Factordb.com, incolliamo nell'apposita casella il valore copiato e clicchiamo su Factorize!
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.
factordb.com
FIG 3 - factordb.com
Passo 4: Fattorizzazione di SharedSecret1*PrivateKeyBC tramite Yafu
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.

Ottimizzazione di Yafu: tuneX86 e tuneX64
FIG 4 - Ottimizzazione di Yafu: tuneX86 e tuneX64
Terminata l'ottimizzazione, aprire il file works.txt e copiare il valore decimale di  SharedSecret1*PrivateKeyBC come indicato nel Passo 3.
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.
FactorX86 e FactorX64: SharedSecret1*PrivateKeyBC
FIG 5 - FactorX86 e FactorX64: SharedSecret1*PrivateKeyBC
A questo punto viene richiesto quanti thread si intende impiegare per il calcolo della fattorizzazione. Il numero di Thread del proprio sistema può essere visualizzato da Task Manager. Si consiglia di specificare il numero di processori logici -1 (ad es. se si dispone di una CPU dual core con 4 processori logici si consiglia di indicare 3) in modo tale da non bloccare la postazione. La fattorizzazione può richiedere molto tempo (anche giorni) a seconda della potenza del sistema e del numero da fattorizzare.
FactorX86 e FactorX64: Threads
FIG 6 - FactorX86 e FactorX64: Threads
Al termine vengono visualizzati i risultati come indicato in figura FIG 7. 
FactorX86 e FactorX64: Risultati
FIG 7 - FactorX86 e FactorX64: Risultati
Copiare tutti i fattori e incollarli all'interno di un file di testo.
Risultato Fattorizzazione
FIG 8 - Risultato Fattorizzazione
PASSO 5: TeslaRefactor
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.
TeslaRefactor
FIG 9 - TeslaRefactor
Al termine dell'operazione prendiamo nota della chiave privata, Private key (hex), che ci servirà per decriptare i dati.
TeslaRefactor Private Key
FIG 10 - TeslaRefactor Private Key
Nel caso in cui sorgessero problemi nel calcolo della chiave privata, confrontare i valori dei campi Product (dec) e Product (Hex) con i rispettivi valori di SharedSecret1*PrivateKeyBC all'interno del file work.txt. Se i valori corrispondono allora togliere il flag alla voce Optimization e cliccare nuovamente sul pulsante Find 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).
TeslaDecoder
FIG 11 - TeslaDecoder
Cliccare sul pulsante Set key. Verrà aperta la finestra Set custom key for decryption (vedi FIG 12). Nel campo Key (hex) specificare la chiave privata recuperata precedentemente e in Extension selezionare l'estensione dei file cifrati che si intende recuperare quindi cliccare su Set key per ritornare alla schermata precedente.
TeslaDecoder Set key
FIG 12 - TeslaDecoder Set key
Ritornando alla schermata precedente noteremo che i pulsanti Decrypt Folder e Decrypt All sono abilitati. Il primo ci consente di agire su una specifica cartella e relative sottocartelle, il secondo, invece, esegue una verifica sull'intero sistema recuperando i file cifrati. Prima di procedere ci viene richiesto se eliminare o mantenere la copia cifrata del file (se abbiamo dati importanti conviene tenere anche la versione cifrata del nostro file nel caso in cui l'operazione non sia riuscita a recuperare correttamente il suo contenuto).
TeslaDecoder cancellare i file criptati
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"



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

martedì 26 gennaio 2016

CrashSafari.com il link che manda in crash il browser

Da poche ore è attivo il sito web CrashSafari.com creato da un giovane programmatore statunitense che riesce a mandare in tilt diversi browser. A dispetto del nome, infatti, il sito riesce a mandare in crash non solo il browser Safari ma anche Chrome, Firefox e Internet Explorer/Edge.

I dispositivi più vulnerabili al bug sono quelli Apple in particolare iPhone e iPad. Visitando il sito con tali dispositivi, infatti, si può riscontrare un aumento di temperatura, il blocco del browser e potrebbe verificarsi il riavvio del sistema (cosa che non avviene sui dispositivi Android). Il bug risulta presente anche nelle ultime release dei sistemi operativi Apple iOS 9.2.1 e OS X 10.11.3.

In queste ore molti, soprattutto tramite social network, stanno inviando ad altri utenti i link al sito web CrashSafari.com per mandare in crash i dispositivi/PC. Per nascondere l'indirizzo che sarebbe troppo riconoscibile e sospetto, molti utilizzano i servizi di abbreviazione degli URL come https://goo.gl/, https://bitly.com/ e http://tinyurl.com/
Quindi prestare attenzione prima di aprire i collegamenti inviati da amici e non.

Come funziona il CrashSafari.com
Il codice che c'è dietro il sito CrashSafari.com è molto semplice e consiste in un Header Title e poche righe di JavaScript che richiamano, in un loop, la funzione history.pushState di HTML5. Tale funzione permette ad un sito web di cambiare l'URL della pagina senza che l'utente debba premere il tasto di aggiornamento. Il loop aggiunge migliaia di caratteri alla barra degli indirizzi fino ad esaurire la memoria del dispositivo/PC mandando in crash il browser e in alcuni casi l'intero sistema.



CrashSafari.com codice
FIG 1 - CrashSafari.com codice

Il bug, seppur fastidioso, non compromette la sicurezza del sistema (che sia esso uno smartphone, un tablet o un PC): dopo il riavvio o dopo la chiusura del browser, il sistema continuerà a funzionare regolarmente.
Al momento non ci sono soluzioni ma si può solamente attendere che vengano rilasciati gli aggiornamenti dei vari browser e nel frattempo prestare attenzione ai link che si ricevono.

In FIG 1 è possibile visualizzare il codice della pagina del sito CrashSafari.com. Per quelli che vogliono scaricare il codice possono cliccare sul seguente link
DOWNLOAD

giovedì 21 gennaio 2016

Windows Quick Tip: Clonare una pendrive

Clonare una pendrive, soprattutto se contiene un Sistema Operativo avviabile da supporto USB, potrebbe non essere un'operazione così semplice. 
Le pendrive, infatti, pur utilizzando file system analoghi a quelli degli Hard Disk e unità SSD richiedono ulteriori accorgimenti dato che utilizzano diverse versioni di Host controller Interface(come OHCI, UHCI, EHCI).  I programmi per la clonazione dei dischi potrebbero non portare a termine correttamente l'operazione in particolare se la pendrive viene clonata su un modello diverso. Tentando la clonazione di una pendrive con i classici programmi utilizzati per gli hard disk potremmo avere la sensazione che l'operazione sia andata a buon fine (non ricevendo alcun messaggio di errore) ma avere problemi con la pendrive clonata (ad es. il mancato avvio da boot).

Per la clonazione delle USB MSC (Mass Storage Class) esistono delle utility appositamente progettate come imageUSB di PassMark.
Il tool può essere scaricato gratuitamente da http://www.osforensics.com/tools/write-usb-images.html e non necessita di installazione.

Una volta lanciato il tool:
  • Inserire la pendrive nella porta USB e selezionarla nel riquadro STEP 1: Select the USB drive(s) to be processed (se non appare, cliccare sul pulsante Refresh Drivers)
  • Nella sezione Step 2: Select the action to be performed on the selected USB drive(s) selezionare l'opzione Create image from USB drive 
  • In Step 3: Select the location for the binary image file (.bin) that will be created from the USB drive(s) indicare il percorso e il nome da assegnare al file .bin che andrà a contenere l'immagine della pendrive
  • In Step 4: Click the 'Create' button to begin... cliccare sul pulsante Create per avviare il processo

Passmark imageUSB avvio creazione immagine
FIG 1 - Passmark imageUSB avvio creazione immagine

una volta terminata la creazione dell'immagine della pendrive è possibile ripristinarla anche su una pendrive di modello diverso:
  • Inserire la pendrive su cui si intende ripristinare l'immagine
  • In Step 1: Select the USB drive(s) to be processed selezionare la pendrive
  • In Step 2: Select the action to be performed on the selected USB drive(s) selezionare l'opzione Write image to USB drive
  • Nella sezione Step 3: Select the image (.bin, .img or .iso) file to write to the USB drive(s) cliccare sul pulsante Browse e selezionare il file immagine che si intende ripristinare (ad es. il file con estensione .bin che abbiamo creato precedentemente)
  • In Step 4: Click the 'Write' button to begin cliccare sul pulsante Write per avviare il processo

Passmark imageUSB avvio scrittura immagine su pendrive
FIG 2 - Passmark imageUSB avvio scrittura immagine su pendrive

Terminata la scrittura avremo il clone funzionante della pendrive. Dallo stesso file immagine possiamo creare un numero arbitrario di cloni della pendrive di origine.

mercoledì 20 gennaio 2016

Windows Quick Tip: Estensione file rovesciata

Un trucco utilizzato dai malintenzionati per diffondere virus/malware, sfrutta la capacità di Windows di visualizzare testi in lingue sinistrorse (scritte da destra verso sinistra). Per la gestione di tali lingue viene utilizzato un carattere speciale nel sistema Unicode: carattere con codice U+202E. Si tratta di un carattere speciale Unicode invisibile che forza la scrittura da destra verso sinistra. Tale carattere può essere utilizzato per ingannare la vittima sull'estensione del file e far passare un eseguibile per un comune e innocuo file di testo. 
Vediamo come:
  • Premere la combinazione di tasti WIN + R e digitare charmap seguito da invio;
    Mappa caratteri
    FIG 1 - Mappa caratteri
  • Individuare il carattere con codice U+202E;
  • Cliccato sul carattere procediamo a copiarlo negli appunti cliccando prima Seleziona e poi Copia
  • Incollare il carattere nel nome del file nella posizione in cui vogliamo invertire il testo

Ad es.
Supponiamo di aver creato un file eseguibile (.exe) e vogliamo che la vittima lo confonda con un documento PDF.
Rinominiamo il file in qualcosa di simile a "Documentofdp.exe" (come è possibile notare l'estensione PDF è stata scritta al contrario)
 Rinomina file eseguibile
FIG 2 - Rinomina file eseguibile

Incolliamo il carattere U+202E prima di fdp.exe ed ecco che il nostro file apparirà con il nome Documentoexe.pdf
Incollare il carattere UNICODE U+202E
FIG 3 - Incollare il carattere UNICODE U+202E

Tentando di rinominare un file che all'interno del nome contiene il carattere U+202E o tentando di visualizzarlo da una finestra del prompt dei comandi ci si rende conto subito che c'è qualcosa che non va e si scopre la reale estensione del file.


Rinominando il file contenente il carattere U+202E
FIG 4 - Rinominando il file contenente il carattere U+202E
Visualizzare l'estensione di un file contenente il carattere U+202E da prompt dei comandi
FIG 5 - Visualizzare l'estensione di un file contenente il carattere U+202E da prompt dei comandi



martedì 19 gennaio 2016

Windows Quick Tip: Cambiare lo sfondo di Windows Media Player in Windows 7

Windows Media Player incluso in Windows 7 nasconde 6 diversi sfondi. É possibile cambiare il wallpaper di Windows Media Player agendo tramite il registro di sistema:
  • Avviare l'editor del registro di sistema (WIN+R e digitare regedit seguito da invio);
  • Posizionarsi su 
    HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences
  • Cercare il valore DWORD (32bit) denominato LibraryBackgroundImage e assegnargli un valore compreso tra 1 e 6 (6 è il valore di default).
Modificare lo sfondo di Windows Media Player modificando il valore LibraryBackgroundImage
FIG 1 - Modificare lo sfondo di Windows Media Player modificando il valore LibraryBackgroundImage

Una volta confermato il valore cliccando su OK basta riavviare Windows Media Player per visualizzare il nuovo wallpaper.

Windows 10: Abilitare il tasto F8 per accedere alle Opzioni di avvio avanzate

Già a partire da Windows 8, Microsoft ha introdotto un nuovo bootloader che rende l'avvio del sistema più veloce ma è stata eliminata la possibilità di accedere alle opzioni di avvio avanzate premendo, al boot, il tasto F8. 

Se si intende riattivare la possibilità di accedere alle Opzioni di avvio avanzate premendo il tasto F8 all'avvio è possibile procedere in 2 modi: abilitare il tasto F8 tramite il comando bootmenupolicy oppure abilitare il Windows boot manager utilizzando il comando displaybootmenu.

Abilitare/Disabilitare il tasto F8 tramite il comando bootmenupolicy

Nel caso in cui abbiamo più versioni di Windows installate in multiboot questa opzione ci consente di specificare su quale sistema operativo abilitare F8 per l'accesso alle Opzioni di avvio avanzate.
Per identificare su quale sistema operativo abilitare F8 al boot:
  • Avviare il prompt dei comandi come amministratore: Premere la combinazione di tasti Win + X quindi selezionare la voce Prompt dei comandi (amministratore)
  • digitare il seguente comando seguito da invio bcdedit
  • Nella sezione Windows Boot manager individuare la voce default e verificare il suo valore (che rappresenta il sistema caricato di default)
  • In Caricatore di avvio di Windows individuare il sistema su cui vogliamo attivare il tasto F8 e prendiamo nota del relativo campo identificatore (che verrà utilizzato nei successivi comandi bcdedit per abilitare/disabilitare il tasto F8).


In figura entrambi i valori sono {current}  in quanto abbiamo un solo sistema operativo installato.

Per abilitare il tasto F8:
  • Avviare il prompt dei comandi come amministratore: Premere la combinazione di tasti Win + X quindi selezionare la voce Prompt dei comandi (amministratore)
  • Digitare il seguente comando seguito da invio 
    bcdedit /set {current} bootmenupolicy Legacy 
    se l'operazione va a buon fine  appare il messaggio Operazione completata e al successivo riavvio potremmo accedere alle opzioni di avvio avanzate di Windows premendo il tasto F8
Per disabilitare il tasto F8:
  • Avviare il prompt dei comandi come amministratore: Premere la combinazione di tasti Win + X quindi selezionare la voce Prompt dei comandi (amministratore)
  • Digitare il seguente comando seguito da invio 
    bcdedit /set {current} bootmenupolicy Standard 


Abilitare/Disabilitare Windows boot manager tramite il comando displaybootmenu

Con questa seconda opzione in realtà andremo ad abilitare il Windows boot manager e non direttamente il tasto F8. Abilitando il Windows boot manager ad ogni avvio verrà proposta la schermata di FIG 1 in cui è possibile selezionare il sistema operativo da avviare oppure, premendo F8, accedere alle impostazioni di avvio (FIG 2) che consentono di avviare il sistema in modalità provvisoria tramite la pressione del tasto F4
Windows 10: Windows Boot Manager
FIG 1 - Windows 10: Windows Boot Manager



Windows 10: Impostazioni di avvio
FIG 2 - Windows 10: Impostazioni di avvio

Per abilitare Windows boot manager:
  • Avviare il prompt dei comandi come amministratore: Premere la combinazione di tasti Win + X quindi selezionare la voce Prompt dei comandi (amministratore)
  • digitare il seguente comando seguito da invio 
    bcdedit /set {bootmgr} displaybootmenu yes 
    se l'operazione va a buon fine  appare il messaggio Operazione completata 
Per disabilitare Windows boot manager:
  • Avviare il prompt dei comandi come amministratore: Premere la combinazione di tasti Win + X quindi selezionare la voce Prompt dei comandi (amministratore)
  • digitare il seguente comando seguito da invio
    bcdedit /set {bootmgr} displaybootmenu no 











lunedì 18 gennaio 2016

MS Exchange: Eseguire la pulizia/sincronizzazione dei DAG tramite EMS in MS Exchange 2013-2016

Nell'articolo MS Exchange: Eseguire la pulizia/sincronizzazione dei DAG tramite EMS in MS Exchange 2007-2010 abbiamo visto come forzare la sincronizzazione dei DAG con le informazioni aggiornate presenti in Active Directory utilizzando il cmdlet Clean-MailboxDatabase, evitando di dover attendere l'esecuzione della manutenzione schedulata.

In MS Exchange 2013 e 2016 il problema della visualizzazione tramite GUI delle caselle disconnesse è ancora presente ma il cmdlet Clean-MailboxDatabase non esiste più: il cmdlet è stato sostituito da Update-StoreMailboxState.

A differenza di Clean-MailboxDatabase che agiva su un intero database, il cmdlet Update-StoreMailboxState ci consente di operare anche su una singola casella.

La sintassi è la seguente:
Update-StoreMailboxState -Database "DatabaseIdParameter" -Identity "StoreMailboxIdParameter" [-Confirm [SwitchParameter]] [-WhatIf [SwitchParameter]]

Dove entrambi i parametri -Database e -Identity sono obbligatori pertanto è necessario conoscere il MailboxGUID.

Per conoscere il MailboxGuid delle caselle è possibile eseguire il seguente comando da EMS:
Get-MailboxDatabase | Get-MailboxStatistics | Format-List DisplayName,MailboxGuid,Database,DisconnectReason,DisconnectDate

A questo punto, conoscendo il MailboxGUID, possiamo aggiornare le informazioni/stato di una singola mailbox tramite Update-StoreMailboxState:
Update-StoreMailboxState -Database <DatabaseIdParameter> -Identity <StoreMailboxIdParameter>
ad es.
Update-StoreMailboxState -Database DAG01 -Identity 99ee9ee9-85ee-999-e9ee-9999999e9e9e

Se intendiamo aggiornare tutte le mailbox presenti su un particolare database:
Get-MailboxStatistics -Database <nome_database> | ForEach {Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$False}
ad es.
Get-MailboxStatistics -Database DAG01 | ForEach {Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$False}

Se si intende aggiornare lo stato per tutte le mailbox disconnesse di un particolare database:
Get-MailboxStatistics -Database <nome_database> | Where {$_.DisconnectReason -ne $null } | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$False}

Per agire su tutte le caselle disconnesse dell'infrastruttura:
Get-MailboxServer | Get-MailboxDatabase | Where {$_.DisconnectReason -ne $null } | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$False}

venerdì 15 gennaio 2016

Ransomware Ransom32

Il ransomware è un tipo di malware che una volta eseguito sul sistema della vittima ne prende il controllo (impedendone l'accesso o cifrando i dati) e chiede un riscatto per rimuovere la limitazione. Uno dei primi ransomware ad avere grande diffusione è stato Cryptolocker che provvedeva a cifrare i dati dell'utente e a richiedere un riscatto. Nel corso del tempo si sono viste varianti sempre più sofisticate alcune delle quali utilizzano chiavi di crittografia asimmetriche RSA a 2.048 o 4.096 bit generate dinamicamente e memorizzano le chiavi di decodifica su server remoti.

In questi primi giorni del 2016 si sta diffondendo un nuovo ransomware chiamato Ransom32. Il malware è stato analizzato approfonditamente da Fabian Wosar, esperto di sicurezza di Emsisoft.
Ransom32 può essere creato/scaricato attraverso un sito raggiungibile tramite TOR. Ransom32, infatti, non è solo un malware ma rappresenta un vero è proprio servizio (RaaS - Ransomware as a Service) che consente di generare il proprio malware. Il servizio fornito è semplice ed efficace: chiunque può creare la propria copia personalizzata del ransomware purché disponga di un indirizzo bitcoin (indirizzo che dovrebbe essere utilizzato dalla vittima per pagare il riscatto). Gli sviluppatori di Ransom32 guadagnano prelevando, da ogni riscatto pagato, il 25%.

La peculiarità di questo ransomware sta nel fatto che è stato interamente sviluppato utilizzando la piattaforma NW.js (conosciuta anche come Node.js) che consente agli sviluppatori di creare applicazioni native per Linux, Mac e Windows utilizzando HTML5, CSS3, Javascript a WebGL. L'utilizzo di tale piattaforma consente di creare un eseguibile Chromium che viene eseguito dal browser. Proprio questa caratteristica rende Ransom32 allo stesso tempo interessante e temuto: il ransomware può essere potenzialmente eseguito su diverse piattaforme (Linux, Mac e Windows).

Creazione e Download

Una volta raggiunto l'indirizzo del servizio RaaS tramite TOR (non fornisco l'indirizzo per ovvi motivi) è necessario affiliarsi fornendo il proprio indirizzo bitcoin e cliccare su Join.


Ransom32 - Join
FIG 1 - Ransom32 - Join
Eseguita la join ci si trova davanti alla propria console. Nella parte superiore della console (Ransom32 - Stats) vengono indicate le statistiche come il numero di installazioni del proprio client Ransom32, il numero di persone che visualizzano la schermata di blocco al termine della cifratura dei dati, il numero di transazioni bitcoin verso il proprio indirizzo (numero di pagamenti) e l'ammontare dei pagamenti. Nella parte inferiore della console (Client download)è possibile creare la propria versione di Ransom32 con impostazioni personalizzate.


Ransom32 - Stats
FIG 2 - Ransom32 - Stats
Le opzioni messe a disposizione dalla console per la creazione del proprio ransomware sono le seguenti:

BTC amount to ask:  Ammontare del riscatto espresso in bitcoin (BTC).

Fully lock the computer: Per default la schermata di blocco del ransomware viene visualizzata, se minimizzata, dopo un tot numero di secondi. Tale opzione permette di configurare la schermata di blocco in modo che la vittima non riesca a minimizzarla. Impedendo alla vittima di minimizzare la finestra gli si impedisce di poter verificare che i suoi dati siano stati effettivamente cifrati e inoltre la si costringe a cercare un'altro modo di pagare il riscatto dato che sulla postazione sarà impossibile utilizzare il browser.

Low CPU usage: I dati dell'utente verranno criptati utilizzando la CPU in modo moderato (al di sotto del 25%). Durante la cifratura dei dati la finestra di blocco non verrà visualizzata. Tale opzione allunga i tempi di completamento dell'operazione ma permette di non far insospettire la vittima con un rallentamento eccessivo del sistema.

Show the lockscreen before encrypting: Per default la schermata di blocco viene visualizzata dopo che una parte dei file è stata cifrata (file con dimensione inferiore ai 50MB) e continua a cifrare il resto dei dati in background. É possibile impostare che la schermata di blocco venga visualizzata prima che inizi il processo di cifratura.

Show a message Box: Questa opzione permette di impostare un messaggio che viene visualizzato prima dell'installazione e prima di qualsiasi timeout impostato (Latent Timeout).

Latent Timeout: Con questa opzione è possibile specificare un tempo di timeout che il client attende dopo la sua installazione prima di procedere alla cifratura dei dati e alla connessione al server. Il client non tenta di connettersi al server prima della scadenza del timeout impostato ma resta "dormiente" nel sistema (in questo caso l'installazione non sarà visibile da console fino a che il client non contatterà il server).

Una volta settate le impostazioni desiderate basta cliccare sul pulsante di download per scaricare la propria copia personalizzata di Ransom32. Il file consiste in un RAR autoestraibile (con estensione .SCR) di circa 22MB (scompattato occupa circa 67MB). 


Installazione e cifratura dati
Ransom32 tenta di mascherarsi come Chrome utilizzando il nome e l'icona del browser Google (ovviamente il file non è firmato digitalmente e mancano le informazioni relative alla versione).

Quando si esegue il file autoestraente, numerosi file vengono estratti in %userprofile%\AppData\Roaming\Chrome Browser e viene creato un collegamento (chiamato ChromeService) all'interno della cartella di Esecuzione automatica. Il collegamento viene utilizzato per eseguire il ransomware all'avvio del sistema e richiama il file chrome.exe: un package NW.js contenente codice Javascript che provvede a cifrare i dati dell'utente e a visualizzare i messaggi del ricatto.

I file estratti sono:
  • chrome - Licenza Chromium
  • chrome.exe - Eseguibile principale 
  • ffmpegsumo.dll - HTML5 video decoder DLL che viene fornito con Chromium.
  • g - File contenente le impostazioni del malware settate all'interno della console: indirizzo bitcoin, messaggio di errore, ecc 
  • icudtl.dat - File usato da Chromium
  • locales - Cartella contenente vari language packs usati da Chrome.
  • msgbox.vbs - Si tratta del messaggio che viene visualizzato nel caso il malintenzionato abbia settato "Show a message Box" nella console.
  • nw.pak - file richiesto dalla piattaforma NW.JS
  • rundll32.exe - Si tratta di un eseguibile TOR rinominato in modo da confondere gli utenti Windows. Attraverso tale file il malware comunica con il server utilizzando TOR.
  • s.exe - si tratta delle eseguibile Shortcut.exe di OptimumX rinominato. Si tratta di un eseguibile legittimo che viene utilizzato dal malware per creare il collegamento ChromeService all'interno della cartella Esecuzione Automatica
  • u.vbs - Si tratta di uno script VBS che provvede a cancellare una specifica cartella e il suo contenuto

Apertura del file .SCR in Winrar
FIG 3 - Apertura del file .SCR in Winrar
Lo script di WinRAR contenuto all'interno del file .SCR provvede ad estrarre i file in determinate cartelle e ad eseguire l'autorun del ransomware. All'interno dello scripto (si veda FIG 3) ci sono alcuni parametri:
Setup=chrome i  – Indica il file eseguibile da avviare al termine dell'estrazione (chrome.exe)
TempMode indica che i file vengono spostati in %TEMP% 
Silent=1 indica che l'installazione/estrazione dei file viene eseguita in modalità silente, senza la visualizzazione di messaggi


In dettaglio i file vengono estratti nelle seguenti cartelle
%Temp%\nw3932_17475
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\ChromeService.lnk
%AppData%\Chrome Browser\
%AppData%\Chrome Browser\.chrome\
%AppData%\Chrome Browser\.chrome\cached-certs
%AppData%\Chrome Browser\.chrome\cached-microdesc-consensus
%AppData%\Chrome Browser\.chrome\cached-microdescs
%AppData%\Chrome Browser\.chrome\cached-microdescs.new
%AppData%\Chrome Browser\.chrome\lock
%AppData%\Chrome Browser\.chrome\state
%AppData%\Chrome Browser\chrome
%AppData%\Chrome Browser\chrome.exe
%AppData%\Chrome Browser\ffmpegsumo.dll
%AppData%\Chrome Browser\g
%AppData%\Chrome Browser\icudtl.dat
%AppData%\Chrome Browser\locales\
%AppData%\Chrome Browser\msgbox.vbs
%AppData%\Chrome Browser\n.l
%AppData%\Chrome Browser\n.q
%AppData%\Chrome Browser\nw.pak
%AppData%\Chrome Browser\rundll32.exe
%AppData%\Chrome Browser\s.exe
%AppData%\Chrome Browser\u.vbs

I file che vengono cifrati da Ransom32 sono quelli con le seguenti estensioni:

*.jpg, *.jpeg, *.raw, *.tif, *.gif, *.png, *.bmp, *.3dm, *.max, *.accdb, *.db, *.dbf, *. mdb, *.pdb, *.sql, *.*SAV*, *.*SPV*, *.*grle*, *.*MLX*, *.*SV5*, *.*game*, *.*Slot*, *.dwg, *.dxf, *.c, *.cpp, *.cs, *.h, *.php, *.asp, *.rb, *.java, *.jar, *.class, *.aaf, *.aep, *.aepx, *.PLB, *.prel, *.prproj, *.aet, *.ppj, *.psd, *.indd, *.indl, *.indt, *.indb, *.inx, *.idml, *.pmd, *.xqx, *.xqx, *.ai, *.eps, *.ps, *.svg, *.swf, *.fla, *.as3, *.as, *.txt, *.doc, *.dot, *.docx, *.docm, *.dotx, *.dotm, *.docb, *.rtf, *.wpd, *.wps, *.msg, *.pdf, *.xls, *.xlt, *.xlm, *.xlsx, *.xlsm, *.xltx, *.xltm, *.xlsb, *.xla, *.xlam, *.xll, *.xlw, *.ppt, *.pot, *.pps, *.pptx, *.pptm, *.potx, *.potm, *.ppam, *.ppsx, *.ppsm, *.sldx, *.sldm, *.wav, *.mp3, *.aif, *.iff, *.m3u, *.m4u, *.mid, *.mpa, *.wma, *.ra, *.avi, *.mov, *.mp4, *.3gp, *.mpeg, *.3g2, *.asf, *.asx, *.flv, *.mpg, *.wmv, *.vob, *.m3u8, *.csv, *. EFX, *.sdf, *.vcf, *.xml, *.ses, *.dat

I file cifrati non vengono rinominati e quelli presenti all'interno delle seguenti cartelle non vengono intaccati dal malware
\Windows\
\winnt\
\ProgramData\
boot\
temp\
tmp\
$RECYCLE.BIN\ 

Quando il malware ha terminato di cifrare i dati visualizza il seguente messaggio.
Ransom32 Lock Screen
FIG 4 - Ransom32 Lock Screen
All'interno del messaggio viene indicato alla vittima ciò che è accaduto ai suoi file, l'ammontare del riscatto, istruzioni su come pagarlo e l'indirizzo bitcoin a cui effettuare il pagamento. Generalmente il messaggio viene visualizzato in inglese. La schermata di blocco consente alla vittima di decriptare un singolo file, per provare alla vittima che l'operazione può essere effettuata.

La crittografia utilizzata è AES (Advanced Encryption Standard) a 128-bit con CTR mode.Per ogni file viene creata una nuova chiave. La chiave per decriptare i dati viene reperita dal client contattando il server.

Rimuovere Ransom32 e tentare il recupero dei dati
Per rimuover Ransom32 avviare il sistema in modalità provvisoria (con supporto di rete se possibile), e installare ed eseguire una scansione con SpyHunter o con Malwarebytes
Se si intende procedere manualmente è possibile terminare tutti i processi chrome.exe e cancellare la cartella %AppData%\Chrome Browser\. Cancellare anche il file %AppData%\Microsoft\Windows\Start Menu\Programs\Startup\ChromeService.lnk e verificare il contenuto della chiave Run (sia in HKLM che in HKCU) all'interno del registro di sistema.
Il recupero dei dati potrebbe essere un'operazione non fattibile. Se si dispone di backup è possibile effettuare un ripristino, in caso contrario è possibile fare dei tentativi per recuperare i propri dati ma il successo non è garantito.
E' possibile utilizzare i seguenti programmi per cercare di recuperare i propri dati:
Shadow Explorer: Consente di visualizzare/ripristinare le copie shadow dei file. Generalmente i malware rimuovono tali copie ma tentare non nuoce.

ShadowExplorer
FIG 5 - ShadowExplorer

Panda Ransomware Decrypt: Con questa applicazione si può tentare decriptare i file. Nel caso si disponga della copia originale di un file che è stato cifrato sul sistema possiamo indicarli entrambi al programma che tenterà di estrarre la chiave di cifratura.

Panda Ransomware Decrypt
FIG 6 - Panda Ransomware Decrypt

Kaspersky Utility: Un insieme di utility fornite da Kaspersky per eliminare virus e per decriptare file di dati resi inaccessibili dai diversi ransomware.

Kaspersky RannohDecryptor
FIG 7 - Kaspersky RannohDecryptor
Altri tentativi che è possibile effettuare è quello di utilizzare software per il recupero dei dati come:
Recuva
Photorec
EaseUS Data Recovery
R-Studio