Giuseppe Calì : 4 Ottobre 2024 10:27
A partire dal 2023, Rilide è emerso come una minaccia in crescita nel panorama degli infostealer. Prendendo di mira principalmente browser basati sul motore Chromium, come Google Chrome e Microsoft Edge, Rilide opera come un’estensione del browser, accedendo a credenziali di accesso, cookie e persino carte di credito e portafogli di criptovalute.
I ricercatori italiani di Delfi Security con questo articolo, hanno svolto un’indagine su un campione di Rilide distribuito insieme a un loader PowerShell per eludere i sistemi di detection. Il codice del loader include un meccanismo che invia un avviso con le informazioni di sistema a un canale Telegram ogni volta che il loader viene eseguito. A causa di una configurazione errata dei permessi del canale, è stato possibile accedervi, recuperare l’elenco completo dei dispositivi infetti e identificare l’account Telegram dal threat actor per gestire il canale.
Il loader PowerShell è suddiviso in due stage. Nel primo stage vengono definite due costanti: “p94oc”, che contiene il secondo stage crittografato con AES, e “UG8Nu5”, che contiene la chiave di decrittazione. Il codice viene eseguito tramite la funzione Invoke-Expression dopo essere stato decrittato dalla funzione decrypt():
La NIS2 è complessa da capire?
Non perdere tempo, segui l'anteprima gratuita del corso che stiamo preparando.Accedi quindi alla nostra Academy e segui l'anteprima del corso della durata di 30 minuti per comprendere i contenuti esclusivi che tratteremo nel corso.per ulteriori informazioni, scrivici ad [email protected] oppure scrivici su Whatsapp al 379 163 8765
Supporta RHC attraverso:
Set-Variable p94oc -Option Constant -Value 'qlzVmHUcEvt0o[...]'
Set-Variable UG8Nu5 -Option Constant -Value System.Text.Encoding]::UTF8.GetString(([byte[]] ( 87, 103, 47, [...] ))))
function decrypt( $UG8Nu5, $T7Ek )
{
$LV2q = [System.Convert]::FromBase64String( $T7Ek )
$irW2N = $LV2q[0..15]
$nTMr = createAesManagedObject $UG8Nu5 $irW2N
$ybXNa = $nTMr.CreateDecryptor()
$M5Tz = $ybXNa.TransformFinalBlock( $LV2q, 16, $LV2q.Length - 16 )
$nTMr.Dispose()
return [System.Text.Encoding]::UTF8.GetString( $M5Tz ).Trim( [char] 0 )
}
Invoke-Expression ( decrypt $UG8Nu5 $p94oc )
Il secondo stage, una volta decrittato, esegue le seguenti azioni:
Un comportamento tipico per un loader di un information stealer. Durante l’analisi, il token del bot utilizzato per inviare messaggi al canale Telegram era ancora attivo. Ciò è stato verificato chiamando il metodo /getMe dell’API di Telegram tramite una richiesta GET all’indirizzo:
https://api.telegram.org/bot[BOT_ID]:[TOKEN]/getMe
La chiamata /getMe ha restituito informazioni di base sul bot, come il suo ID e il nome utente, confermando che il token era ancora valido:
Al momento dell’analisi, il canale utilizzato per inviare i messaggi era privato, il che significa che solo i membri potevano vederne il contenuto. L’API Bot di Telegram offre numerose funzionalità, ma nessuna per leggere i messaggi da un canale. Tuttavia, alcuni metodi possono essere sfruttati per accedere al contenuto se il canale è configurato in modo insicuro.
Se il bot è amministratore del canale e dispone delle autorizzazioni necessarie, è possibile utilizzare il metodo /createChatInviteLink per generare un link che consente a qualsiasi utente di Telegram di unirsi al canale, inviando una richiesta GET a:
Nella maggior parte dei casi, i canali utilizzati dagli infostealer per ricevere aggiornamenti non consentono questo tipo di accesso. Tuttavia, questa volta, alla chiamata del metodo /createChatInviteLink, è stata restituita la seguente risposta:
Aprendo il link, qualsiasi utente poteva unirsi al canale, che al momento dell’analisi contava 3 iscritti (incluso il bot):
Il canale era attivo al momento dell’analisi e riceveva quotidianamente dozzine di nuovi messaggi da dispositivi infetti. Questi messaggi contenevano un allegato di testo con un log dell’installazione del malware, che riportava dati sull’ambiente di esecuzione (come il nome del dominio Active Directory, il percorso di installazione del malware e altro), eventuali errori riscontrati – probabilmente per scopi di debug – e informazioni di base sul sistema appena infettato:
Lo scraping del canale ha permesso di scoprire 291 dispositivi infetti insieme a informazioni di base sui sistemi. Laddove è stato possibile identificare le vittime tramite i dati presenti nel log di installazione (ad esempio attraverso i nomi dei domini Active Directory), le parti interessate sono state avvisate.
Utilizzando una richiesta GET all’indirizzo:
è stato possibile identificare l’account utilizzato dal threat actor per gestire il canale:
L’account era ancora attivo al momento dell’analisi:
Sebbene talvolta sia possibile scoprire informazioni interessanti sugli account Telegram se le loro impostazioni di privacy sono configurate in modo errato, in questo caso non è stato così. Pertanto, l’indagine su questo account è stata interrotta a questo punto.
Telegram è stato sfruttato da attori malevoli per anni, e i distributori di infostealer non fanno eccezione. L’uso dei canali Telegram offre diversi vantaggi agli attaccanti, come l’eliminazione della necessità di un hosting web. Tuttavia, i canali configurati in modo errato possono fornire informazioni cruciali agli analisti, poiché è sempre possibile estrarre il token del bot e l’ID del canale dal campione di malware. Inoltre, è possibile inondare il canale con dati falsi, rendendolo inutilizzabile per il proprietario. In alcuni casi, si può persino rimuovere il proprietario o chiudere il canale.
Delfi Security ritiene che ogni incident responder potrebbe trarre beneficio dalla capacità di valutare la sicurezza dei canali Telegram e di applicare tale conoscenza quando affronta campioni di malware che li utilizzano per C&C o esfiltrare i dati.