KeRnSoMwArE un ransomware italiano ancora in fase test

27/02/2021

Kernsomware ransomware

Dopo Ransomware2.0, il malware razzista di cui si è discusso a metà mese, KeRnSoMwArE è il secondo esempio di ransomware in fase di sviluppo rilevato a febbraio dai ricercatori Malware Hunter Team e prontamente condiviso da JamesWT_MHT con il CERT-AGID.

È abbastanza evidente che il sample individuato è ancora in fase test ma dispone già di tutte le funzioni per il corretto funzionamento se i path assoluti, appositamente introdotti per testare il processo di cifratura sul sistema del suo creatore, vengono generalizzati.

Viene forzata la cifratura del file criptami.txt sul sistema di test

Al suo avvio Kernsomware cerca, ed eventualmente chiude, i processi “taskmgr” e “cmd” ed attiva un timer per simulare un countdown di 2 ore.

Il ransomware poi procede con la cifratura del file di esempio “c:\Users\zannr\Desktop\criptami.txt“.

Funzione Encrypt

Dal codice si evince che l’intenzione sia quella di cifrare i file utilizzando AES con un IV e chiave casuali e di cifrare poi la chiave con RSA. Si tratta del tipico schema.
Tuttavia, in questa versione di prova, la chiave RSA è salvata nel file “c:\Users\zannr\Documents\key.txt“.
Il cifrario AES è costruito con i parametri di default, che corrispondono alla configurazione AES256 CBC con padding PKCS7.
Il provider crittrografico per RSA è creato con valori di default (eccetto il nome), la lunghezza della chiave è quindi 1024 bit.

I file cifrati presentano la seguente struttura:

  • 4 byte per indicare la lunghezza della blob contenente la chiave AES cifrata con RSA.
  • 4 byte per indicare la lunghezza dell’IV AES.
  • Il blob contenente la chiave AES cifrata.
  • L’IV AES
  • I dati cifrati con AES.

Il file originale non viene sovrascritto ma cancellato, i dati cifrati sono scritti in un omonimo file ma con estensione .Kern.
Questo permette il recupero dei file senza neanche doverli decifrare (utilizzando la chiave salvata precedentemente).

La decifratura avviene con successo solo se il ransomware non è mai terminato, il provider RSA è infatti inizializzato nella procedura di cifratura e riusato in quella di decifratura.

Countdown e istruzioni per decifrare i file

La vittima avrà quindi 2 ore di tempo per pagare il riscatto di 300$ in bitcoin prima che i file verranno rimossi dal sistema, ma l’indirizzo BTC per il versamento non è incluso nel sample e nel caso in cui scada il countdown al momento non è prevista alcuna azione di rimozione.

L’intento del suo creatore sembra essere quello di entrare in contatto con la vittima tramite email, è infatti presente un link alla voce “Need Help?” che punta a gmail per comporre un nuovo messaggio senza al momento specificare l’account email di destinazione: “https://mail.google.com/mail/u/0/?tab=rm&ogbl#inbox?compose=new“.

La password richiesta per liberare i file è inclusa nel codice, in questo caso specifico è: “ciao“.

bool flag = this.textBox1.Text == "ciao";

Come il resto dei ransomware sembra essere progettato per un target più ampio, dispone infatti della traduzione delle istruzioni dall’italiano in altre 4 lingue: inglese, tedesco, francese e cinese.

Istruzioni in 5 lingue

Conclusioni

Kernsomware non presenta similitudini con gli altri ransomware italiani osservati in precedenza (Ransomware2.0 e Fuckunicorn), l’unico elemento in comune è il codice scritto in .NET

Al momento non si hanno evidenze di campagne mirate o di compromissioni da una versione funzionante di Kernsomware ma è un dato di fatto l’interesse dei malware writer italiani verso i ransomware per monetizzare rapidamente. In questo caso verrà stabilito un contatto email con l’autore, il quale si presume fornirà l’indirizzo bitcoin su cui la vittima dovrà effettuare il versamento ed in cambio riceverà la password per decifrare i file.

Nonostante la cifratura risulti robusta, l’analisi del codice di Kernsomware consente di recuperare la password per liberare i file senza pagare alcun riscatto.