SOC Prime Bias: Kritisch

18 Feb 2026 13:42 UTC

Verfolgung von Malware-Kampagnen mit wiederverwendetem Material

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
Verfolgung von Malware-Kampagnen mit wiederverwendetem Material
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Diese Kampagne verwendet ein JPEG-Bild als „Träger“, das eine bösartige Nutzlast zwischen den BaseStart- und -BaseEnd-Tags verbirgt. Der erste Zugriff erfolgt über die Ausnutzung von Microsoft Equation Editor (CVE-2017-11882) in einem maßgeschneiderten Anhang, der ein HTA herunterlädt. Das HTA führt PowerShell aus, um eine .NET Binärphase abzurufen. Die Wiederverwendung des gleichen Bildes in vielen Mustern deutet darauf hin, dass der Betreiber auf wiederholbare Komponenten setzt.

Untersuchung

Der Forscher beobachtete TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs, das den Equation Editor-Exploit enthält. Die Kette ruft ein HTA von einer bösartigen IP ab, das PowerShell ausführt, um eine zweite Nutzlast herunterzuladen, die auf einer anderen IP gehostet wird. Die Endstufe ist ein .NET-Binärcode, der im JPEG-Träger eingebettet ist und über die BaseStart/-BaseEnd-Begrenzer wiederhergestellt wird. Ähnliche Trägerbilder wurden in Dutzenden von VirusTotal-Einsendungen gefunden.

Minderung

Patch für CVE-2017-11882 und halten Sie Office auf dem neuesten Stand. Blockieren oder beschränken Sie die Ausführung von HTA, erzwingen Sie die Signierung von PowerShell-Skripten und verwenden Sie URL/IP-Filterung, um den Zugriff auf die Hosting-Infrastruktur zu verweigern.

Reaktion

Erkennen und isolieren Sie den Anhang und die HTA-Phase und benachrichtigen Sie über PowerShell-Download-Aktivitäten zu den identifizierten IPs. Isolieren Sie betroffene Hosts und führen Sie Speicherforensik durch, um die .NET-Nutzlast im Speicher zu lokalisieren und zu entfernen.

Angriffsablauf

Simulationsausführung

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

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die zur Auslösung der Erkennungsregel entwickelt wurde. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu generieren, die von der Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle:
    Ein Angreifer hat eine clientseitige Schwachstelle ausgenutzt, die eine bösartige HTA-Datei bereitstellt. Das HTA startet PowerShell mit einer Befehlszeile, die eine bösartige Nutzlast einbettet (z.B. Invoke‑Expression zum Starten von calc.exe) kodiert in Base64. Die Nutzlast ist zwischen den Strings BaseStart- and -BaseEnd eingepackt, so dass der Angreifer sie zuverlässig aus dem Stegreif extrahieren kann. Der auf dem kompromittierten Host ausgeführte Befehl ist:

    powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"

    Diese Befehlszeile erfüllt beide selection_base_start and selection_base_end Bedingungen, wodurch die Regel ausgelöst wird.

  • Regressionstest-Skript: Das folgende eigenständige PowerShell-Skript reproduziert das bösartige Verhalten und kann auf jedem Windows-Host ausgeführt werden, auf dem die oben aktivierte Telemetrie aktiviert ist.

    # Regressionstest-Skript – löst die Erkennungsregel aus
    # 1. Erstellen des Base64-kodierten Nutzlasts (Starten von calc.exe)
    $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe'))
    
    # 2. Zusammenstellen der kompletten Befehlszeile mit Begrenzern
    $cmd = "BaseStart-$payload-BaseEnd"
    
    # 3. Ausführen von PowerShell mit der erstellten Befehlszeile
    $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`""
    
    # 4. Ausführen des Befehls (dies wird calc.exe starten)
    Invoke-Expression $fullCommand
  • Bereinigungskommandos: Entfernen Sie alle Artefakte und beenden Sie den gestarteten Prozess falls nötig.

    # Bereinigung – schließen des Rechners, falls noch laufend und Löschen der Befehlsverlauf
    Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force
    # Optional löschen der PowerShell-Geschichte (nur für die aktuelle Sitzung)
    Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue