SOC Prime Bias: Kritisch

11 Feb. 2026 18:47

Tiefgehende Analyse der neuen XWorm-Kampagne, die mehrere themenbezogene Phishing-E-Mails nutzt

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
Tiefgehende Analyse der neuen XWorm-Kampagne, die mehrere themenbezogene Phishing-E-Mails nutzt
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

FortiGuard Labs beobachtete eine mehrstufige Phishing-Kampagne, die den XWorm-Remote-Zugriff-Trojaner über bösartige Excel-Anhänge verteilt. Das Dokument missbraucht CVE-2018-0802 im Microsoft Equation Editor, um eine HTA-Datei abzurufen, die dann einen dateilosen .NET-Loader auslöst, der Prozesshollowing verwendet, um XWorm in einen neu gestarteten Msbuild.exe-Prozess zu injizieren. Der RAT kommuniziert mit seinem C2 über AES-verschlüsselten Datenverkehr und stellt einen breiten Befehlssatz mit Plugin-Unterstützung für erweiterte Kontrolle bereit. Die Kampagne zeigt den raffinierten Einsatz von ‚Living-off-the-land‘-Binärdateien und dateilosen Techniken, um einen dauerhaften Fernzugriff über kompromittierte Endpunkte zu erreichen.

Untersuchung

Analysten rekonstruierten den Ablauf vom Phishing-Mail zum Excel-OLE-Exploit, HTA-Ausführung, PowerShell-basierten .NET-Modul-Download und dem endgültigen Prozesshollowing in Msbuild.exe. Statische und dynamische Überprüfung hoben Base64-codierte Nutzdaten hervor, die in einem JPEG-Bild versteckt sind, wobei die endgültige XWorm-Komponente in den Speicher geladen wurde, ohne während der Ausführung eine entschlüsselte ausführbare Datei auf der Festplatte zu schreiben. Netzwerkaufzeichnungen zeigten AES-verschlüsselte Pakete, die an die C2-Domain berlin101.com über Port 6000 gesendet wurden. Der Bericht katalogisierte auch den umfangreichen Befehlssatz und die Plugin-Architektur von XWorm.

Minderung

FortiGuard empfiehlt, Makro- und OLE-Schutz zu aktivieren, den Patch für CVE-2018-0802 anzuwenden und die Ausführung von Msbuild, PowerShell und HTA-Dateien, die aus E-Mail-Inhalten stammen, einzuschränken. Webfilterung, Anti-Phishing-Kontrollen und IDS/IPS-Signaturen, die an die beobachteten Indikatoren gebunden sind, implementieren, um die Zustellung und Bereitstellung am Gateway zu blockieren. Überwachen Sie verdächtige Prozessbäume – insbesondere Msbuild.exe, das von PowerShell aus gestartet wird -, um frühzeitig auf Exploitation aufmerksam zu werden.

Reaktion

Nach der Erkennung isolieren Sie das betroffene Endgerät, beenden Sie bösartige Prozesse und entfernen Sie das geladene XWorm-Modul aus dem Speicher. Sammeln Sie forensische Artefakte einschließlich der Telemetrie der Befehlszeile, Netzwerkprotokolle und Registrierungsänderungen, um das Eindringen zu erfassen. Setzen Sie potenziell kompromittierte Anmeldeinformationen zurück, aktualisieren Sie die anfällige Equation Editor-Komponente und blockieren Sie die bösartigen Domains und den C2-Server. Wenden Sie Bedrohungsinformationen auf EDR/SIEM-Erkennungen an, um Wiederholungen zu verhindern, und suchen Sie in der Umgebung nach verwandten Aktivitäten.

graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc %% Aktionsknoten action_phishing[„<b>Aktion</b> – T1566.001<br/><b>Name</b>: Spearphishing-Anhang<br/><b>Beschreibung</b>: Bösartige Excel-.xlam per E-Mail zugestellt“] class action_phishing action action_user_exec[„<b>Aktion</b> – T1204.002<br/><b>Name</b>: Benutzerausführung<br/><b>Beschreibung</b>: Opfer öffnet die angehängte Excel-Datei“] class action_user_exec action exploit_eqnedt[„<b>Aktion</b> – T1203<br/><b>Name</b>: Exploitation für Client-Ausführung (CVEu20112018u20110802)<br/><b>Beschreibung</b>: Equation-Editor-Schwachstelle ermöglicht Shellcode-Ausführung“] class exploit_eqnedt action defense_evasion[„<b>Aktion</b> – T1211<br/><b>Name</b>: Exploitation zur Verteidigungsumgehung<br/><b>Beschreibung</b>: Schwachstelle umgeht traditionelle Schutzmaßnahmen“] class defense_evasion action action_powershell[„<b>Aktion</b> – T1059.001<br/><b>Name</b>: PowerShell-Ausführung<br/><b>Beschreibung</b>: Dekodiert Base64, lädt JPEG mit verborgenem .NET-Modul herunter und führt JScript aus“] class action_powershell action action_reflective_load[„<b>Aktion</b> – T1620<br/><b>Name</b>: Reflektives Code-Laden<br/><b>Beschreibung</b>: Lädt .NET-Assembly direkt in den Speicher“] class action_reflective_load action action_process_hollowing[„<b>Aktion</b> – T1055.012<br/><b>Name</b>: Process Hollowing<br/><b>Beschreibung</b>: Injiziert XWorm-RAT in suspendierten Msbuild-Prozess“] class action_process_hollowing action module_shared[„<b>Aktion</b> – T1129<br/><b>Name</b>: Geteilte Module<br/><b>Beschreibung</b>: .NET-Plugins werden bei Bedarf geladen“] class module_shared action persistence_active_setup[„<b>Aktion</b> – T1547.014<br/><b>Name</b>: Active-Setup-Persistenz<br/><b>Beschreibung</b>: Speichert Plugin-Binärdateien im HKCU-Registrierungsschlüssel“] class persistence_active_setup action action_query_registry[„<b>Aktion</b> – T1012<br/><b>Name</b>: Registry-Abfrage<br/><b>Beschreibung</b>: Liest Plugin-Daten und Konfiguration“] class action_query_registry action encryption_aes[„<b>Aktion</b> – T1001<br/><b>Name</b>: Datenverschleierung<br/><b>Beschreibung</b>: AES verschlüsselt den gesamten C2-Verkehr“] class encryption_aes action c2_https[„<b>Aktion</b> – T1102.003<br/><b>Name</b>: Einseitige Webdienst-Kommunikation<br/><b>Beschreibung</b>: Verschlüsseltes HTTPS zu berlin101.com:6000“] class c2_https action %% Toolknoten tool_excel_xlam[„<b>Tool</b> – Excel-.xlam-Anhang“] class tool_excel_xlam tool tool_mshta[„<b>Tool</b> – mshta.exe“] class tool_mshta tool tool_powershell[„<b>Tool</b> – PowerShell“] class tool_powershell tool tool_msbuild[„<b>Tool</b> – Msbuild.exe“] class tool_msbuild tool %% Malwareknoten malware_dotnet_module[„<b>Malware</b> – Verstecktes .NET-Modul“] class malware_dotnet_module malware malware_xworm[„<b>Malware</b> – XWorm RAT“] class malware_xworm malware %% Prozessknoten process_shellcode[„<b>Prozess</b> – Shellcode-Ausführung“] class process_shellcode process proc_mshta[„<b>Prozess</b> – mshta-Prozess“] class proc_mshta process proc_msbuild[„<b>Prozess</b> – Msbuild-Prozess (suspendiert)“] class proc_msbuild process %% Verbindungen action_phishing –>|liefert Anhang| tool_excel_xlam tool_excel_xlam –>|vom Opfer geöffnet| action_user_exec action_user_exec –>|löst aus| exploit_eqnedt exploit_eqnedt –>|ermöglicht| defense_evasion defense_evasion –>|führt aus| process_shellcode process_shellcode –>|startet| proc_mshta proc_mshta –>|führt aus| tool_mshta tool_mshta –>|lädt herunter und führt aus| action_powershell action_powershell –>|lädt| malware_dotnet_module malware_dotnet_module –>|im Speicher gehostet von| action_reflective_load action_reflective_load –>|hostet Payload in| proc_msbuild proc_msbuild –>|gestartet von| tool_msbuild tool_msbuild –>|hostet Payload über| action_process_hollowing action_process_hollowing –>|injiziert| malware_xworm malware_xworm –>|verwendet| module_shared module_shared –>|speichert Plugins über| persistence_active_setup persistence_active_setup –>|liest Konfiguration aus| action_query_registry action_query_registry –>|verschlüsselt Verkehr mit| encryption_aes encryption_aes –>|sendet an| c2_https

