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)
Proof of Value
Dominio Microsoft Graph API Risolto da Processo Insolito (via dns_query)
Proof of Value
File sospetti nel Profilo Utente Pubblico (via file_event)
Proof of Value
Tentativo di Esecuzione Suspicious GNU Wget (via cmdline)
Proof of Value
Chiama Metodi .NET Sospetti da Powershell (via powershell)
Proof of Value
Esecuzione Sospetta da Profilo Utente Pubblico (via process_creation)
Proof of Value
Possibile Infiltrazione/Esfiltrazione Dati/C2 tramite Servizi/Strumenti di Terze Parti (via dns)
Proof of Value
File Estratti Sospetti da un Archive (via file_event)
Proof of Value
IOC (SourceIP) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Proof of Value
IOC (HashMd5) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Proof of Value
IOC (DestinationIP) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Proof of Value
IOC (HashSha1) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Proof of Value
IOC (HashSha256) per rilevare: Attacchi APT mirano il governo indiano usando SHEETCREEP, FIREPOWER e MAILCREEP | Parte 2
Proof of Value
Rilevamento dei Comandi PowerShell per SHEETCREEP e Distribuzione Backdoor FIREPOWER [Windows Powershell]
Proof of Value
Rilevamento di Comunicazione C2 di SHEETCREEP e FIREPOWER Backdoor [Connessione di Rete Windows]
Proof of Value
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 }