A volte si ha voglia di guardare negli occhi un malware writer e chiedere: perché? Siamo in grado di capire il «come» da soli, ma sarebbe molto interessante sapere cosa pensava il creatore di un determinato malware. Soprattutto quando ci imbattiamo in certe «perle».
Il protagonista di questo articolo è un interessante esemplare di ransomware. Sembra essere stato concepito come un altro «riscattatore», ma la sua implementazione tecnica assomiglia di più a uno scherzo macabro. Di questa attuazione parleremo oggi.
Sfortunatamente, seguire il ciclo di vita di questo encoder è praticamente impossibile: ci sono davvero pochi dati al riguardo, poiché fortunatamente non ha avuto una diffusione ampia. Pertanto, lasceremo da parte l'origine, i metodi di infezione e altre menzioni. Racconteremo solo il nostro incontro con Wulfric Ransomware e di come abbiamo aiutato l'utente a salvare i suoi file.
I. Come tutto è iniziato
Spesso ci contattano persone colpite da ransomware nel nostro laboratorio antivirus. Forniamo assistenza indipendentemente dai prodotti antivirus installati. Questa volta un uomo ci ha contattato, i cui file sono stati colpiti da un encoder sconosciuto.
Buongiorno! I file su un'unità di archiviazione (samba4) hanno subito cifratura con accesso senza password. Sospetto che l'infezione sia partita dal computer di mia figlia (Windows 10 con la protezione standard di Windows Defender). Il computer di mia figlia non è stato acceso dopo questo evento. I file sono stati cifrati principalmente in formato .jpg e .cr2. Estensione dei file dopo la cifratura: .aef.
Abbiamo ricevuto dall'utente campioni di file cifrati, un messaggio di riscatto e un file che probabilmente è la chiave necessaria per l'autore del ransomware per decrittografare i file.
Ecco tutti i nostri indizi:
- 01c.aef (4481K)
- hacked.jpg (254K)
- hacked.txt (0K)
- 04c.aef (6540K)
- pass.key (0K)
Diamo un'occhiata al messaggio. Quanti bitcoin questa volta?
Traduzione:
Attenzione, i vostri file sono stati cifrati!
la password è unica per il vostro PC.Pagate l'importo di 0.05 BTC all'indirizzo bitcoin: 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
Dopo il pagamento, inviami un'email allegando il file pass.key a Wulfric@gmx.com con una notifica di pagamento.Dopo la conferma, ti invierò il decryptor per i file.
Puoi pagare i bitcoin online in vari modi:
— pagamento con carta di credito
A proposito di bitcoin:
Se hai domande, scrivimi a Wulfric@gmx.com
Come bonus ti dirò come è stato violato il tuo computer e come proteggerlo in futuro.
Un lupo patetico, chiamato a mostrare alla vittima la serietà della situazione. Tuttavia, poteva andare peggio.

Fig. 1. -Come bonus, ti dirò come proteggere il tuo computer in futuro. –Sembra legittimo.
II. Iniziamo a lavorare
Per prima cosa abbiamo esaminato la struttura del campione inviato. Stranamente, non sembrava un file danneggiato da un ransomware. Apriamo l'editor esadecimale e vediamo. Nei primi 4 byte è contenuta la dimensione originale del file, i successivi 60 byte sono riempiti con zeri. Ma la parte più interessante si trova alla fine:

Fig. 2 Analizziamo il file danneggiato. Cosa salta subito all'occhio?
Tutto si rivelò incredibilmente semplice: 0x40 byte dell'intestazione erano stati spostati alla fine del file. Per recuperare i dati basta semplicemente riportarli all'inizio. L'accesso al file è stato ripristinato, ma il nome rimane crittografato, e questo è più complicato.

Fig. 3. Il nome crittografato in Base64 appare come una sequenza di simboli priva di senso.
Proviamo a decifrare pass.key, inviato dall'utente. In esso vediamo una sequenza di 162 byte di simboli in ASCII.

Fig. 4. 162 simboli lasciati sul computer della vittima.
Se guardi attentamente, puoi notare che i simboli si ripetono con una certa periodicità. Questo potrebbe indicare l'uso di XOR, dove i ripetizioni sono tipiche e la loro frequenza dipende dalla lunghezza della chiave. Dividendo la stringa in 6 simboli e applicando XOR con alcune sequenze, non siamo riusciti a ottenere alcun risultato significativo.

Fig. 5. Vedi le costanti ripetute in mezzo?
Abbiamo deciso di cercare le costanti, perché sì, si può fare anche così! E tutte hanno portato a un solo algoritmo - Batch Encryption. Dopo aver esaminato lo script, è diventato chiaro che la nostra stringa non è altro che il risultato del suo lavoro. Vale la pena notare che questo non è affatto un ransomware, ma semplicemente un codificatore che sostituisce i simboli con sequenze di 6 byte. Niente chiavi o altri segreti 🙁

Fig. 6. Un pezzo dell'algoritmo originale di autore sconosciuto.
L'algoritmo non avrebbe funzionato come doveva senza un piccolo dettaglio:

Fig. 7. Morpheus approvato.
Con la sostituzione inversa trasformiamo la stringa da pass.key in un testo di 27 caratteri. Merita particolare attenzione il testo umano (probabilmente) ‘asmodat’.

Fig.8. USGFDG=7.
Google ci aiuterà di nuovo. Dopo una breve ricerca troviamo un progetto interessante su GitHub – Folder Locker, scritto in .Net e utilizzante la libreria ‘asmodat’ da un altro account su ‘Git’.

Fig. 9. Interfaccia di Folder Locker. Abbiamo sicuramente controllato per malware.
L'utilità è un cifratore per Windows 7 e versioni successive, distribuito con codice sorgente aperto. Durante la cifratura viene utilizzata una password, necessaria per la successiva decifratura. Permette di lavorare sia con singoli file che con intere directory.
La sua libreria utilizza l'algoritmo di crittografia simmetrica Rijndael in modalità CBC. È interessante notare che la dimensione del blocco è stata scelta di 256 bit, a differenza dei 128 bit previsti dallo standard AES.
La nostra chiave è generata secondo lo standard PBKDF2. Qui, la password è l'SHA-256 della stringa inserita nell'utilità. Resta solo da trovare questa stringa per formare la chiave di decifratura.
Bene, torniamo al nostro testo già decodificato pass.key. Ricordate quella riga con una serie di cifre e il testo ‘asmodat’? Proviamo a usare i primi 20 byte della stringa come password per Folder Locker.
Guarda, funziona! La parola chiave ha funzionato e tutto è stato decifrato correttamente. Dalla simbologia della password, sembra che sia una rappresentazione HEX di una parola specifica in ASCII. Proviamo a visualizzare la parola chiave in forma testuale. Otteniamo ‘shadowwolf’. Inizi a sentire i sintomi della licantropia?
Diamo un'altra occhiata alla struttura del file colpito, ora che conosciamo il meccanismo di funzionamento del locker:
- 02 00 00 00 – modalità di criptazione dei nomi;
- 58 00 00 00 – lunghezza del nome file cifrato e codificato in base64;
- 40 00 00 00 – dimensione dell'intestazione trasferita.
In rosso e giallo sono evidenziati il nome cifrato e l'intestazione trasferita, rispettivamente.

Fig. 10. L'intestazione cifrata è evidenziata in rosso, quella trasferita in giallo.
E ora confrontiamo i nomi cifrati e decifrati in rappresentazione esadecimale.
Struttura dei dati decifrati:
- 78 B9 B8 2E – spazzatura creata dall'utility (4 byte);
- 0C 00 00 00 – lunghezza del nome decifrato (12 byte);
- segue il nome del file vero e proprio e il padding con zeri fino alla lunghezza desiderata del blocco.

Fig. 11. IMG_4114 appare decisamente meglio.
III. Conclusioni e conclusione
Tornando all'inizio. Non sappiamo cosa avesse in mente l'autore di Wulfric.Ransomware e quale obiettivo volesse raggiungere. Senza dubbio, per un utente comune il risultato del lavoro di anche questo tipo di ransomware sembrerà una grande calamità. I file non si aprono. Tutti i nomi sono scomparsi. Al posto della consueta immagine, c'è un lupo sullo schermo. Ci costringono a leggere sui bitcoin.
D'altra parte, questa volta sotto le mentite spoglie di un "terribile encoder" si nascondeva una richiesta di riscatto così ridicola e insensata, in cui il criminale utilizza programmi già pronti e lascia le chiavi proprio sul luogo del crimine.
A proposito di chiavi. Non avevamo uno script dannoso o un trojan che potesse aiutarci a capire come sia apparso questo pass.key – il meccanismo di apparizione del file su un PC infetto rimane sconosciuto. Ma, mi ricordo che nella sua nota l'autore menzionava l'unicità della password. Ebbene, la parola d'ordine per la decrittazione è tanto unica quanto unico è il nome utente shadow wolf 🙂
Eppure, shadow wolf, perché e per quale motivo?
Fonte: habr.com
