APT-Angriffe zielen mit SHEETCREEP, FIREPOWER und MAILCREEP auf Indiens Regierung | Teil 2
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Bericht behandelt die Operation Sheet Attack, bei der drei maßgeschneiderte Backdoors eingesetzt wurden—SHEETCREEP, FIREPOWER und MAILCREEP—um indische Regierungsorganisationen zu kompromittieren. Die Implantate nutzten legitime Cloud-Plattformen für die Kommando- und Kontrollkommunikation, darunter Google Sheets, Firebase Realtime Database und die Microsoft Graph API, was dazu beitrug, die Aktivität in den normalen SaaS-Verkehr zu integrieren. Die Analyse weist auch auf Artefakte hin, die darauf hindeuten, dass Entwickler generative KI zur Unterstützung bei der Codeerstellung genutzt haben. Der Aktivismus wird wahrscheinlich einer in Pakistan ansässigen Untergruppe von APT36 zugeschrieben.
Untersuchung
ThreatLabz führte sowohl dynamische als auch statische Analysen der Backdoors durch, dokumentierte Persistenzmethoden, C2-Workflows und Verhaltensmuster zur Datenexfiltration. Das Team kartierte auch unterstützende Infrastrukturen, beobachtete geografische und User-Agent-basierte Filter und erfasste Code-Ebene-Indikatoren, die auf AI-unterstützte Quellcode-Erstellung hindeuten.
Schadensbegrenzung
Implementieren Sie gestaffelte Erkennungen für verdächtige PDF/LNK-Zustellketten und überwachen Sie geplante Aufgaben, die PowerShell- oder VBS-Ausführungen starten. Anwenden Sie strikte Ausgabekontrollen und Anomalieüberwachung für Cloud-Dienste, die häufig als C2 missbraucht werden, einschließlich Google Sheets, Firebase und Microsoft Graph. Verwenden Sie hash-basierte Blockierungen für bekannte Nutzlasten und blockieren Sie identifizierte bösartige Domains und IP-Adressen.
Reaktion
Bei Erkennung den Endpunkt isolieren, versteckte cmd.exe- und PowerShell-Aktivitäten beenden, zugehörige geplante Aufgaben entfernen und die Backdoor-Binärdateien löschen. Google Sheets-basierte C2-Logs und Firebase-Artefakte sichern und überprüfen, dann im gesamten System nach weiteren Hosts suchen, die dieselben Indikatoren aufweisen.
Angriffsfluss
Erkennungen
Herunterladen oder Hochladen über Powershell (über cmdline)
Ansehen
Microsoft Graph API-Domain aufgelöst durch ungewöhnlichen Prozess (via dns_query)
Ansehen
Verdächtige Dateien im öffentlichen Benutzerprofil (via file_event)
Ansehen
Verdächtiger Versuch, GNU Wget auszuführen (via cmdline)
Ansehen
Aufruf verdächtiger .NET-Methoden von PowerShell (via powershell)
Ansehen
Verdächtige Ausführung im öffentlichen Benutzerprofil (via process_creation)
Ansehen
Mögliche Dateninfiltration/-exfiltration/C2 über Drittanbieterdienste/-tools (via dns)
Ansehen
Verdächtige extrahierte Dateien aus einem Archiv (via file_event)
Ansehen
IOCs (SourceIP), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2
Ansehen
IOCs (HashMd5), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2
Ansehen
IOCs (DestinationIP), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2
Ansehen
IOCs (HashSha1), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2
Ansehen
IOCs (HashSha256), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2
Ansehen
Erkennung von PowerShell-Befehlen für SHEETCREEP- und FIREPOWER-Backdoor-Deployment [Windows PowerShell]
Ansehen
Erkennung der SHEETCREEP- und FIREPOWER-Backdoor-C2-Kommunikation [Windows Netzwerkverbindung]
Ansehen
Simulationsausführung
Voraussetzung: Der Telemetrie- & Basislinien-Vorflug-Check muss bestanden sein.
Begründung: In diesem Abschnitt werden die präzise Ausführung der Gegnertechnik (TTP) beschrieben, die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und das Narrativ MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, genau die Telemetrie zu erzeugen, die die Erkennungslogik erwartet. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle:
- Das bösartige PNG bereitstellen:
- Der Angreifer erstellt eine PNG-Datei (
details.png), die tatsächlich einen kompilierten .NET-Assembly-Byte-Stream enthält, aber mit umgekehrten Bytes, um statische Analysen zu umgehen.
- Der Angreifer erstellt eine PNG-Datei (
- PowerShell im versteckten Modus starten, um die Assembly zu laden:
- Der Angreifer führt PowerShell mit
-WindowStyle Hidden -Commandund einem Einzeiler aus, der die umgekehrten Bytes liest, die korrekte Reihenfolge wiederherstellt, die Assembly über[System.Reflection.Assembly]::Load()lädt und einen bekannten Einstiegspunkt aufruft (Task10.Program::MB()).
- Der Angreifer führt PowerShell mit
- Alternative LNK-basierte Feuerkraft-Bereitstellung:
- Eine handgefertigte
.lnkVerknüpfung führtpowershell.exemit--headless -e(kodiertes Skript) aus, um ein Remote-PowerShell-Backdoor abzurufen und auszuführen.
- Eine handgefertigte
Diese Schritte entsprechen genau den Strings, nach denen die Sigma-Regel sucht, und sorgen dafür, dass der Alarm ausgelöst wird.
- Das bösartige PNG bereitstellen:
-
Regressionstest-Skript:
# ------------------------------------------------- # SHEETCREEP Payload-Simulation – reproduziert die genaue Befehlszeile # ------------------------------------------------- # 1. Ein Dummy-.NET-Assembly (einfaches C# Hello World) erstellen und kompilieren $source = @" using System; public class Task10 { public static void MB() { Console.WriteLine("Payload ausgeführt"); } } "@ $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 # Kompilieren mit csc (vorausgesetzt, .NET Framework SDK ist installiert) $cscPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" & $cscPath /target:library /out:$dllFile $csFile # 2. DLL-Bytes lesen, umkehren und in eine .png-Datei schreiben $bytes = [IO.File]::ReadAllBytes($dllFile) $revBytes = $bytes[($bytes.Length-1)..0] $pngPath = Join-Path $tempDir "details.png" [IO.File]::WriteAllBytes($pngPath, $revBytes) # 3. Den genauen bösartigen PowerShell-Befehlszeilenbefehl ausführen (dadurch wird die Regel ausgelöst) $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 # Bereinigung (optional, nach Überprüfung ausführen) # Remove-Item -Recurse -Force $tempDir -
Bereinigungskommandos:
# Entfernen temporärer Dateien und Verzeichnisse, die für den Test erstellt wurden $tempDir = "$env:TEMPsheetcreep" if (Test-Path $tempDir) { Remove-Item -Recurse -Force $tempDir }