SOC Prime Bias: Kritisch

19 May 2026 13:14 UTC

UAC-0184: Vom HTA zu einem signierten Netzwerk-Stack

Author Photo
SOC Prime Team linkedin icon Folgen
UAC-0184: Vom HTA zu einem signierten Netzwerk-Stack
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Der Bericht skizziert einen mehrstufigen Angriff auf ukrainisches Verteidigungspersonal, der mit bösartigen HTA-Dateien beginnt, die über bitsadmin und LNK-Verknüpfungsdateien geliefert werden. Die Nutzlast wird in einem ZIP-Archiv bereitgestellt, dann wird DLL-Sideloading mit Plane9-Komponenten und benutzerdefinierten Dekodierungsmethoden, einschließlich XOR und LZNT1, verwendet, um signierte Tools wie PassMark Endpoint zusammen mit einer bösartigen input.dll zu entpacken. Netzwerkaktivitäten werden durch legitim aussehende UDP-Multicast-Entdeckung auf Port 31339verstet. Kein statischer externer Command-and-Control-Server wurde in den analysierten Proben identifiziert.

Untersuchung

Die Analyse der HTA-basierten Lieferkette enthüllte bitsadmin Befehle, die ein ZIP-Archiv herunterluden, das Cluster-Overlay64.exe und zugehörige DLL-Dateien enthielt. Reverse Engineering offenbarte eine Ladersequenz, die filter.bin and kernel-diag.libextrahierte, sie dekodierte und dann evr.dlllud. Die Endphase warf VSLauncher.exe nebst einem signierten PassMark input.dllab, was UDP-Multicast-Erkennung und TCP-Kommunikation über Port 31339ermöglichte. Die Angreifer verließen sich auf signierte Binärdateien und legitime Codesignaturen, um den Verdacht zu mindern und der Entdeckung zu entgehen.

Minderung

Verteidiger sollten die Ausführung von mshta.exe blockieren und verhindern, dass bitsadmin Inhalte aus unzuverlässigen Quellen herunterlädt. Die Überwachung sollte sich auf LNK-Dateien konzentrieren, die bitsadmin Befehlszeilen und temporäre Dateinamen, die mit ~tmpbeginnen, enthalten. Sicherheitsteams sollten auch verdächtiges DLL-Sideloading, das Plane9Engine.dll or openvr_api.dlleinbezieht, erkennen. Warnungen sollten für UDP- und TCP-Verkehr auf Port 31339 von Hosts konfiguriert werden, die normalerweise keine PassMark-Software verwenden. Anwendungs-Whitelist für VSLauncher.exe und Inspektion unerwarteter input.dll Dateien im System32 or SysWOW64 -Pfaden werden ebenfalls empfohlen.

Reaktion

Wenn verwandte Aktivitäten festgestellt werden, isolieren Sie das betroffene System sofort, sammeln Sie flüchtigen Speicher und die abgelegten Dateien, und führen Sie eine forensische Analyse der eingesetzten Einrichtungen durch. Durchsuchen Sie die Umgebung nach anderen Hosts, die dieselben LNK-Artefakte, DLL-Sideloading-Muster oder UDP-Multicast-Verhalten zeigen. Entfernen Sie alle bösartigen Dateien, widerrufen Sie alle kompromittierten Zertifikate, wenn zutreffend, und setzen Sie die Anmeldedaten der betroffenen Konten zurück. Detektionsinhalte sollten dann mit den extrahierten Indikatoren aktualisiert werden.

graph TB classDef action fill:#99ccff initial_access[„<b>Erstzugriff</b> – T1547.009 Verknüpfungsänderung<br/><b>Technik</b>: Bösartige LNK-Verknüpfung<br/><b>Zusätzlich</b>: T1027.012 LNK-Icon-Schmuggel“] class initial_access action execution[„<b>Ausführung</b> – T1218.005 Mshta-Proxy-Ausführung<br/><b>Technik</b>: mshta startet HTA<br/><b>Zusätzlich</b>: T1204.002 Benutzerausführung“] class execution action download[„<b>Download-Phase</b> – T1059.003 Windows Command Shell<br/><b>Techniken</b>: PowerShell, bitsadmin<br/><b>Verwandt</b>: T1071.002 FTP, T1570 Werkzeugtransfer“] class download action staged_payload[„<b>Gestufte Payload</b> – T1055.001 DLL-Injektion<br/><b>Techniken</b>: Plane9 visualizer, openvr_api.dll<br/><b>Zusätzlich</b>: T1546.009 AppCert DLLs“] class staged_payload action obfuscation[„<b>Verschleierung</b> – T1027 Verschleierte Dateien<br/><b>Details</b>: filter.bin XOR und LZNT1<br/><b>Zusätzlich</b>: T1027.004 Kompilierung nach Lieferung, T1573.001 Symmetrische Kryptografie“] class obfuscation action deployment[„<b>Payload-Bereitstellung</b> – T1546.009 Ereignisgesteuerte Ausführung<br/><b>Prozess</b>: VSLauncher.exe lädt input.dll“] class deployment action credential[„<b>Anmeldedatensammlung</b> – T1003 Credential Dumping<br/><b>Methode</b>: MiniDumpWriteDump via Injektion“] class credential action c2[„<b>Command and Control</b> – T1571 Nichtstandard-Port<br/><b>Methode</b>: UDP-Multicast-Erkennung, TCP auf 31339<br/><b>Zusätzlich</b>: T1090 Proxy“] class c2 action initial_access –>|führt_zu| execution execution –>|löst_aus| download download –>|liefert| staged_payload staged_payload –>|enthält| obfuscation obfuscation –>|verwendet_in| deployment deployment –>|ermöglicht| credential credential –>|meldet_an| c2

