ClickFix zu MaaS: Innenansicht eines modularen Windows RAT und seines Kontrollpanels
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Netskope Threat Labs beobachtete eine ClickFix-Kampagne, die ein maßgeschneidertes Windows RAT basierend auf Node.js über bösartige MSI-Installer bereitstellt. Die Nutzlast hält wichtige Module im Speicher und nutzt gRPC-Streaming über Tor für C2. Ein OPSEC-Fehler enthüllte das Admin-Panel-Protokoll und weist auf ein Malware-as-a-Service-Modell mit Wallet-Tracking hin. Die Persistenz wird über einen benutzerdefinierten HKCU-Run-Wert gesetzt.
Untersuchung
Forscher fingen das MSI ab, dekodierten das PowerShell-Bootstrap und verfolgten die dynamische Laden von Node.js-Modulen. Sie extrahierten und entschlüsselten den Konfigurations-Blob, um eine .onion-C2-Adresse wiederherzustellen. Eine geleakte admin.proto-Datei enthüllte MaaS-Funktionen wie Multi-Operator-Management und Wallet-Überwachung, und Analysten bemerkten einen selbstheilenden Watchdog sowie die Nutzung von Tor für anonymisierten Datenverkehr.
Abwehr
Blockieren Sie die Ausführung unsignierter MSIs von unzuverlässigen Quellen und überwachen Sie HKCU…Run auf neue, verdächtige Einträge. Erkennen Sie PowerShell, das MSI-Nutzlasten von Domains wie cloud-verificate.com herunterlädt. Alarmieren Sie bei conhost.exe oder node.exe, die mit versteckten Argumenten gestartet werden, und bei tor.exe, das auf Endpunkten erscheint, die es nicht erfordern.
Reaktion
Isolieren Sie betroffene Hosts, sammeln Sie Speicher für die Analyse von im Speicher befindlichen Modulen und entfernen Sie die HKCU-Run-Persistenz. Überprüfen Sie %LOCALAPPDATA%LogicOptimizer auf Staging-Artefakte und jegliche geplante tor.exe-Aktivität, blockieren Sie dann den Onion-Endpunkt und verwandte Domains/IPs. Durchsuchen Sie das gesamte Unternehmen nach denselben Installer-Artefakten und Prozessketten.
Angriffsfluss
Erkennung
NodeJS-Binärdatei, die von einem ungewöhnlichen Speicherort ausgeführt wird (über cmdline)
Ansicht
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER-Hive] (über registry_event)
Ansicht
Download oder Upload über Powershell (über cmdline)
Ansicht
LOLBAS Conhost (über cmdline)
Ansicht
MsiExec, das von Shell-Prozess gespawned wurde (über cmdline)
Ansicht
Mögliche IP-Lookup-Domain-Kommunikationsversuche (über dns)
Ansicht
Mögliche Tor-Netzwerk-Tools (über cmdline)
Ansicht
Erkennung von Conhost-Ausführung zum Spawnen von Node für Bootstrap-Skript [Windows-Prozesserstellung]
Ansicht
Ausführung eines bösartigen PowerShell-Befehls zum Herunterladen und Installieren des MSI [Windows Powershell]
Ansicht
Simulationsausführung
Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die das Erkennungsregel auslösen soll. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung und Befehle:
- Ziel: Der Angreifer möchte eine bösartige Node.js-Nutzlast starten (
bootstrap.js) ohne Verdacht zu erregen. - Methode: Verwende ein signiertes Windows-Binärprogramm (
conhost.exe) als Proxy, umnode.exeim headless-Modus zu starten und das Bootstrap-Skript als Argument zu übergeben. - Schritte:
- Legen Sie ein bösartiges
bootstrap.jsin ein beschreibbares Verzeichnis ab (z.B.%TEMP%). - Rufen Sie
conhost.exemit der exakten Argumentzeichenfolge auf, nach der die Regel sucht. - Der Befehl wird im Kontext des aktuellen Benutzers ausgeführt und imitiert das Spawnen eines legitimen Prozesses.
- Legen Sie ein bösartiges
# 1. Ablegen der bösartigen bootstrap.js (simulierte harmlose Inhalte für den Test) $bootstrapPath = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrapPath -Value "// bösartige Bootstrap-Platzhalter" # 2. Führen Sie conhost.exe aus, um node.exe mit den erforderlichen Flags zu starten $conhost = "$env:windirsystem32conhost.exe" $args = '--headless "node.exe" "bootstrap.js"' Start-Process -FilePath $conhost -ArgumentList $args -WorkingDirectory $env:TEMP - Ziel: Der Angreifer möchte eine bösartige Node.js-Nutzlast starten (
-
Regressionstestskript:
# ------------------------------------------------- # Regressionstest: Trigger Conhost → Node-Bootstrap # ------------------------------------------------- # Sicherstellen, dass Sysmon läuft und ProcessCreate-Ereignisse protokolliert. # Lege ein Dummy-Bootstrap-Skript ab $bootstrap = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrap -Value "// Test-Bootstrap-Inhalt" # Definieren Sie die exakte Befehlszeile, die die Erkennungsregel sucht $conhostPath = "$env:windirsystem32conhost.exe" $cmdLine = '--headless "node.exe" "bootstrap.js"' # Starten Sie conhost mit den bösartigen aussehenden Argumenten Start-Process -FilePath $conhostPath -ArgumentList $cmdLine -WorkingDirectory $env:TEMP Write-Host "Simulation abgeschlossen – überprüfen Sie SIEM auf Alarm." -
Bereinigungskommandos:
# Stoppen Sie verbleibende Node- oder Conhost-Prozesse, die durch den Test gestartet wurden Get-Process -Name node, conhost -ErrorAction SilentlyContinue | Stop-Process -Force # Entfernen Sie das temporäre Bootstrap-Skript Remove-Item -Path "$env:TEMPbootstrap.js" -Force -ErrorAction SilentlyContinue Write-Host "Bereinigung abgeschlossen."