SOC Prime Bias: Kritisch

30 Jan. 2026 19:58

APT-Angriffe zielen mit SHEETCREEP, FIREPOWER und MAILCREEP auf Indiens Regierung | Teil 2

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
APT-Angriffe zielen mit SHEETCREEP, FIREPOWER und MAILCREEP auf Indiens Regierung | Teil 2
shield icon

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.

graph TB %% Class definitions classDef action fill:#99ccff classDef process fill:#ffdd99 classDef file fill:#ffcccc classDef data fill:#e6e6ff classDef protocol fill:#d9ead3 classDef technique fill:#ffd966 %% Nodes – Initial Access action_phishing[„<b>Aktion</b> – <b>T1204.001 Benutzer-Ausführung: Bösartiger Link</b><br/>Das Opfer klickt auf einen bösartigen Link in einem PDF“] class action_phishing action file_phishing_pdf[„<b>Datei</b> – <b>Name</b>: Phishing-PDF<br/><b>Technik</b>: T1204.001“] class file_phishing_pdf file file_malicious_lnk[„<b>Datei</b> – <b>Name</b>: Bösartige LNK<br/><b>Technik</b>: T1204.002 Benutzer-Ausführung: Bösartige Datei“] class file_malicious_lnk file process_powershell[„<b>Prozess</b> – <b>Name</b>: PowerShell<br/><b>Technik</b>: T1059.001 Befehls- und Skriptinterpreter“] class process_powershell process file_dotnet_assembly[„<b>Datei</b> – <b>Name</b>: Als PNG getarnte .NET-Assembly<br/><b>Techniken</b>: T1620 Reflektives Code-Laden, T1036.008 Tarnung des Dateityps“] class file_dotnet_assembly file process_hidden_cmd[„<b>Prozess</b> – <b>Name</b>: Verstecktes cmd.exe<br/><b>Technik</b>: T1059.003 Befehlsshell“] class process_hidden_cmd process %% Nodes – Persistence action_persistence[„<b>Aktion</b> – Persistenz-Einrichtung“] class action_persistence action task_scheduled[„<b>Technik</b> – T1053 Geplante Aufgabe“] class task_scheduled technique script_gservices[„<b>Datei</b> – <b>Name</b>: GServices.vbs<br/><b>Zweck</b>: Wiederholte Ausführung“] class script_gservices file %% Nodes – Command and Control action_c2[„<b>Aktion</b> – Command and Control“] class action_c2 action data_google_sheets[„<b>Datenspeicher</b> – Google Sheets<br/><b>Technik</b>: T1102.002 Webdienst: Tabellen“] class data_google_sheets data protocol_https[„<b>Protokoll</b> – HTTPS<br/><b>Technik</b>: T1071.001 Webprotokolle“] class protocol_https protocol technique_dead_drop[„<b>Technik</b> – T1102.001 Dead-Drop-Resolver“] class technique_dead_drop technique backup_firebase[„<b>Datenspeicher</b> – Firebase-URL<br/><b>Fallback</b>: C2-Kanal“] class backup_firebase data backup_gcs[„<b>Datenspeicher</b> – Google Cloud Storage<br/><b>Fallback</b>: C2-Kanal“] class backup_gcs data encryption_tripledes[„<b>Technik</b> – T1027 Verschleierte/Verschlüsselte Datei oder Information (TripleDES)“] class encryption_tripledes technique encryption_channel[„<b>Technik</b> – T1573 Verschlüsselter Kanal“] class encryption_channel technique %% Nodes – Discovery action_discovery[„<b>Aktion</b> – Aufklärung“] class action_discovery action command_whoami[„<b>Befehl</b> – whoami<br/><b>Technik</b>: T1033 Benutzer-/Systementdeckung“] class command_whoami technique command_enum_domains[„<b>Befehl</b> – Domänenkonten auflisten<br/><b>Technik</b>: T1087.002 Domänenkonto“] class command_enum_domains technique %% Nodes – Execution of Commands action_execution[„<b>Aktion</b> – Empfangene Befehle ausführen“] class action_execution action %% Nodes – Cloud Account Creation cloud_account_creation[„<b>Aktion</b> – Google-Cloud-Konto erstellen<br/><b>Technik</b>: T1136.003 Cloud-Konto“] class cloud_account_creation action %% Nodes – Defense Evasion action_defense_evasion[„<b>Aktion</b> – Umgehung von Schutzmaßnahmen“] class action_defense_evasion action technique_hidden_fs[„<b>Technik</b> – T1564.005 Versteckte Dateien und Verzeichnisse“] class technique_hidden_fs technique %% Connections – Flow action_phishing –>|liefert| file_phishing_pdf file_phishing_pdf –>|enthält Link zu| file_malicious_lnk file_malicious_lnk –>|führt aus| process_powershell process_powershell –>|lädt reflektiv| file_dotnet_assembly file_dotnet_assembly –>|startet| process_hidden_cmd process_hidden_cmd –>|ermöglicht| action_persistence action_persistence –>|erstellt| task_scheduled action_persistence –>|führt aus| script_gservices action_persistence –>|kommuniziert mit| action_c2 action_c2 –>|nutzt| data_google_sheets data_google_sheets –>|über| protocol_https action_c2 –>|verwendet| technique_dead_drop action_c2 –>|Fallback zu| backup_firebase action_c2 –>|Fallback zu| backup_gcs action_c2 –>|verschlüsselt Verkehr über| encryption_tripledes action_c2 –>|etabliert| encryption_channel action_c2 –>|initiiert| action_discovery action_discovery –>|führt aus| command_whoami action_discovery –>|führt aus| command_enum_domains action_c2 –>|empfängt Befehle für| action_execution action_execution –>|führt aus via PowerShell| process_powershell action_execution –>|führt aus via verstecktem cmd| process_hidden_cmd action_c2 –>|erfordert| cloud_account_creation cloud_account_creation –>|stellt Infrastruktur bereit für| data_google_sheets cloud_account_creation –>|stellt Infrastruktur bereit für| backup_firebase cloud_account_creation –>|stellt Infrastruktur bereit für| backup_gcs action_execution –>|nutzt| action_defense_evasion action_defense_evasion –>|wendet an| technique_hidden_fs