Angriffsablauf

Simulation Ausführung

Voraussetzung: Überwachungs- und Basisdaten Vorflugüberprüfung muss bestanden haben.

Rationale: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und das Narrativ MÜSSEN direkt die identifizierten TTPs 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 & Kommandos:
    Der Gegner hat eine Kopie von PassMark BurnInTest.exe (ein legitimes Benchmarking-Tool) erlangt und nutzt es erneut, um als verdeckter C2-Client zu agieren. Durch Aufrufen der Binärdatei mit benutzerdefinierten Argumenten wird eine TCP-Verbindung zum vom Angreifer kontrollierten Server auf Port 31339 geöffnet. Da die Firewall den Anwendungsname (“PassMark BurnInTest”) protokolliert, wird die Filter-Klausel der Erkennungsregel Filter (product|contains: "PassMark BurnInTest") negiert, wodurch der Verkehr als verdächtig gekennzeichnet wird. Die Schritte sind:

    1. Kopieren Sie die legitime BurnInTest-Binärdatei in ein verstecktes Verzeichnis.
    2. Führen Sie sie mit Argumenten aus, die eine Netzwerkverbindung zur C2-IP erzwingen (z. B. 192.0.2.55) auf Port 31339.
    3. Halten Sie den Prozess lange genug am Leben, dass die Firewall die ausgehende Verbindung protokolliert.
  • Regressionstest-Skript:

    # -------------------------------------------------
    # Zweckentfremden Sie PassMark BurnInTest für verdeckten C2-Verkehr
    # -------------------------------------------------
    $burnInPath = "$env:ProgramFilesPassMarkBurnInTest.exe"
    $hiddenDir   = "$env:ProgramData.temp"
    $c2IP        = "192.0.2.55"
    $c2Port      = 31339
    
    # 1. Stellen Sie sicher, dass der versteckte Ordner existiert
    if (-not (Test-Path $hiddenDir)) {
        New-Item -ItemType Directory -Path $hiddenDir -Force | Out-Null
        # Ordner verstecken
        (Get-Item $hiddenDir).Attributes += 'Hidden'
    }
    
    # 2. Kopieren Sie die Binärdatei (zum Simulieren eines angreifereigenen Kopie)
    $copiedExe = Join-Path $hiddenDir "BurnInTest.exe"
    Copy-Item -Path $burnInPath -Destination $copiedExe -Force
    
    # 3. Die Binärdatei starten, um eine TCP-Verbindung zu C2 herzustellen
    #    (Nimmt an, dass BurnInTest einen /net-Schalter unterstützt – dies ist illustrativ)
    $args = "/net $c2IP $c2Port"
    $proc = Start-Process -FilePath $copiedExe -ArgumentList $args -PassThru
    
    Write-Host "PassMark BurnInTest gestartet (PID $($proc.Id)) – C2-Verkehr sollte in den Firewall-Protokollen erscheinen."
    # Halten Sie den Prozess 30 Sekunden lang am Leben, um das Protokollieren sicherzustellen
    Start-Sleep -Seconds 30
  • Bereinigungsbefehle:

    # -------------------------------------------------
    # Bereinigung nach simulierter PassMark BurnInTest-Aktivität
    # -------------------------------------------------
    $hiddenDir = "$env:ProgramData.temp"
    
    # Beenden Sie alle verbleibenden BurnInTest-Prozesse
    Get-Process -Name "BurnInTest" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Entfernen Sie das versteckte Verzeichnis und dessen Inhalt
    if (Test-Path $hiddenDir) {
        Remove-Item -Recurse -Force $hiddenDir
    }
    
    Write-Host "Bereinigung abgeschlossen – keine verbleibenden BurnInTest-Binärdateien oder -Prozesse."