È emerso in rete un nuovo ransomware, Nemty, che si presume sia il successore di GrandCrab o Buran. Il malware viene principalmente distribuito tramite un sito falso di PayPal e presenta una serie di caratteristiche interessanti. Maggiori dettagli sul funzionamento di questo ransomware si trovano sotto.

Il nuovo ransomware Nemty è stato scoperto dall'utente 7 settembre 2019. Il malware è stato distribuito attraverso un sito, , c'è anche la possibilità che il ransomware possa infiltrarsi nel computer tramite l'exploit kit RIG. I criminali informatici hanno scelto metodi di ingegneria sociale per indurre l'utente a eseguire il file cashback.exe, che riceve presumibilmente dal sito di PayPal. È curioso notare che in Nemty è specificata una porta errata per il servizio proxy locale Tor, impedendo così al malware di inviare dati al server. Pertanto, l'utente dovrà caricare manualmente i file crittografati sulla rete Tor, se intende pagare il riscatto e attendere la decrittazione dai criminali.
Alcuni fatti curiosi su Nemty suggeriscono che sia stato sviluppato dalle stesse persone o da criminali informatici legati a Buran e GrandCrab.
- Come in GandCrab, anche in Nemty c'è un easter egg: un link a una foto del presidente della Federazione Russa Vladimir Putin con una battuta volgare. In GandCrab, il vecchio ransomware, c'era un'immagine con lo stesso testo.
- Gli artefatti linguistici di entrambi i programmi indicano gli stessi autori di lingua russa.
- Questo è il primo ransomware che utilizza una chiave RSA a 8092 bit. Anche se non ha senso: una chiave a 1024 bit è sufficiente per proteggere contro le violazioni.
- Come Buran, il ransomware è stato scritto in Object Pascal e compilato in Borland Delphi.
Analisi statica
L'esecuzione del codice malevolo avviene in quattro fasi. Il primo passo è l'esecuzione di cashback.exe, un file eseguibile PE32 per MS Windows di dimensioni 1198936 byte. Il suo codice è scritto in Visual C++ e compilato il 14 ottobre 2013. Contiene un archivio, che si estrae automaticamente all'avvio di cashback.exe. Il software utilizza la libreria Cabinet.dll e le sue funzioni FDICreate(), FDIDestroy() e altre per ottenere file dall'archivio .cab.


SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC
Dopo l'estrazione dell'archivio appariranno tre file.

Successivamente, viene eseguito temp.exe, un file eseguibile PE32 per MS Windows di dimensioni 307200 byte. Il codice è scritto in Visual C++ ed è compresso con il packer MPRESS, un compressore simile a UPX.

SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD
Il passo successivo è ironman.exe. Dopo il lancio, temp.exe decripta i dati incorporati in temp e li rinomina in ironman.exe, un file eseguibile PE32 di dimensioni 544768 byte. Il codice è stato compilato in Borland Delphi.
![]()
SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88
L'ultimo passo è il riavvio del file ironman.exe. Durante l'esecuzione, trasforma il proprio codice e si lancia dalla memoria. Questa versione di ironman.exe è dannosa e responsabile della crittografia.
Vettore di attacco
Al momento, il ransomware Nemty si diffonde tramite il sito pp-back.info.

Puoi vedere tutta la catena di infezione su sandbox.
Installazione
Cashback.exe è l'inizio dell'attacco. Come già detto, cashback.exe estrae il file .cab contenuto al suo interno. Poi crea una cartella TMP4351$.TMP del tipo %TEMP%IXxxx.TMP, dove xxx è un numero da 001 a 999.