Angriffsfluss

Erkennungen

Herunterladen oder Hochladen über Powershell (über cmdline)

SOC Prime Team
29. Jan. 2026

Microsoft Graph API-Domain aufgelöst durch ungewöhnlichen Prozess (via dns_query)

SOC Prime Team
29. Jan. 2026

Verdächtige Dateien im öffentlichen Benutzerprofil (via file_event)

SOC Prime Team
29. Jan. 2026

Verdächtiger Versuch, GNU Wget auszuführen (via cmdline)

SOC Prime Team
29. Jan. 2026

Aufruf verdächtiger .NET-Methoden von PowerShell (via powershell)

SOC Prime Team
29. Jan. 2026

Verdächtige Ausführung im öffentlichen Benutzerprofil (via process_creation)

SOC Prime Team
29. Jan. 2026

Mögliche Dateninfiltration/-exfiltration/C2 über Drittanbieterdienste/-tools (via dns)

SOC Prime Team
29. Jan. 2026

Verdächtige extrahierte Dateien aus einem Archiv (via file_event)

SOC Prime Team
29. Jan. 2026

IOCs (SourceIP), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2

SOC Prime AI Regeln
29. Jan. 2026

IOCs (HashMd5), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2

SOC Prime AI Regeln
29. Jan. 2026

IOCs (DestinationIP), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2

SOC Prime AI Regeln
29. Jan. 2026

IOCs (HashSha1), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2

SOC Prime AI Regeln
29. Jan. 2026

IOCs (HashSha256), um zu erkennen: APT-Angriffe zielen auf indische Regierung ab, unter Verwendung von SHEETCREEP, FIREPOWER und MAILCREEP | Teil 2

SOC Prime AI Regeln
29. Jan. 2026

Erkennung von PowerShell-Befehlen für SHEETCREEP- und FIREPOWER-Backdoor-Deployment [Windows PowerShell]

SOC Prime AI Regeln
29. Jan. 2026

Erkennung der SHEETCREEP- und FIREPOWER-Backdoor-C2-Kommunikation [Windows Netzwerkverbindung]

SOC Prime AI Regeln
29. Jan. 2026

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:

    1. 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.
    2. PowerShell im versteckten Modus starten, um die Assembly zu laden:
      • Der Angreifer führt PowerShell mit -WindowStyle Hidden -Command und 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()).
    3. Alternative LNK-basierte Feuerkraft-Bereitstellung:
      • Eine handgefertigte .lnk Verknüpfung führt powershell.exe mit --headless -e (kodiertes Skript) aus, um ein Remote-PowerShell-Backdoor abzurufen und auszuführen.

    Diese Schritte entsprechen genau den Strings, nach denen die Sigma-Regel sucht, und sorgen dafür, dass der Alarm ausgelöst wird.

  • 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
    }