Software falso su GitHub e SourceForge distribuisce Deno RAT di Gabriele Orini
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Gli attori della minaccia stanno distribuendo finti installer e plug-in per software ampiamente utilizzati attraverso GitHub e SourceForge per consegnare una backdoor basata su Deno nota come DinDoor. Il malware installa il runtime Deno tramite Scoop o WinGet, quindi avvia un RAT JavaScript in grado di rubare dati, eseguire comandi remoti e abilitare lo streaming video peer-to-peer. Pacchetti MSI dannosi e script PowerShell vengono utilizzati per avviare la catena di infezione, mentre il traffico del comando e controllo viene trasportato tramite HTTP o WebSocket. La campagna sfrutta anche canali YouTube compromessi per indirizzare le vittime verso i repository dannosi.
Indagine
I ricercatori hanno ricostruito l’intera sequenza di infezione, a partire da comandi curl che scaricavano un file MSI, seguiti da script di installazione che distribuivano Scoop, WinGet e Deno prima di eseguire il caricatore JavaScript DinDoor. La loro analisi ha documentato le capacità del RAT, tra cui ricognizione del sistema, furto di browser e portafogli crittografici, VNC su WebSocket e streaming peer-to-peer basato su Edge. Il team ha anche estratto indicatori come domini, URL, indirizzi IP e artefatti da riga di comando per supportare la rilevazione e la caccia alla minaccia.
Mitigazione
Le organizzazioni dovrebbero scaricare software solo dai siti ufficiali dei fornitori e verificare le firme digitali prima di eseguire qualsiasi installer. I team di sicurezza dovrebbero monitorare l’uso insolito di Scoop e WinGet per installare il Deno, oltre a distribuire software inaspettato basato su MSI. Il traffico in uscita verso i domini e gli indirizzi IP identificati come dannosi dovrebbe essere bloccato, e le attività PowerShell o comandi curl che scaricano ed eseguono file da fonti non attendibili devono essere attentamente controllate.
Risposta
I difensori dovrebbero allertare sull’avvio di msiexec che esegue file provenienti da URL sospetti di GitHub o SourceForge, su chiavi di registro Run che avviano deno.exe, e sulle comunicazioni di rete con l’infrastruttura di comando e controllo nota. Gli host compromessi dovrebbero subire una revisione forense per individuare script lasciati cadere, il runtime Deno e qualsiasi meccanismo di persistenza. I sistemi compromessi dovrebbero essere isolati immediatamente e tutte le installazioni di Deno non autorizzate dovrebbero essere rimosse.
“graph TB
%% Class definitions
classDef technique fill:#99ccff
classDef tool fill:#ffcc99
classDef operator fill:#ff9900
%% Attack steps as technique nodes
step1_malicious_link[“Tecnica – T1204.001 Esecuzione Utente: Link Malevolo
La vittima clicca su un link malevolo di YouTube che reindirizza a un progetto contraffatto su GitHub o SourceForge”]
class step1_malicious_link technique
step1_content_injection[“Tecnica – T1659 Iniezione di Contenuto
Canali YouTube compromessi iniettano URL malevoli nelle descrizioni o nei commenti dei video”]
class step1_content_injection technique
step2_msiexec[“Tecnica – T1218.007 Esecuzione Proxy Binario di Sistema: Msiexec
Il comando scarica un file MSI ed esegue tramite msiexec”]
class step2_msiexec technique
step3_installer_pkg[“Tecnica – T1546.016 Esecuzione Attivata da Evento: Pacchetti Installer
Script PowerShell utilizza Scoop o WinGet per installare il runtime Deno”]
class step3_installer_pkg technique
step4_logon_script[“Tecnica – T1037.001 Script di Inizializzazione all’Avvio o Login: Script di Accesso
Crea una chiave di registro Run che avvia la backdoor Deno all’accesso”]
class step4_logon_script technique
step5_reflective_load[“Tecnica – T1620 Caricamento di Codice Riflettente
La backdoor esegue un ciclo evalu2011 che recupera ed esegue codice JavaScript interamente in memoria”]
class step5_reflective_load technique
step6_c2[“Tecnica – T1102 Servizio Web e T1102.002 Comunicazione Bidirezionale
Usa endpoint HTTP e un canale WebSocket VNC personalizzato per comando e controllo”]
class step6_c2 technique
step7_browser_creds[“Tecnica – T1555.003 Credenziali da Archivi Password: Browser Web
Stealer estrae password salvate dal browser”]
class step7_browser_creds technique
step7_input_capture[“Tecnica – T1056 Cattura di Input
Keylogging e cattura moduli per ottenere credenziali”]
class step7_input_capture technique
step7_clipboard[“Tecnica – T1115 Dati negli Appunti
Raccoglie i contenuti degli appunti che possono contenere dati sensibili”]
class step7_clipboard technique
step8_browser_discovery[“Tecnica – T1217 Scoperta Informazioni Browser
Raccoglie file di wallet crittografici, dati del browser e screenshot”]
class step8_browser_discovery technique
step9_exfil[“Tecnica – T1011 Esfiltrazione su Altro Mezzo di Rete
Trasmette dati raccolti attraverso gli stessi canali HTTP/WebSocket”]
class step9_exfil technique
step10_process_injection[“Tecnica – T1055.005 Iniezione di Processo: Memoria Locale del Thread
Inietta codice malevolo in processi legittimi usando TLS”]
class step10_process_injection technique
step11_indirect_exec[“Tecnica – T1202 Esecuzione di Comando Indiretta
Sfrutta msiexec per eseguire payload aggiuntivi”]
class step11_indirect_exec technique
%% Optional tool nodes
tool_msiexec[“Strumento – Nome: msiexec
Descrizione: Eseguibile di Windows Installer usato per l’esecuzione proxy”]
class tool_msiexec tool
tool_powershell[“Strumento – Nome: PowerShell
Descrizione: Ambiente di scripting utilizzato per guidare i pacchetti di installazione”]
class tool_powershell tool
tool_deno[“Strumento – Nome: Deno
Descrizione: Runtime che ospita la backdoor JavaScript”]
class tool_deno tool
%% Connections showing the attack flow
step1_malicious_link –>|porta a| step2_msiexec
step1_content_injection –>|supporta| step2_msiexec
step2_msiexec –>|utilizza| tool_msiexec
step2_msiexec –>|attiva| step3_installer_pkg
step3_installer_pkg –>|utilizza| tool_powershell
step3_installer_pkg –>|installa| tool_deno
step3_installer_pkg –>|abilita| step4_logon_script
step4_logon_script –>|stabilisce| step5_reflective_load
step5_reflective_load –>|fornisce| step6_c2
step6_c2 –>|facilita| step7_browser_creds
step6_c2 –>|facilita| step7_input_capture
step6_c2 –>|facilita| step7_clipboard
step7_browser_creds –>|alimenta| step8_browser_discovery
step7_input_capture –>|alimenta| step8_browser_discovery
step7_clipboard –>|alimenta| step8_browser_discovery
step8_browser_discovery –>|inviato tramite| step9_exfil
step9_exfil –>|usa canale da| step6_c2
step5_reflective_load –>|abilita| step10_process_injection
step10_process_injection –>|escalation privilegi per| step11_indirect_exec
step11_indirect_exec –>|esegue| 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
“
Flusso d’attacco
Rilevamenti
LOLBAS Conhost (tramite cmdline)
Visualizza
Comando e Controllo Sospetto tramite Richiesta DNS di Dominio di Livello Superiore (TLD) Insolito (tramite dns)
Visualizza
IOC (SourceIP) da rilevare: Software falso su GitHub e SourceForge distribuiscono Deno RAT di Gabriele Orini
Visualizza
IOC (DestinationIP) da rilevare: Software falso su GitHub e SourceForge distribuiscono Deno RAT di Gabriele Orini
Visualizza
Rilevazione di Comunicazione C2 del DinDoor RAT [Connessione di Rete Windows]
Visualizza
Rilevazione della Distribuzione del Deno RAT tramite Falsi Installer [Creazione Processo Windows]
Visualizza
Esecuzione di PowerShell con Finestra Nascosta e Policy di Esecuzione Ignorata [PowerShell di Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Check pre-volo di Telemetria & Baseline deve essere superato.
Motivo: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirano a generare l’esatta telemetria attesa dalla logica di rilevamento.
-
Narrazione d’attacco & Comandi:
Un aggressore ha ottenuto l’accesso iniziale tramite uno script CMD malevolo consegnato in un allegato di phishing. Per mantenere la furtività, lo script lancia PowerShell con una finestra nascosta, disabilita la policy di esecuzione e esegue un payload codificato in base64 che scarica ed esegue un payload di secondo stadio. La riga di comando esatta corrisponde ai tre sottostringhe segnalate della regola, garantendo il rilevamento.-
Fase 1 – Lanciatore CMD (simulato dal tester):
@echo off start "" powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand %payload% -
Fase 2 – Payload PowerShell (codificato in base64, innocuo per il test):
$cmd = 'Write-Output "Eseguita simulazione malevola" $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd) $b64 = [Convert]::ToBase64String($bytes) echo $b64 # Inserisci questo valore come %payload% nel file batch
-
-
Script di Test di Regressione: Lo script seguente automatizza l’intero flusso, generando il comando codificato, lanciando PowerShell con i flag richiesti, e poi pausando brevemente per permettere al SIEM di ingerire l’evento.
# ------------------------------------------------- # Test di Regressione – PowerShell Hidden + Bypass EP # ------------------------------------------------- # 1) Costruisce un payload innocuo (Write-Output) $payload = 'Write-Output "Eseguita simulazione malevola"' # 2) Codifica il payload in base64 (codifica Unicode, come si aspetta PowerShell) $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [Convert]::ToBase64String($bytes) # 3) Lancia PowerShell con il set di flag esatto richiesto dalla regola Sigma $psCmd = @( 'powershell.exe', '-NoProfile', '-ExecutionPolicy', 'Bypass', '-WindowStyle', 'Hidden', '-EncodedCommand', $b64 ) -join ' ' Write-Host "Esecuzione: $psCmd" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-WindowStyle","Hidden","-EncodedCommand",$b64 -WindowStyle Hidden # 4) Attendi che i log siano propagati (regola se necessario) Start-Sleep -Seconds 10 Write-Host "Simulazione completa – verifica rilevamento nel SIEM." -
Comandi di Pulizia: Rimuovi eventuali file temporanei (nessuno creato qui) e assicurati che non rimangano processi PowerShell residui.
# Termina eventuali processi PowerShell residui generati dal test (escludendo la sessione corrente) Get-Process -Name powershell | Where-Object { $_.Id -ne $PID } | Stop-Process -Force Write-Host "Pulizia completa."