Successivamente, viene impostata una chiave di registro che appare così:
[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”
Viene utilizzata per rimuovere i file estratti. Infine, cashback.exe avvia il processo temp.exe.

Temp.exe è il secondo passaggio nella catena di infezione
È un processo avviato dal file cashback.exe, il secondo passo nell'esecuzione del virus. Cerca di scaricare AutoHotKey, uno strumento per eseguire script su Windows, e di eseguire lo script WindowSpy.ahk, situato nella sezione risorse del file PE.

Lo script WindowSpy.ahk decripta il file temp in ironman.exe, utilizzando l'algoritmo RC4 e la password IwantAcake. La chiave derivante dalla password è ottenuta attraverso l'algoritmo di hashing MD5.
Successivamente, temp.exe richiama il processo ironman.exe.
![]()
Ironman.exe è il terzo passo
Ironman.exe legge il contenuto del file iron.bmp e crea un file iron.txt con un crypto-locker, che verrà eseguito successivamente.


Dopo di ciò, il virus carica iron.txt in memoria e lo riavvia come ironman.exe. Infine, iron.txt viene eliminato.
ironman.exe è la parte principale del ransomware NEMTY, che cripta i file sul computer infetto. Il malware crea un mutex chiamato hate.

Per prima cosa determina la posizione geografica del computer. Nemty apre un browser e recupera l'IP su . Sul sito [IP]/countryName in base all'IP ottenuto viene determinato il paese, e se il computer si trova in una delle seguenti regioni, l'esecuzione del codice malevolo viene interrotta:
- Russia
- Bielorussia
- Ucraina
- Kazakistan
- Tajikistan
Probabilmente gli sviluppatori non vogliono attirare l'attenzione delle autorità nei paesi in cui risiedono, e quindi non criptano i file nelle giurisdizioni "native".
Se l'indirizzo IP della vittima non appartiene all'elenco sopra, il virus crittografa le informazioni dell'utente.

Per prevenire il ripristino dei file, vengono eliminate le loro copie shadow:

Viene quindi creato un elenco di file e cartelle che non verranno criptati, oltre a un elenco di estensioni file.
- windows
- $RECYCLE.BIN
- rsa
- NTDETECT.COM
- ntldr
- MSDOS.SYS
- IO.SYS
- boot.ini AUTOEXEC.BAT ntuser.dat
- desktop.ini
- CONFIG.SYS
- BOOTSECT.BAK
- bootmgr
- programdata
- appdata
- osoft
- Common Files
log LOG CAB cab CMD cmd COM com cpl
CPL exe EXE ini INI dll DDL lnk LNK url
URL ttf TTF DECRYPT.txt NEMTY Le stringhe del ransomware sono memorizzate in forma crittografata. Quando HILDACRYPT viene avviato, le decrittografa utilizzando Base64 e AES-256-CBC.
Per nascondere gli URL e i dati di configurazione incorporati, Nemty utilizza un algoritmo di codifica base64 e RC4 con la frase chiave fuckav.

Il processo di decrittazione utilizzando CryptStringToBinary appare come segue

Crittografia
Nemty utilizza una crittografia a tre strati:
- AES-128-CBC per i file. La chiave AES a 128 bit viene generata casualmente e viene utilizzata la stessa per tutti i file. Essa viene memorizzata in un file di configurazione sul computer dell'utente. L'IV viene generato casualmente per ogni file e memorizzato nel file crittografato.
- RSA-2048 per la crittografia dei file IV. Una coppia di chiavi viene generata per la sessione. La chiave privata della sessione è memorizzata nel file di configurazione sul computer dell'utente.
- RSA-8192. La chiave pubblica principale è incorporata nel programma e viene utilizzata per crittografare il file di configurazione, in cui è memorizzata la chiave AES e la chiave segreta per la sessione RSA-2048.
- Innanzitutto, Nemty genera 32 byte di dati casuali. I primi 16 byte vengono utilizzati come chiave AES-128-CBC.

Il secondo algoritmo di crittografia è RSA-2048. La coppia di chiavi viene generata dalla funzione CryptGenKey() e importata dalla funzione CryptImportKey().

Dopo che la coppia di chiavi per la sessione è stata generata, la chiave pubblica viene importata nel MS Cryptographic Service Provider.

Esempio di chiave pubblica generata per la sessione:

In seguito, la chiave privata viene importata nel CSP.

Esempio di chiave privata generata per la sessione:
E infine c'è RSA-8192. La chiave pubblica principale è memorizzata in forma crittografata (Base64 + RC4) nella sezione .data del file PE.

La chiave RSA-8192 dopo la decodifica base64 e la decrittazione RC4 con la password fuckav appare così.

Di conseguenza, l'intero processo di crittografia appare come segue:
- Generazione di una chiave AES a 128 bit che verrà utilizzata per crittografare tutti i file.
- Creazione di un IV per ogni file.
- Creazione di una coppia di chiavi per una sessione RSA-2048.
- Decrittografia della chiave RSA-8192 esistente utilizzando base64 e RC4.
- Crittografia del contenuto dei file utilizzando l'algoritmo AES-128-CBC del primo passaggio.
- Crittografia dell'IV con la chiave pubblica RSA-2048 e codifica in base64.
- Aggiunta dell'IV crittografato alla fine di ogni file criptato.
- Aggiunta della chiave AES e della chiave privata della sessione RSA-2048 nel file di configurazione.
- I dati di configurazione, descritti nella sezione sul computer infetto, vengono crittografati utilizzando la chiave pubblica principale RSA-8192.
- Il file crittografato appare come segue:
Esempio di file crittografati:
Raccolta di informazioni sul computer infetto
Il ransomware raccoglie le chiavi per decrittografare i file infetti, in modo che l'attaccante possa effettivamente creare un decrittatore. Inoltre, Nemty raccoglie dati dell'utente, come nome utente, nome del computer, profilo hardware.

Chiama le funzioni GetLogicalDrives(), GetFreeSpace(), GetDriveType() per raccogliere informazioni sui dischi del computer infetto.
Le informazioni raccolte vengono memorizzate in un file di configurazione. Decodificando la stringa, otteniamo un elenco di parametri nel file di configurazione:

Esempio di configurazione del computer infetto:

Il modello di configurazione può essere rappresentato come segue:
{«General»: {«IP»:»[IP]»,«Country»:»[Country]»,«ComputerName»:»[ComputerName]»,«Username»:»[Username]»,«OS»:»[OS]»,«isRU»:false,«version»:«1.4»,«CompID»:»{[CompID]}»,«FileID»:»_NEMTY_[FileID]_»,«UserID»:»[UserID]»,«key»:»[key]»,«pr_key»:»[pr_key]
Nemty memorizza i dati raccolti in formato JSON nel file %USER%/_NEMTY_.nemty. Il FileID lungo 7 caratteri viene generato casualmente. Ad esempio: _NEMTY_tgdLYrd_.nemty. Il FileID viene anche aggiunto alla fine del file crittografato.
Messaggio di riscatto
Dopo la crittografia dei file, sul desktop appare un file _NEMTY_[FileID]-DECRYPT.txt con il seguente contenuto:

Alla fine del file si trova le informazioni crittografate sul computer infetto.

Comunicazione di rete
Il processo ironman.exe scarica il pacchetto del browser Tor dall'indirizzo e cerca di installarlo.
Poi Nemty tenta di inviare i dati di configurazione all'indirizzo 127.0.0.1:9050, dove si aspetta di trovare un server proxy funzionante del browser Tor. Tuttavia, per impostazione predefinita, il server proxy Tor ascolta sulla porta 9150, mentre la porta 9050 è utilizzata dal demone Tor su Linux o dall'Expert Bundle su Windows. Pertanto, i dati non vengono inviati al server dell'attaccante. Invece, l'utente può caricare manualmente il file di configurazione visitando il servizio di decrittazione Tor attraverso il link fornito nel messaggio di riscatto.
Connessione al proxy Tor:

![]()
HTTP GET genera una richiesta a 127.0.0.1:9050/public/gate?data=

Qui puoi vedere le porte TCP aperte utilizzate dal proxy TORlocal:

Servizio di decrittazione Nemty nella rete Tor:

È possibile caricare un'immagine crittografata (jpg, png, bmp) per testare il servizio di decrittazione.

Dopo di che, l'attaccante richiede il pagamento del riscatto. In caso di mancato pagamento, il prezzo raddoppia.

Conclusione
Al momento, non è possibile decrittare i file crittografati da Nemty senza pagare il riscatto. Questa versione del ransomware presenta somiglianze con i ransomware Buran e l'ormai obsoleto GandCrab: compilazione in Borland Delphi e immagini con lo stesso testo. Inoltre, è il primo ransomware a utilizzare una chiave RSA a 8092 bit, il che, ripetiamo, non ha alcun senso, in quanto una chiave a 1024 bit è più che sufficiente per la protezione. Infine, curioso a dirsi, tenta di utilizzare una porta non corretta per il servizio proxy locale di Tor.
Tuttavia, le soluzioni e non consentono al ransomware Nemty di accedere ai PC e ai dati degli utenti, e i provider possono proteggere i propri clienti con . Completo non offre solo backup, ma anche protezione attraverso l'utilizzo di , una tecnologia speciale basata sull'intelligenza artificiale e sull'analisi comportamentale, che permette di neutralizzare anche il malware ancora sconosciuto.
Fonte: habr.com
