SOC Prime Bias: Médio

17 Abr 2026 17:49

Campanha de Phishing ClickFix Disfarçada como Instalador do Claude

Author Photo
SOC Prime Team linkedin icon Seguir
Campanha de Phishing ClickFix Disfarçada como Instalador do Claude
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma campanha de phishing usou a técnica ClickFix para distribuir um pacote MSIX malicioso disfarçado como o instalador do Claude AI. A execução inicial dependia de mshta lançado através do utilitário Executar do Windows com um URL especialmente criado. O payload baixado continha um arquivo HTA que construía um estágio de PowerShell ofuscado, contornava o AMSI, recuperava conteúdo adicional do PowerShell e executava uma rotina de injeção de processo usando shellcode criptografado. A atividade foi observada em ambientes de clientes tanto na Europa quanto nos Estados Unidos e foi detectada por meio da cobertura Rapid7 InsightIDR.

Investigação

Os analistas da Rapid7 identificaram mshta execução ligada à chave de registro RunMRU e capturaram o URL download-version.1-5-8.com/claude.msixbundle. A análise mostrou que o arquivo MSIX incluía um arquivo HTA que decodificava strings ofuscadas, montava um comando PowerShell, sobrescrevia o contexto do AMSI e, por fim, injetava shellcode por meio de chamadas de API nativas do Windows. Os pesquisadores também descobriram que vários estágios subsequentes do PowerShell foram baixados de URLs gerados dinamicamente a partir de um hash construído com o nome e o usuário do computador da vítima.

Mitigação

Os defensores devem monitorar a chave de registro RunMRU para mshta entradas suspeitas e bloquear mshta a execução quando ela se originar de fontes não confiáveis. As organizações também devem restringir downloads de pacotes MSIX de domínios desconhecidos e impor a lista de permissões de aplicativos para execução do PowerShell. As proteções do AMSI devem permanecer ativadas, e o registro do PowerShell deve ser configurado para capturar atividades de comando codificadas ou ofuscadas para investigação.

Resposta

Quando essa atividade for detectada, as equipes de segurança devem isolar o endpoint afetado, preservar os artefatos da linha de comando e conduzir a análise forense dos estágios do PowerShell baixados e de quaisquer processos injetados. As credenciais usadas no sistema impactado devem ser redefinidas, e o histórico do navegador deve ser revisado para rastrear a isca inicial. A lógica de detecção também deve ser atualizada para incluir os domínios, hashes e padrões de execução observados.

graph TB classDef action fill:#99ccff step_phishing[“<b>Ação</b> – T1566.002 Phishing: link de spearphishing<br/><b>Descrição</b>: A vítima clica em um link malicioso que executa mshta.”] class step_phishing action step_mshta[“<b>Ação</b> – T1218.005 Mshta<br/><b>Descrição</b>: Execução de mshta com URL para payload .msixbundle.”] class step_mshta action step_hta_deobfuscation[“<b>Ação</b> – T1027.010, T1027.013, T1140 Desofuscar/decodificar arquivos<br/><b>Descrição</b>: HTA executa VBS que desofusca código malicioso.”] class step_hta_deobfuscation action step_ps_encoded[“<b>Ação</b> – T1059.001 PowerShell<br/><b>Descrição</b>: Gera comando PowerShell codificado.”] class step_ps_encoded action step_stage1[“<b>Ação</b> – T1059.001 PowerShell (Etapa 1)<br/><b>Descrição</b>: Calcula MD5 de COMPUTERNAME+USERNAME, cria URL e baixa Etapa 2.”] class step_stage1 action step_stage2[“<b>Ação</b> – T1562.001 Comprometimento de defesas (bypass AMSI)<br/><b>Descrição</b>: Sobrescreve contexto AMSI e baixa Etapa 3.”] class step_stage2 action step_stage3[“<b>Ação</b> – T1059.001 PowerShell (Etapa 3)<br/><b>Descrição</b>: Decodifica array de bytes e cria ScriptBlock.”] class step_stage3 action step_process_injection[“<b>Ação</b> – T1055 Injeção de processo<br/><b>Descrição</b>: Injeção de código em processo alvo usando .NET e APIs nativas.”] class step_process_injection action step_persistence[“<b>Ação</b> – T1547.014 Chaves Run / Startup (RunMRU)<br/><b>Descrição</b>: Criação de entrada RunMRU para persistência.”] class step_persistence action step_phishing –>|leva a| step_mshta step_mshta –>|executa| step_hta_deobfuscation step_hta_deobfuscation –>|usa| step_ps_encoded step_ps_encoded –>|gera| step_stage1 step_stage1 –>|baixa| step_stage2 step_stage2 –>|baixa| step_stage3 step_stage3 –>|cria| step_process_injection step_mshta –>|estabelece| step_persistence

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré‑vôo de Telemetria & Base deve ter sido concluído com sucesso.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e objetivar a geração da telemetria exata esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:

    1. Objetivo: Executar um payload malicioso PowerShell que seja tanto codificado em base‑64 quanto incorporado com chamadas de assembly .NET para realizar injeção de processo, imitando um típico ataque “living‑off‑the‑land”.
    2. Passos:
      • Criar um pequeno assembly .NET (C#) que chama OpenProcess and WriteProcessMemory (simulado via PowerShell’s [System.Runtime.InteropServices.Marshal]).
      • Codificar o script PowerShell contendo Invoke-Expression, FromBase64String, e uma referência a System.Management.Automation.AmsiUtils (usado para contornar o AMSI).
      • Anexar um marcador de dummy 0x41414141 para emular o “padding” frequentemente visto na ofuscação.
      • Lançar o script usando powershell.exe com a linha de comando completa visível (para que a regra de detecção possa ver as strings).
  • Script de Teste de Regressão:

    # ==============================================================
    # Execução simulada de PowerShell malicioso para acionar regra Sigma
    # ==============================================================
    # 1. Construir um payload .NET simples (inline, para fins de demonstração)
    $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. Criar o snippet do PowerShell malicioso
    $malicious = @'
    $b64 = "aW1wb3J0IHN5c3RlbS5JTy5TY3JpcHQgJ1Rlc3QnLCBJVkU="
    $decoded = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64))
    Invoke-Expression $decoded
    $dummy = 0x41414141
    '@
    
    # 3. Codificar o snippet (Base64, UTF-16LE como espera o PowerShell)
    $bytes = [System.Text.Encoding]::Unicode.GetBytes($malicious)
    $encoded = [Convert]::ToBase64String($bytes)
    
    # 4. Lançar o PowerShell com o comando codificado
    $cmd = "powershell.exe -NoProfile -WindowStyle Hidden -EncodedCommand $encoded"
    Write-Host "Lançando PowerShell malicioso..."
    Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -EncodedCommand $encoded" -WindowStyle Hidden
    
    # Nota: A linha de comando acima conterá as strings:
    #   Invoke-Expression, FromBase64String, System.Management.Automation.AmsiUtils, 0x41414141
    # que satisfazem a condição de detecção Sigma.
  • Comandos de Limpeza:

    # Terminar quaisquer instâncias de PowerShell remanescente lançadas pelo teste
    Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match "EncodedCommand"} | Stop-Process -Force
    
    # Remover quaisquer módulos temporários ou variáveis (se eles foram persistidos)
    Remove-Variable -Name b64, decoded, dummy -ErrorAction SilentlyContinue

Fim do Relatório