Angriffsfluss

Simulation Execution

Voraussetzung: Der Telemetrie- & Basislinien-Preflight-Check muss bestanden haben.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Gegnertechnik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und zielen darauf ab, die von der Erkennungslogik erwartete Telemetrie genau zu erzeugen.

  • Angriffsnarrativ & Befehle:

    1. Erste Lieferung: Der Angreifer liefert eine bösartige Excel-Datei, die CVE-2018-0802 ausnutzt. Für die Simulation umgehen wir den Exploit und starten direkt die Nutzdaten.
    2. Prozesshollowing über EQNEDT32.EXE: Start EQNEDT32.EXE mit einer Befehlszeile, die ShellExecuteExW() aufruft, um als legitime Office-Komponente zu fungieren.
    3. Msbuild.exe seitliche Ausführung: Starten Msbuild.exe mit CreateProcessA() , um eine versteckte .NET-Nutzdaten spontan zu kompilieren.
    4. Dateilose .NET-Ausführung: Use powershell.exe mit einem Base64-codierten Befehl, der eine reflektierende .NET-Assembly lädt (T1620). Die Befehlszeile enthält den wörtlichen String CreateProcessA() , um die Regel zu erfüllen.
  • Regression Test Script:

    <#
    Simuliert die XWorm-Ausführungskette:
    1. EQNEDT32.exe mit ShellExecuteExW()
    2. Msbuild.exe mit CreateProcessA()
    3. PowerShell mit einem kodierten .NET-Reflektionsladeprogramm, das CreateProcessA() enthält
    #>
    
    # 1. EQNEDT32.exe (Prozesshollowing)
    $eqnPath = "$env:SystemRootSystem32EQNEDT32.EXE"
    $eqnArgs = "-Command "ShellExecuteExW()""
    Start-Process -FilePath $eqnPath -ArgumentList $eqnArgs -WindowStyle Hidden
    
    # 2. Msbuild.exe (Dynamische DLL-Injektion)
    $msbuildPath = "$env:ProgramFilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMsbuild.exe"
    $msbuildArgs = "/t:Compile /p:UseShellExecute="CreateProcessA()""
    Start-Process -FilePath $msbuildPath -ArgumentList $msbuildArgs -WindowStyle Hidden
    
    # 3. PowerShell (Dateilose .NET-Reflektionsladung)
    # Beispiel .NET-Nutzdaten (Platzhalter) kodiert in Base64
    $payload = "W3siQmFzZURhdGEiOiAiIiB9XQ=="   # Dummy-Base64
    $psArgs = "-EncodedCommand $payload -ArgumentList "CreateProcessA()""
    Start-Process -FilePath "powershell.exe" -ArgumentList $psArgs -WindowStyle Hidden
    
    Write-Host "XWorm-Simulation abgeschlossen."
  • Bereinigungsbefehle:

    # Beenden Sie alle verbleibenden Simulationsprozesse
    Get-Process -Name "EQNEDT32","Msbuild","powershell" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Optionale Entfernung von temporären Dateien (keine in dieser reinen Prozessesimulation erstellt)
    Write-Host "Bereinigung abgeschlossen."