Authors: Luca Testoni, Marco Giovanetti.
Summary
- Introduzione
- Contesto di riferimento
- Strumenti di analisi utilizzati
- Analisi effettuate
- IOCs
- TTPs
- References
1. Introduzione
Nell’attuale contesto della cybersecurity, è sempre più necessario dotare le infrastrutture aziendali di servizi gestiti per il monitoraggio 24/7.
Questo approccio non è solo una misura di sicurezza, ma una vera e propria necessità per garantire una protezione continua e tempestiva contro le minacce informatiche: la sorveglianza costante permette di rilevare e rispondere rapidamente a qualsiasi attività sospetta, minimizzando i rischi di compromissione e perdita di dati.
2. Contesto di riferimento
Recentemente, il nostro Incident Response Team (IRT) ha affrontato un caso interessante che mette in luce l'importanza del monitoraggio 24/7.
Un attaccante è riuscito a compromettere il portale di un sito web di servizi, inserendo al suo interno un modale ingannevole che cercava di persuadere i visitatori a scaricare un finto aggiornamento del browser Chrome.
La trappola era ben congegnata: una volta che l'utente cliccava per procedere al finto aggiornamento, veniva avviata una catena di attacco (kill chain) che portava all’esecuzione di un malware di tipo infostealer sul client della vittima. Questa tecnica di attacco, nota come "Fake Update"[1], è progettata per rubare informazioni sensibili dall'utente ignaro.
In rete è anche possibile trovare un riferimento alla kill chain ricostruita in questo incidente di sicurezza.
Questo report ha l'obiettivo di delineare lo sviluppo dell’incidente e le necessarie contromisure da adottare.
Analizzare ogni fase dell'attacco ci permette non solo di capire le modalità di compromissione, ma anche di affinare continuamente le nostre tecniche di difesa per garantire una protezione sempre più efficace ai nostri clienti.
3. Strumenti di analisi utilizzati
Al fine di svolgere un’analisi esaustiva, sono stati utilizzati i seguenti strumenti:
Sandbox Windows 10, impiegata come macchina virtuale per analizzare il comportamento del payload individuato.
Questo approccio ci ha permesso di osservare in un ambiente controllato e sicuro come il malware agisse una volta eseguito, fornendoci informazioni cruciali per comprendere la minaccia e aggiornare opportunamente i sistemi di difesa per neutralizzare in futuro la minaccia stessa.
4. Analisi effetuate
Il team di Incident Response di Certego ha proceduto, in prima istanza, a effettuare l’analisi dei payload scaricabili da un utente vittima sotto forma di script PowerShell offuscato, per iniziare a ricostruire la kill chain dell’attacco. A seguito dell’analisi degli script, sono state condotte ulteriori indagini sul portale istituzionale al fine di identificare la vulnerabilità sfruttata dagli attaccanti, che ha permesso loro di caricare il modale del fake update indicato precedentemente. Infine, è stato esaminato l’intero codice della web app per capire come il sito sia stato compromesso.
4.1 Kill Chain
Il primo payload in PowerShell analizzato si occupa di effettuare una richiesta HTTP al dominio rtattack[.]baqebei1[.]online con l’obiettivo di scaricare il secondo stage del malware sulla macchina vittima:
Successivamente all’esecuzione, viene scaricato un secondo script PowerShell. Il suo codice offuscato è costituito da varie funzioni; di seguito elencate:
- La prima funzione (function G) agisce da "virtual machine evasion": lo script verifica se è in esecuzione su una macchina virtuale o su una macchina fisica. Per determinare se si trova all'interno di una macchina fisica, vengono controllati i sensori di temperatura, che non sono presenti in una macchina virtuale. Se la verifica fallisce, lo script si chiude senza compiere alcuna azione.
- Le funzioni di seguito riportate, si occupano della decifratura dello script e dello scaricamento del malware vero e proprio:
Per le analisi di contesto, è stata eliminata la funzione di “VM Evasion”; in questo modo è stato possibile effettuare il download del terzo stage dell’attacco, un file compresso contenente un malware di tipo infostealer. Lo script PowerShell scarica il file, decomprime l’archivio ed esegue il malware.
L'Infostealer, successivamente, effettua una “code injection” in processi già in esecuzione e leciti, sovrascrivendo la loro memoria per evitare di essere intercettato dai software antivirus. Il malware tenta di estrarre le credenziali salvate in memoria e di inviarle tramite una chiamata HTTP di tipo POST al dominio cdnforfiles[.]xyz.
La kill chain è stata ricostruita attraverso l’analisi dei vari redirect e payload:
- In primis, vi è stata la violazione del sito istituzionale e conseguente inserimento di un fake update di Chrome;
- Cliccando sul fake update viene eseguito uno script PowerShell, offuscato in base64, che redirige al dominio rtattack[.]baqebei1[.]online;
- Da quel dominio viene scaricato un secondo payload sotto forma di script PowerShell, cifrato usando l’algoritmo AES128, che esegue il download del malware vero e proprio;
- Viene scaricato il payload data.zip che contiene un malware di tipo infostealer, immediatamente eseguito;
- L’infostealer, eseguendo una code injection in processi leciti, come ad esempio “searchindexer.exe”, ruba le credenziali di accesso ed effettua una chiamata HTTP di tipo POST verso il dominio cdnforfiles[.]xyz.
4.2 Analisi dell'applicazione web
Attraverso lo strumento “developer console” del browser è possibile verificare che il modale viene caricato dal seguente sito esterno: “d1x9q8w2e4[.]xyz”
L’url viene contattato attraverso l’esecuzione di codice Javascript, offuscato in base64, ogni volta che una pagina del sito viene visualizzata nel browser.
Di seguito riportiamo il codice malevolo:
Si può notare la presenza di una funzione (cjs()) che, una volta deoffuscata, rivela la presenza di comandi per il caricamento di elementi HTML nascosti alla vista del navigatore; questi elementi effettuano chiamate HTTP verso due URL:
- Il primo URL “*https://bsc-dataseed1[.]binance[.]org*” è legato al crypto mining; è possibile dedurre questo dal codice che contiene l’indirizzo di un wallet sulla piattaforma Binance[2];
- Il secondo URL, invece, fa riferimento alla pagina che contiene il modale: “*https://d1x9q8w2e4[.]xyz/8OtaBr/?added=1714577662*”.
All’interno del secondo URL, si scopre un ulteriore Javascript, riportato di seguito:
Quest’ultimo snippet di codice crea il modale malevolo. Se lo eseguiamo nella console di sviluppo del browser, è possibile far comparire il modale in qualsiasi pagina si stia navigando.
Una ricerca del codice Javascript offuscato, all’interno dei vari file della web app, ci ha consentito di scoprire che tale codice è stato iniettato all'interno del file “/site/wwwroot/wp-includes/theme.php”.
5. IOCs
Tipo | Nome | Hash (SHA256) |
---|---|---|
URL | cdnforfiles[.]xyz | N/A |
URL | rtattack[.]baqebei1[.]online | N/A |
URL | bsc-dataseed1[.]binance[.]org | N/A |
URL | d1x9q8w2e[4.]xyz | N/A |
Archivio compromesso | data.zip | e3322159f52e849fe6e5dd0d264e591b6361ee4d08ec81b490b875e41b60ca2 |
Eseguibile malevolo | Winnc.exe | 34a31ce56c97fdc7a5db20c1dec741830c75d97b87c11c1658754419213ff6d7 |
6. TTPss
Di seguito viene riportata la lista delle Tattiche, Tecniche e Procedure (TTP) effettuate dall’attaccante e osservate nelle analisi effettuate:
ID | Nome |
---|---|
T1659 | Content Injection |
T1059.001 | PowerShell |
T1555 | Credentials from Password Stores |
T1055 | Process Injection |
7. References
Grazie!