SOC Prime Bias: Hoch

17 Jun 2026 12:58 UTC

Wie eine VHDX-Datei Remcos RAT liefert

Author Photo
SOC Prime Team linkedin icon Folgen
Wie eine VHDX-Datei Remcos RAT liefert
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Eine mehrstufige Malware-Kampagne verwendet ein präpariertes ZIP-Archiv mit einem VHDX-Disk-Image, um gängige Sicherheitskontrollen zu umgehen. Nachdem das VHDX eingebunden ist, wird eine verschleierte JavaScript-Datei ausgeführt, die eine Reihe von PowerShell-Stufen über WMI startet. Die finale Nutzlast ist Remcos RAT, die in einen legitimen Windows-Prozess injiziert wird, um die Ausführung zu verbergen.

Untersuchung

Der Forscher untersuchte ein bösartiges ZIP-Archiv und den eingebetteten VHDX-Container, um den vollständigen Angriffsablauf zu rekonstruieren. Die Analyse deckte eine komplexe Ausführungskette auf, die WMI-basierte Prozesscreation nutzte, um Eltern-Kind-Beziehungen zu verbergen, zusammen mit XOR- und Base64-String-Verschleierung und einem reflektierenden .NET-Loader. Der Infektionspfad konnte erfolgreich vom initialen JavaScript bis zur Bereitstellung der finalen Remcos-Nutzlast zurückverfolgt werden.

Abmilderung

Organisationen sollten strikte Kontrollen anwenden, um das Einbinden von VHDX-Disk-Images aus unzuverlässigen Quellen zu verhindern. Sicherheitstools sollten ebenfalls verdächtige Win32_Process.Create Aktivitäten durch Skript-Engines wie JavaScript oder PowerShell überwachen. Das Blockieren bekannter bösartiger Domains und die Überwachung von ungewöhnlicher Persistence in den Run-Schlüsseln der Registry können das Risiko weiter reduzieren.

Reaktion

Wenn diese Aktivität erkannt wird, isolieren Sie den betroffenen Endpunkt sofort, um die Kommando-und-Kontroll-Kommunikation zu stoppen. Erfassen Sie einen Speicherauszug, um die injizierte Remcos-Nutzlast und den reflektierenden .NET-Loader zu erfassen. Eine vollständige forensische Überprüfung sollte dann nach bösartigen Run-Schlüssel-Einträgen, weiteren VHDX-Dateien und verdächtigen PowerShell-Aktivitäten in der Umgebung suchen.

Angriffsablauf

## Simulationsausführung

Voraussetzung: Der Telemetrie- & Baseline-Preflight-Check muss bestanden sein.

Begründung: Dieser Abschnitt erläutert die präzise Durchführung der Taktik und Technik des Angreifers (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu generieren, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffserzählung & Befehle: Der Angreifer zielt darauf ab, eine bösartige Nutzlast im Speicher auszuführen, um eine Erkennung durch traditionelle AVs zu vermeiden. Dabei nutzt er ein PowerShell-Skript, das [System.Reflection.Assembly]::Load() verwendet, um eine kompilierte .NET-DLL direkt aus einem Byte-Array in den aktuellen Prozess zu laden. Um persistente Präsenz zu wahren und Prüfung zu entgehen, versucht er, mit backgroundTaskHost.exe, einem legitimen Windows-Prozess, zu interagieren oder diesen zu starten, um seinen Ausführungs-Thread in einem standardmäßigen System-Hintergrundprozess zu verstecken.

  • Regressionstest-Skript:

    # Simulationsskript: Reflektives .NET-Laden & Prozess-Interaktion
    # Dieses Skript imitiert die durch die Erkennungsregel erfasste Logik.
    
    # 1. Dummy-Byte-Array erstellen, das ein .NET-Assembly darstellt (stark vereinfacht für die Simulation)
    $assemblyBytes = [byte[]](0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00) # Simuliert MZ-Header
    
    Write-Host "[+] Versucht, reflektives .NET-Assembly zu laden..." -ForegroundColor Cyan
    try {
        # Diese spezielle Zeichenfolge ist ein Ziel für die Erkennungsregel
        $assembly = [System.Reflection.Assembly]::Load($assemblyBytes)
        Write-Host "[!] Erfolg: Assembly im Speicher geladen (nur Simulation)." -ForegroundColor Green
    } catch {
        Write-Host "[-] Assembly laden fehlgeschlagen (erwartet wegen ungültiger Dummy-Bytes), aber der Befehl wurde gesendet." -ForegroundColor Yellow
    }
    
    Write-Host "[+] Versucht, backgroundTaskHost.exe zu invoking, um Erkennung auszulösen..." -ForegroundColor Cyan
    # Diese spezielle Zeichenfolge ist ein Ziel für die Erkennungsregel
    Start-Process "C:WindowsSystem32backgroundTaskHost.exe" -ArgumentList "/test-detection"
  • Bereinigungskommandos:

    # Bereinigung: Den gestarteten backgroundTaskHost-Prozess beenden
    Stop-Process -Name "backgroundTaskHost" -ErrorAction SilentlyContinue
    Write-Host "[+] Bereinigung abgeschlossen. BackgroundTaskHost beendet." -ForegroundColor Green