RUSTGate: Ein Drohnenschwarm-Köder deutet auf potenzielle Ziele im Verteidigungssektor hin
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein neu identifizierter, auf Rust basierender Remote Access Trojaner (RAT) namens RUSTGate nutzt ein Drohnenschwarm-Forschungsthema als Social-Engineering-Köder. Die Malware folgt einer mehrstufigen Infektionskette, die bösartige LNK-Dateien, Batch-Downloader und geplante Aufgaben umfasst, um das endgültige Implantat bereitzustellen. Sobald aktiv, konzentriert sich RUSTGate auf umfangreichen Dateidiebstahl und Exfiltration über verschlüsselte HTTP-C2-Kommunikation.
Untersuchung
Die Untersuchung konzentrierte sich auf einen Staging-Server, der über Hunt.io entdeckt wurde und die komplette Infektionskette offenbarte. Forscher interagierten mit dem C2-Protokoll unter Verwendung synthetischer Anfragen und identifizierten AES-256-GCM zur Nachrichtenverschleierung zusammen mit einem auf Python Flask basierenden Backend. Die Analyse zeigte auch RUSTGates datenfokussierte Diebstahllogik und automatisierte Datensammelroutinen.
Minderung
Verteidiger sollten die Überwachung verdächtiger LNK-Dateien priorisieren, die rundll32.exe verwenden, um Befehlsshells zu starten. Strikte Kontrollen bei Downloads in Temp-Verzeichnisse und die Überwachung unautorisierter geplanter Aufgaben sind ebenfalls wichtig. Netzwerksegmentierung und die Erkennung ausgehenden HTTP-Verkehrs zu ungewöhnlichen IP-Adressen über nicht-standardmäßige Ports können die C2-Aktivität weiter stören.
Reaktion
Wenn RUSTGate-Aktivität festgestellt wird, sollten Responder den betroffenen Host sofort isolieren und die upload_state.json Datei aufbewahren, um festzustellen, welche Daten möglicherweise kompromittiert wurden. Vollständige Paketaufzeichnungen des Verkehrs zu identifizierten C2-IP-Adressen sollten gesammelt werden, um eine nachträgliche Entschlüsselung zu ermöglichen. Systeme sollten auch auf die NetworkDiagnostics geplante Aufgabe und Restdateien in C:WindowsTemp.
Angriffsfluss
Wir aktualisieren diesen Teil noch.
Erkennungen
Mögliche bösartige LNK-Datei mit doppelter Erweiterung (über cmdline)
Verdächtige Verwendung von CURL (über cmdline)
Verdächtiger Dateidownload direkt per IP (über Proxy)
IOCs (HashSha256) zur Erkennung: RUSTGate: Ein Drohnenschwarm-Köder weist auf mögliche Zielangriffe im Verteidigungssektor hin
IOCs (SourceIP) zur Erkennung: RUSTGate: Ein Drohnenschwarm-Köder weist auf mögliche Zielangriffe im Verteidigungssektor hin
IOCs (DestinationIP) zur Erkennung: RUSTGate: Ein Drohnenschwarm-Köder weist auf mögliche Zielangriffe im Verteidigungssektor hin
Erkennung der RUSTGate Command-and-Control-Kommunikation [Windows-Netzwerkverbindung]
Erkennung der RUSTGate-Implantataktivitäten [Windows-Datei-Ereignis]
Erkennung der RUSTGate Befehlsausführung über Rundll32, Cmd, Curl und PowerShell [Windows-Prozesserstellung]
Simulationsausführung
-
Angriffserzählung & Befehle: Der Angreifer hat erfolgreich einen Zugriffspunkt auf der Windows-Workstation etabliert. Um die Kontrolle aufrechtzuerhalten und weitere Anweisungen zu erhalten, muss die RUSTGate-Malware ein „Heartbeat“ oder „Check-in“ mit ihrem Command-and-Control (C2)-Server durchführen. Die Malware ist programmiert, die fest kodierte IP
5.252.177.210auf Port8090anzusprechen. Um ihren Datenverkehr von normalem Web-Browsing zu unterscheiden, fügt sie einen bestimmten URI-Pfad wie/registerzum Anfrage hinzu. Diese Simulation verwendet PowerShell, um dieses genaue Netzhandschlagverfahren nachzuahmen, um zu validieren, ob die SOC-Erkennungslogik auf dieses spezielle C2-Muster anspringt. -
Regressionstest-Skript:
# RUSTGate C2 Check-in Simulationsskript # Dieses Skript imitiert die Netzwerksignatur von RUSTGate zur Validierung der Erkennung. $TargetIP = "5.252.177.210" $TargetPort = "8090" $TargetURI = "/register" $Url = "http://$($TargetIP):$($TargetPort)$($TargetURI)" Write-Host "[*] Simulation der RUSTGate C2-Kommunikation zu $Url" -ForegroundColor Cyan try { # Nutzung von Invoke-WebRequest zur Generierung der spezifischen URI- und Port-Telemetrie $Response = Invoke-WebRequest -Uri $Url -Method Get -ErrorAction SilentlyContinue Write-Host "[+] Anfrage erfolgreich gesendet (erwarteter Verbindungsfehler, wenn IP inaktiv ist)." -ForegroundColor Green } catch { Write-Host "[!] Anfrage abgeschlossen (wie erwartet für einen nicht existenten C2-Endpunkt)." -ForegroundColor Yellow } -
Bereinigungskommandos:
# Keine persistenten Artefakte werden durch diese Simulation erstellt. # Einfach die Beendigung des Prozesses bestätigen. Write-Host "[*] Simulation abgeschlossen. Keine Bereinigung erforderlich." -ForegroundColor White