Gefälschte Software auf GitHub und SourceForge verbreitet Deno RAT von Gabriele Orini
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Bedrohungsakteure verteilen gefälschte Installer und Plugins für weit verbreitete Software über GitHub und SourceForge, um eine auf Deno basierende Hintertür namens DinDoor zu liefern. Die Malware installiert die Deno-Laufzeitumgebung über Scoop oder WinGet und startet dann einen JavaScript-RAT, der Daten stehlen, Fernbefehle ausführen und Peer-to-Peer-Videostreaming ermöglichen kann. Bösartige MSI-Pakete und PowerShell-Skripte werden verwendet, um die Infektionskette zu starten, während der Command-and-Control-Datenverkehr über HTTP oder WebSocket abgewickelt wird. Die Kampagne missbraucht zudem kompromittierte YouTube-Kanäle, um Opfer zu den bösartigen Repositories zu führen.
Untersuchung
Forscher rekonstruierten die vollständige Infektionssequenz, beginnend mit curl Befehlen, die eine MSI-Datei herunterluden, gefolgt von Installationsskripten, die Scoop, WinGet und Deno bereitstellten, bevor der DinDoor-JavaScript-Loader ausgeführt wurde. Ihre Analyse dokumentierte die Fähigkeiten des RATs, einschließlich Systemerkundung, Browser- und Kryptowallet-Diebstahl, VNC über WebSocket und Edge-basiertes Peer-to-Peer-Streaming. Das Team extrahierte auch Indikatoren wie Domains, URLs, IP-Adressen und Kommandozeilen-Artefakte, um die Erkennung und Bedrohungssuche zu unterstützen.
Abmilderung
Organisationen sollten Software nur von offiziellen Anbieter-Websites herunterladen und digitale Signaturen überprüfen, bevor sie einen Installer ausführen. Sicherheitsteams sollten die ungewöhnliche Nutzung von Scoop und WinGet zur Installation von Deno sowie unerwartete MSI-basierte Softwarebereitstellungen überwachen. Ausgehender Verkehr zu den identifizierten bösartigen Domains und IP-Adressen sollte blockiert werden, und PowerShell- oder curl Aktivitäten, die Dateien aus nicht vertrauenswürdigen Quellen herunterladen und ausführen, sollten genau überwacht werden.
Reaktion
Verteidiger sollten alarmieren bei msiexec Starten von Dateien, die von verdächtigen GitHub- oder SourceForge-URLs stammen, bei Run-Registrierungsschlüsseln, die deno.exestarten, und bei Netzwerkkommunikation mit der bekannten Command-and-Control-Infrastruktur. Betroffene Hosts sollten einer forensischen Überprüfung unterzogen werden, um abgelegte Skripte, die Deno-Laufzeitumgebung und etwaige Persistenzmechanismen zu finden. Kompromittierte Systeme sollten sofort isoliert werden, und alle unautorisierten Deno-Installationen sollten entfernt werden.
"graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef operator fill:#ff9900 %% Attack steps as technique nodes step1_malicious_link["<b>Technik</b> – <b>T1204.001 Benutzeraktion: Maliziöser Link</b><br/>Opfer klickt auf einen bösartigen YouTube-Link, der zu einem gefälschten GitHub- oder SourceForge-Projekt weiterleitet"] class step1_malicious_link technique step1_content_injection["<b>Technik</b> – <b>T1659 Inhaltsinjektion</b><br/>Kompromittierte YouTube-Kanäle injizieren bösartige URLs in Videobeschreibungen oder Kommentare"] class step1_content_injection technique step2_msiexec["<b>Technik</b> – <b>T1218.007 System-Binär-Proxyausführung: Msiexec</b><br/>Befehl lädt eine MSI-Datei herunter und führt sie über msiexec aus"] class step2_msiexec technique step3_installer_pkg["<b>Technik</b> – <b>T1546.016 Ereignisgesteuerte Ausführung: Installationspakete</b><br/>PowerShell-Skript verwendet Scoop oder WinGet, um die Deno-Laufzeit zu installieren"] class step3_installer_pkg technique step4_logon_script["<b>Technik</b> – <b>T1037.001 Start- oder Anmeldeinitialisierungsskripte: Anmeldeskript</b><br/>Erstellt einen Run-Registrierungsschlüssel, der die Deno-Hintertür beim Anmelden startet"] class step4_logon_script technique step5_reflective_load["<b>Technik</b> – <b>T1620 Reflexives Code-Loading</b><br/>Hintertür führt eine Schleife aus, die JavaScript-Code vollständig im Speicher abruft und ausführt"] class step5_reflective_load technique step6_c2["<b>Technik</b> – <b>T1102 Web-Dienst</b> und <b>T1102.002 Bidirektionale Kommunikation</b><br/>Verwendet HTTP-Endpunkte und einen benutzerdefinierten WebSocket-VNC-Kanal für Command and Control"] class step6_c2 technique step7_browser_creds["<b>Technik</b> – <b>T1555.003 Anmeldeinformationen aus Passwortspeichern: Web-Browser</b><br/>Stealer extrahiert gespeicherte Browser-Passwörter"] class step7_browser_creds technique step7_input_capture["<b>Technik</b> – <b>T1056 Eingabeerfassung</b><br/>Keylogging und Formularerfassung zur Erlangung von Anmeldeinformationen"] class step7_input_capture technique step7_clipboard["<b>Technik</b> – <b>T1115 Zwischenablagedaten</b><br/>Sammelt Inhalte der Zwischenablage, die möglicherweise sensible Daten enthalten"] class step7_clipboard technique step8_browser_discovery["<b>Technik</b> – <b>T1217 Browser-Informationsentdeckung</b><br/>Sammelt Kryptowallet-Dateien, Browserdaten und Screenshots"] class step8_browser_discovery technique step9_exfil["<b>Technik</b> – <b>T1011 Exfiltration über anderes Netzwerkmedium</b><br/>Überträgt gesammelte Daten über dieselben HTTP/WebSocket-Kanäle"] class step9_exfil technique step10_process_injection["<b>Technik</b> – <b>T1055.005 Prozessinjektion: Thread Local Storage</b><br/>Injiziert bösartigen Code in legitime Prozesse unter Verwendung von TLS"] class step10_process_injection technique step11_indirect_exec["<b>Technik</b> – <b>T1202 Indirekte Befehlsausführung</b><br/>Nutzen Sie msiexec, um die Ausführung zusätzlicher Nutzlasten zu pro- xyen"] class step11_indirect_exec technique %% Optional tool nodes tool_msiexec["<b>Tool</b> – <b>Name</b>: msiexec<br/><b>Beschreibung</b>: Windows Installer ausführbar verwendet für Proxy-Ausführung"] class tool_msiexec tool tool_powershell["<b>Tool</b> – <b>Name</b>: PowerShell<br/><b>Beschreibung</b>: Skriptumgebung verwendet zum Treiben von Installer-Paketen"] class tool_powershell tool tool_deno["<b>Tool</b> – <b>Name</b>: Deno<br/><b>Beschreibung</b>: Laufzeit, die die JavaScript-Hintertür hostet"] class tool_deno tool %% Connections showing the attack flow step1_malicious_link –>|führt zu| step2_msiexec step1_content_injection –>|unterstützt| step2_msiexec step2_msiexec –>|verwendet| tool_msiexec step2_msiexec –>|löst aus| step3_installer_pkg step3_installer_pkg –>|verwendet| tool_powershell step3_installer_pkg –>|installiert| tool_deno step3_installer_pkg –>|ermöglicht| step4_logon_script step4_logon_script –>|etabliert| step5_reflective_load step5_reflective_load –>|bietet| step6_c2 step6_c2 –>|ermöglicht| step7_browser_creds step6_c2 –>|ermöglicht| step7_input_capture step6_c2 –>|ermöglicht| step7_clipboard step7_browser_creds –>|füllt ein| step8_browser_discovery step7_input_capture –>|füllt ein| step8_browser_discovery step7_clipboard –>|füllt ein| step8_browser_discovery step8_browser_discovery –>|gesendet über| step9_exfil step9_exfil –>|verwendet Kanal von| step6_c2 step5_reflective_load –>|ermöglicht| step10_process_injection step10_process_injection –>|eskaliert Privilegien für| step11_indirect_exec step11_indirect_exec –>|führt aus| step2_msiexec class step1_malicious_link,step1_content_injection,step2_msiexec,step3_installer_pkg,step4_logon_script,step5_reflective_load,step6_c2,step7_browser_creds,step7_input_capture,step7_clipboard,step8_browser_discovery,step9_exfil,step10_process_injection,step11_indirect_exec technique class tool_msiexec,tool_powershell,tool_deno tool "
Angriffsfluss
Erkennungen
LOLBAS Conhost (über cmdline)
Ansehen
Verdächtige Steuerung und Kontrolle durch ungewöhnliche Top-Level-Domain (TLD) DNS-Anfrage (über DNS)
Ansehen
IOCs (SourceIP) zum Erkennen: Gefälschte Software auf GitHub und SourceForge verteilt Deno RAT von Gabriele Orini
Ansehen
IOCs (DestinationIP) zum Erkennen: Gefälschte Software auf GitHub und SourceForge verteilt Deno RAT von Gabriele Orini
Ansehen
Erkennung der DinDoor RAT C2-Kommunikation [Windows Netzwerkverbindung]
Ansehen
Erkennung der Verteilung von Deno RAT über gefälschte Installer [Windows Prozesserstellung]
Ansehen
PowerShell-Ausführung mit verborgenem Fenster und umgangener Ausführungsrichtlinie [Windows Powershell]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- und Basislinien-Preflight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, genau die Telemetrie zu generieren, die von der Erkennung erwartet wird.
-
Angriffserzählung & Befehle:
Ein Angreifer hat sich über ein bösartiges CMD-Skript, das in einem Phishing-Anhang eingebettet ist, ersten Zugang verschafft. Um unbemerkt zu bleiben, startet das Skript PowerShell mit einem versteckten Fenster, deaktiviert die Ausführungsrichtlinie und führt eine base64-kodierte Nutzlast aus, die eine zweite Nutzlast herunterlädt und ausführt. Die genaue Befehlszeile stimmt mit den drei markierten Substrings der Regel überein und sorgt so für eine Erkennung.-
Stufe 1 – CMD-Starter (simuliert durch den Tester):
@echo off start "" powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand %payload% -
Stufe 2 – PowerShell-Nutzlast (base64-kodiert, harmlos zum Testen):
$cmd = 'Write-Output "Bösartige Simulation ausgeführt"' $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd) $b64 = [Convert]::ToBase64String($bytes) echo $b64 # Fügen Sie diesen Wert als %payload% in die Batchdatei ein
-
-
Regressionstest-Skript: Das Skript unten automatisiert den gesamten Ablauf, generiert den kodierten Befehl, startet PowerShell mit den erforderlichen Flags und pausiert dann kurz, um dem SIEM Zeit zu geben, das Ereignis zu erfassen.
# ------------------------------------------------- # Regressionstest – PowerShell Verborgen + Bypass EP # ------------------------------------------------- # 1) Eine harmlose Nutzlast erstellen (Write‑Output) $payload = 'Write-Output "Bösartige Simulation ausgeführt"' # 2) Nutzlast in base64 kodieren (Unicode-Codierung, wie von PowerShell erwartet) $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [Convert]::ToBase64String($bytes) # 3) PowerShell mit dem genauen Flag-Set starten, das von der Sigma-Regel benötigt wird $psCmd = @( 'powershell.exe', '-NoProfile', '-ExecutionPolicy', 'Bypass', '-WindowStyle', 'Hidden', '-EncodedCommand', $b64 ) -join ' ' Write-Host "Ausführung:`n$psCmd" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-WindowStyle","Hidden","-EncodedCommand",$b64 -WindowStyle Hidden # 4) Warten, bis die Protokollierung propagiert ist (bei Bedarf anpassen) Start-Sleep -Seconds 10 Write-Host "Simulation abgeschlossen – überprüfen Sie das SIEM auf Erkennung." -
Bereinigungskommandos: Alle temporären Dateien entfernen (hier keine erstellt) und sicherstellen, dass keine PowerShell-Prozesse mehr vorhanden sind.
# Alle von der Prüfung gestarteten PowerShell-Prozesse beenden (ohne die aktuelle Sitzung) Get-Process -Name powershell | Where-Object { $_.Id -ne $PID } | Stop-Process -Force Write-Host "Bereinigung abgeschlossen."