SOC Prime Bias: Medio

17 Apr 2026 17:49

Campagna di Phishing ClickFix Mascherata come un Installatore di Claude

Author Photo
SOC Prime Team linkedin icon Segui
Campagna di Phishing ClickFix Mascherata come un Installatore di Claude
shield icon

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

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:

    1. 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”.
    2. Passaggi:
      • Creare un piccolo assembly .NET (C#) che chiami OpenProcess and WriteProcessMemory (simulato tramite il [System.Runtime.InteropServices.Marshal]).
      • Codifica il script PowerShell contenente Invoke-Expression, FromBase64String, e un riferimento a System.Management.Automation.AmsiUtils (usato per bypassare AMSI).
      • Aggiungi un marcatore fittizio 0x41414141 per emulare il “padding” spesso visto nell’offuscamento.
      • Lancia lo script usando powershell.exe con la linea di comando completa visibile (in modo che la regola di rilevamento possa vedere le stringhe).
  • 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