Campagna di Phishing ClickFix Mascherata come un Installatore di Claude
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Una campagna di phishing ha usato la tecnica ClickFix per distribuire un pacchetto MSIX dannoso camuffato come installatore di Claude AI. L’esecuzione iniziale si basava su mshta avviato tramite l’utilità Run di Windows con un URL appositamente creato. Il payload scaricato conteneva un file HTA che costruiva una fase PowerShell offuscata, bypassava AMSI, recuperava contenuti PowerShell aggiuntivi ed eseguiva una routine di iniezione di processo utilizzando shellcode criptato. L’attività è stata osservata negli ambienti dei clienti sia in Europa che negli Stati Uniti ed è stata rilevata tramite la copertura di Rapid7 InsightIDR.
Indagine
Gli analisti di Rapid7 hanno identificato mshta esecuzioni collegate alla chiave di registro RunMRU e hanno catturato l’URL download-version.1-5-8.com/claude.msixbundle. L’analisi ha mostrato che l’archivio MSIX includeva un file HTA che decodificava stringhe offuscate, assemblava un comando PowerShell, sovrascriveva il contesto di AMSI e alla fine iniettava shellcode tramite chiamate all’API nativa di Windows. I ricercatori hanno anche trovato che diverse fasi successive di PowerShell erano state scaricate da URL generati dinamicamente derivati da un hash creato dal nome del computer e del nome utente della vittima.
Mitigazione
I difensori dovrebbero monitorare la chiave di registro RunMRU per mshta voci sospette e bloccare mshta l’esecuzione quando proviene da fonti non attendibili. Le organizzazioni dovrebbero anche limitare il download di pacchetti MSIX da domini sconosciuti e applicare un elenco di permessi per l’esecuzione di PowerShell. Le protezioni di AMSI dovrebbero rimanere abilitate, e la registrazione di PowerShell dovrebbe essere configurata per catturare attività di comandi codificati o offuscati per l’indagine.
Risposta
Quando viene rilevata questa attività, i team di sicurezza dovrebbero isolare l’endpoint interessato, preservare gli artefatti della linea di comando e condurre un’analisi forense delle fasi di PowerShell scaricate e di qualsiasi processo iniettato. Le credenziali utilizzate sul sistema impattato dovrebbero essere reimpostate e la cronologia del browser dovrebbe essere esaminata per risalire alla trappola iniziale. La logica di rilevamento dovrebbe essere aggiornata per includere i domini osservati, gli hash e i modelli di esecuzione correlati.
graph TB classDef action fill:#99ccff step_phishing[“<b>Azione</b> – T1566.002 Phishing: link di spearphishing<br/><b>Descrizione</b>: La vittima clicca un link malevolo che avvia mshta.”] class step_phishing action step_mshta[“<b>Azione</b> – T1218.005 Mshta<br/><b>Descrizione</b>: Esecuzione di mshta con URL verso payload .msixbundle.”] class step_mshta action step_hta_deobfuscation[“<b>Azione</b> – T1027.010, T1027.013, T1140 Deoffuscamento/decodifica<br/><b>Descrizione</b>: HTA esegue VBS che deoffusca codice malevolo.”] class step_hta_deobfuscation action step_ps_encoded[“<b>Azione</b> – T1059.001 PowerShell<br/><b>Descrizione</b>: Genera comando PowerShell codificato.”] class step_ps_encoded action step_stage1[“<b>Azione</b> – T1059.001 PowerShell (Fase 1)<br/><b>Descrizione</b>: Calcola MD5 di COMPUTERNAME+USERNAME e scarica Fase 2.”] class step_stage1 action step_stage2[“<b>Azione</b> – T1562.001 Compromissione difese (bypass AMSI)<br/><b>Descrizione</b>: Sovrascrive contesto AMSI e scarica Fase 3.”] class step_stage2 action step_stage3[“<b>Azione</b> – T1059.001 PowerShell (Fase 3)<br/><b>Descrizione</b>: Decodifica array di byte e crea ScriptBlock.”] class step_stage3 action step_process_injection[“<b>Azione</b> – T1055 Iniezione di processo<br/><b>Descrizione</b>: Iniezione di codice in processo target con .NET e API native.”] class step_process_injection action step_persistence[“<b>Azione</b> – T1547.014 Run keys / Startup folder (RunMRU)<br/><b>Descrizione</b>: Creazione voce RunMRU per persistenza.”] class step_persistence action step_phishing –>|porta a| step_mshta step_mshta –>|esegue| step_hta_deobfuscation step_hta_deobfuscation –>|usa| step_ps_encoded step_ps_encoded –>|genera| step_stage1 step_stage1 –>|scarica| step_stage2 step_stage2 –>|scarica| step_stage3 step_stage3 –>|crea| step_process_injection step_mshta –>|stabilisce| step_persistence
Flusso di Attacco
Rilevazioni
Voce RunMRU Sospetta con Semantici LOLBin (via registry_event)
Visualizza
Stringhe PowerShell Sospette (via powershell)
Visualizza
Chiama Metodi .NET Sospetti da PowerShell (via powershell)
Visualizza
IOC (HashSha256) per rilevare: Campagna di Phishing ClickFix Camuffata come Installatore di Claude
Visualizza
Rileva Script PowerShell Offuscato e Iniezione di Processi via .NET [Windows PowerShell]
Visualizza
Esecuzione Simulazione
Prerequisito: Il Controllo Prevolo di Telemetria e Baseline deve essere superato.
Motivo: 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 la telemetria esatta prevista dalla logica di rilevamento.
-
Narrazione e Comandi dell’Attacco:
- Obiettivo: Eseguire un payload PowerShell dannoso che sia codificato in base64 e incorporato con chiamate all’assembly .NET per eseguire l’iniezione di processi, imitando un tipico attacco “living-off-the-land”.
- Passaggi:
- Creare un piccolo assembly .NET (C#) che chiami
OpenProcessandWriteProcessMemory(simulato tramite il[System.Runtime.InteropServices.Marshal]). - Codifica il script PowerShell contenente
Invoke-Expression,FromBase64String, e un riferimento aSystem.Management.Automation.AmsiUtils(usato per bypassare AMSI). - Aggiungi un marcatore fittizio
0x41414141per emulare il “padding” spesso visto nell’offuscamento. - Lancia lo script usando
powershell.execon la linea di comando completa visibile (in modo che la regola di rilevamento possa vedere le stringhe).
- Creare un piccolo assembly .NET (C#) che chiami
-
Script di Test Regressione:
# ============================================================== # Esecuzione PowerShell dannosa simulata per attivare la regola Sigma # ============================================================== # 1. Costruisci un payload .NET semplice (inline, per scopi dimostrativi) $cs = @' using System; using System.Runtime.InteropServices; public class Injector { [DllImport("kernel32.dll", SetLastError = true)] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll", SetLastError = true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, out IntPtr lpNumberOfBytesWritten); } '@ Add-Type -TypeDefinition $cs -Language CSharp # 2. Crea lo snippet PowerShell dannoso $malicious = @' $b64 = "aW1wb3J0IHN5c3RlbS5JTy5TY3JpcHQgJ1Rlc3QnLCBJVkU=" $decoded = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64)) Invoke-Expression $decoded $dummy = 0x41414141 '@ # 3. Codifica lo snippet (Base64, UTF-16LE come richiesto da PowerShell) $bytes = [System.Text.Encoding]::Unicode.GetBytes($malicious) $encoded = [Convert]::ToBase64String($bytes) # 4. Avvia PowerShell con il comando codificato $cmd = "powershell.exe -NoProfile -WindowStyle Hidden -EncodedCommand $encoded" Write-Host "Avvio PowerShell dannoso..." Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -EncodedCommand $encoded" -WindowStyle Hidden # Nota: La riga di comando sopra conterrà le stringhe: # Invoke-Expression, FromBase64String, System.Management.Automation.AmsiUtils, 0x41414141 # che soddisfano la condizione di rilevamento Sigma. -
Comandi di Pulizia:
# Termina qualsiasi istanza PowerShell residua lanciata dal test Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match "EncodedCommand"} | Stop-Process -Force # Rimuovi moduli o variabili temporanee (se sono stati mantenuti) Remove-Variable -Name b64, decoded, dummy -ErrorAction SilentlyContinue
Fine del Rapporto