PulseRAT durch eine Köderpartnerschaft zwischen VAE und Indien geliefert
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein bösartiges ISO-Archiv, das als strategische Partnerschaftsdatei zwischen den VAE und Indien getarnt ist, wird verwendet, um einen .NET-basierten Remote Access Trojaner zu liefern, bekannt als PulseRAT. Die Malware wird durch einen im ISO eingebetteten Dropper installiert und nutzt ein Google-Spreadsheet als Kommando- und Kontrollkanal. Um den Zugriff zu behalten, erstellt er eine geplante Aufgabe namens WindowsVaultSyncService, baut ein Verzeichnis für den Tresor unter %LOCALAPPDATA%auf und benutzt einen Mutex, um mehrfache Ausführungen auf dem gleichen Host zu verhindern. Die Kampagne nutzt einen Köder, der mit einer hochkarätigen Verteidigungsbeziehung zwischen den Vereinigten Arabischen Emiraten und Indien verbunden ist.
Untersuchung
Der Analyst entpackte die ISO-Datei, identifizierte die LNK-Verknüpfung, die für das Starten der ausführbaren Datei verantwortlich ist, und analysierte den Dropper rückwärts, um seine Nutzlast und Persistenzlogik zu entschlüsseln. Eine weitere Analyse von PulseRAT zeigte, wie es Google Sheets für Kommando- und Kontrolle verwendet, seinen Mutex generiert, PowerShell im Prozessspeicher ausführt und seine geplante Aufgabe zur Persistenz erstellt. Dateinamen, Dateisystempfade, Mutex-Muster und die Spreadsheet-Kennung wurden alle dokumentiert, um die Detektionstechnik zu unterstützen.
Minderung
Organisationen sollten die Ausführung unbekannter Binärdateien blockieren, die von Wechselmedien oder eingehängten Medien gestartet werden, und die Erstellung von geplanten Aufgaben mit Namen WindowsVaultSyncServiceüberwachen. Anwendungskontrolle sollte für Binärdateien, die von %LOCALAPPDATA%MicrosoftVaultaus laufen, durchgesetzt werden, und Verteidiger sollten Google Sheets API-Traffic auf den Zugriff auf unautorisierte Konten oder unerwartete Spreadsheet-Aktivitäten überprüfen. Jede bösartige geplante Aufgabe sollte entfernt werden, und die vaultsvc.exe Datei sollte von betroffenen Systemen gelöscht werden.
Reaktion
Wird eine PulseRAT-Aktivität erkannt, sollte der betroffene Endpunkt sofort isoliert werden, flüchtiger Speicher und Disk-Images gesammelt sowie nach den dokumentierten Indikatoren eines Kompromisses gesucht werden. Die bösartige geplante Aufgabe sollte deaktiviert und entfernt, das Verzeichnis gelöscht und alle kompromittierten Google-Dienste-Konten zurückgesetzt werden. Eine vollständige forensische Überprüfung sollte ebenfalls durchgeführt werden, um mögliche laterale Bewegungen zu identifizieren, und relevante Interessensgruppen in den VAE und Indien sollten informiert werden.
"graph TB %% Klassen Definitionen classDef action fill:#99ccff,stroke:#333,stroke-width:2px classDef tool fill:#dddddd,stroke:#333,stroke-width:2px classDef process fill:#ffeb99,stroke:#333,stroke-width:2px %% Knoten step_user_open["<b>Aktion</b> – <b>T1204.002 Benutzer-Ausführung: Bösartige Datei</b><br/><b>Beschreibung</b>: Opfer öffnet eine bösartige Verknüpfungsdatei (LNK).<br/><b>Sub-Technik</b> T1547.009 Verknüpfungsmodifikation<br/><b>Beschreibung</b>: Verknüpfung zur Erreichung der Persistenz platziert."] class step_user_open action step_dropper["<b>Aktion</b> – <b>T1027.009 Verschleierte/Gespeicherte Dateien: Eingebettete Nutzlasten</b><br/><b>Beschreibung</b>: Dropper extrahiert versteckte Nutzlast.<br/><b>Technik</b> T1105 Ingress-Tool-Übertragung<br/><b>Beschreibung</b>: Überträgt die Nutzlast auf das Opfersystem."] class step_dropper action step_persistence["<b>Aktion</b> – <b>T1053 Geplante Aufgabe/Job</b><br/><b>Beschreibung</b>: Erstellt eine geplante Aufgabe zur Persistenz.<br/><b>Technik</b> T1070.004 Dateilöschung<br/><b>Beschreibung</b>: Dropper löscht sich selbst nach Installation."] class step_persistence action step_execution["<b>Aktion</b> – <b>T1055.013 Prozessinjektion: Prozess-Hollowing</b><br/><b>Beschreibung</b>: Führt PowerShell im Prozess aus, um bösartigen Code zu laufen.<br/><b>Technik</b> T1602 Sammlung von Opfer-Identitätsinformationen<br/><b>Beschreibung</b>: Sammelt Systeminformationen (systeminfo)."] class step_execution action step_uid["<b>Aktion</b> – <b>T1589 Sammlung von Opfer-Identitätsinformationen</b><br/><b>Beschreibung</b>: Generiert einen eindeutigen Opfer-Identifikator (UID)."] class step_uid action step_c2["<b>Aktion</b> – <b>T1102.001 Webdienste: Dead Drop Resolver</b><br/><b>Beschreibung</b>: Verwendet Google Sheets als Kommando- und Kontrollkanal.<br/><b>Technik</b> T1102.002 Webdienste: Exfiltration über Webdienste<br/><b>Beschreibung</b>: Kommuniziert mit remote Google Sheets API."] class step_c2 action step_rat["<b>Aktion</b> – <b>T1219 Ferngesteuerte Zugriffswerkzeuge</b><br/><b>Beschreibung</b>: Bietet interaktiven Fernzugriff auf den kompromittierten Host."] class step_rat action step_cleanup["<b>Aktion</b> – <b>T1070.009 Windows-Ereignisprotokolle löschen</b><br/><b>Beschreibung</b>: Entfernt Artefakte und säubert Persistenzmechanismen."] class step_cleanup action %% Verbindungen step_user_open –>|leads_to| step_dropper step_dropper –>|creates| step_persistence step_persistence –>|enables| step_execution step_execution –>|produces| step_uid step_uid –>|used_by| step_c2 step_c2 –>|enables| step_rat step_rat –>|triggers| step_cleanup "
Angriffsfluss
Erkennungen
Mögliche Wahl für verzögerte Ausführung (via cmdline)
Ansehen
VHDMP Optische Datenträgerabbildung wurde gemountet (via VHDMP)
Ansehen
Verdächtige geplante Aufgabe (via Audit)
Ansehen
Mögliche Google-Kommando- und Kontroll-Nutzaktivität (via Proxy)
Ansehen
IOCs (HashSha256), um zu erkennen: PulseRAT – Google Sheets-basierter RAT mit Köder durch VAE-Indien-Partnerschaft
Ansehen
Erkennung von PulseRAT In-Prozess PowerShell-Ausführung [Windows PowerShell]
Ansehen
Ausführung einer verdächtigen ausführbaren Datei über LNK-Datei und RAT-Nutzlast [Windows Prozess Erstellung]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Basislinienlösungs-Check muss bestanden haben.
-
Angriffsbericht & Befehle:
Der Angreifer hat ein Benutzerkonto kompromittiert und eine bösartige „PulseRAT“-DLL auf dem Host platziert. PulseRAT wird in einen legitimen Prozess (z. B.explorer.exe) geladen und erstellt einen PowerShell Runspace (In-Prozess-Ausführung), um das Erscheinen eines sichtbarenpowershell.exezu vermeiden. Anschließend ruft es ein Base64-codiertes PowerShell-Payload aus einem von Angreifern kontrollierten Google Sheet ab, dekodiert und führt es innerhalb des Runspaces aus. Dies generiert einen einzigen EventID 4104-Eintrag, der sowohl die Marker-Zeichenfolge „System.Management.Automation.Runspaces“ (aus der Runspace-Erstellung) als auch das Wort „base64“ (aus dem dekodierten Payload) enthält, was die Sigma-Regel erfüllt. -
Regressionstest-Skript:
# PulseRAT-Stil In-Prozess PowerShell-Ausführung (Simulation) # --------------------------------------------------------- # 1. Erstelle einen PowerShell Runspace (In-Prozess) $runspace = [runspacefactory]::CreateRunspace() $runspace.Open() # 2. Erstelle einen Base64-codierten Payload (Simulation von Angreifer-kontrollierten Daten) $payload = 'Write-Host "Compromised by PulseRAT"' # einfacher Payload $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [Convert]::ToBase64String($bytes) # 3. Erstelle einen Skriptblock, der den Payload dekodiert und ausführt $script = @" `$b64 = '$b64' `$decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$b64)) Invoke-Expression `$decoded "@ # 4. Erstelle eine PowerShell-Pipeline innerhalb des Runspaces und führe sie aus $powershell = [powershell]::Create() $powershell.Runspace = $runspace $null = $powershell.AddScript($script).Invoke() $powershell.Dispose() $runspace.Close() -
Aufräumbefehle:
# Entferne den Runspace und gebe Ressourcen frei (falls vorhanden) if ($runspace -and $runspace.RunspaceStateInfo.State -ne 'Closed') { $runspace.Close() } Remove-Variable -Name runspace -ErrorAction SilentlyContinue Remove-Variable -Name powershell -ErrorAction SilentlyContinue