Campanha macOS ClickFix: AppleScript Stealers & Novas Proteções do Terminal
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O Netskope Threat Labs identificou uma campanha ClickFix multiplataforma que ataca usuários de macOS com um infostealer baseado em AppleScript. O malware é entregue através de uma página de engenharia social enganosa que convence as vítimas a copiar e colar um comando malicioso no Terminal. Uma vez executado, o script coleta conteúdos do chaveiro, cookies do navegador, dados de extensões e arquivos de carteiras de criptomoedas, e então envia as informações roubadas por meio de requisições HTTP POST. A campanha também utiliza caixas de diálogo falsas persistentes para enganar os usuários a inserir suas senhas do sistema.
Investigação
O relatório explica que a página de destino maliciosa primeiro filtra os visitantes por agente de usuário antes de fornecer um carregador AppleScript especificamente adaptado para sistemas macOS. Após a execução, o malware cria um diretório de estagiamento temporário, reúne credenciais e dados relacionados a carteiras, comprime os arquivos coletados com o comando ditto e faz o upload do arquivo compactado para um endereço de comando e controle embutido. Os pesquisadores também documentaram o abuso dos Serviços de Diretório do macOS para validar a senha da vítima em tempo real, junto com a ampla gama de navegadores e aplicações de carteira de criptomoedas alvo.
Mitigação
A Netskope recomenda que os usuários de macOS atualizem para as versões mais recentes do macOS Tahoe 26.4 ou macOS Sequoia, que introduzem avisos nativos no Terminal para comandos colados. Os usuários também devem evitar executar comandos copiados de sites não confiáveis, verificar cuidadosamente todos os prompts de credenciais e habilitar autenticação multifator sempre que possível. As organizações são incentivadas a monitorar diálogos suspeitos conduzidos por AppleScript e tráfego HTTP POST incomum direcionado a infraestruturas desconhecidas.
Resposta
Os defensores devem detectar e bloquear a execução de arquivos AppleScript desconhecidos e observar a criação do diretório de estagiamento /tmp/xdivcmp/ Devem ser configurados alertas para atividades HTTP POST de sistemas macOS para domínios ou endereços IP incomuns. Quaisquer caixas de diálogo recorrentes solicitando senhas do sistema devem ser tratadas como suspeitas, e os endpoints afetados devem ser isolados rapidamente para investigação forense.
“graph TB
%% Class definitions
classDef technique fill:#ffcc99
%% Node definitions
t_phish[“Técnica – T1566 Phishing
Descrição: Enviar emails maliciosos contendo um comando de copiar-colar para atrair a vítima.”]
class t_phish technique
t_userexec[“Técnica – T1204.004 Execução de Usuário: Cópia e Cola Maliciosa
Descrição: A vítima copia e cola o comando malicioso em uma sessão de terminal.”]
class t_userexec technique
t_unixshell[“Técnica – T1059.004 Interprete de Comandos e Scripts: Unix Shell
Descrição: Executar um comando shell que baixa e executa um payload AppleScript.”]
class t_unixshell technique
t_obfusc[“Técnica – T1027 Arquivos ou Informações Ofuscadas
Descrição: Codificar o comando shell para ocultar sua intenção maliciosa.”]
class t_obfusc technique
t_inputcap[“Técnica – T1056 Captura de Entrada
Descrição: Diálogo persistente do AppleScript captura a senha do usuário do macOS.”]
class t_inputcap technique
t_oscred[“Técnica – T1003 Despejo de Credenciais do Sistema
Descrição: Usar a senha capturada para descriptografar o Chaveiro do macOS.”]
class t_oscred technique
t_passmgr[“Técnica – T1555.005 Credenciais de Gerenciadores de Senhas
Descrição: Extrair dados armazenados de cofres de gerenciadores de senhas instalados.”]
class t_passmgr technique
t_webbrowser[“Técnica – T1555.003 Credenciais de Navegadores da Web
Descrição: Roubar senhas salvas e dados de preenchimento automático de armazenamentos dos navegadores.”]
class t_webbrowser technique
t_webcookie[“Técnica – T1539 Roubo de Cookie de Sessão da Web
Descrição: Coletar cookies de sessão de doze navegadores da web.”]
class t_webcookie technique
t_altauth[“Técnica – T1550.004 Uso de Material de Autenticação Alternativo: Cookie de Sessão da Web
Descrição: Reutilizar cookies roubados para contornar autenticação multifator.”]
class t_altauth technique
t_browserdisc[“Técnica – T1217 Descoberta de Informações do Navegador
Descrição: Localizar diretórios de perfis de navegadores no sistema host.”]
class t_browserdisc technique
t_staging[“Técnica – T1074.001 Dados Estagiados: Estágio de Dados Locais
Descrição: Agregar dados coletados em /tmp/xdivcmp.”]
class t_staging technique
t_archive[“Técnica – T1560 Arquivamento de Dados Coletados
Descrição: Comprimir os dados estagiados em um arquivo zip usando ditto.”]
class t_archive technique
t_exfil[“Técnica – T1041 Exfiltração sobre Canal C2
Descrição: Transferir o arquivo zip via HTTP POST para um servidor de comando e controle.”]
class t_exfil technique
t_filedel[“Técnica – T1070.004 Remoção de Indicadores: Exclusão de Arquivos
Descrição: Excluir o diretório de estagiamento após exfiltração bem-sucedida.”]
class t_filedel technique
t_diskwipe[“Técnica – T1561 Apagamento de Disco
Descrição: Sobrescrever setores do disco para remover traços forenses.”]
class t_diskwipe technique
%% Connections showing flow
t_phish –>|leads_to| t_userexec
t_userexec –>|leads_to| t_unixshell
t_unixshell –>|uses| t_obfusc
t_unixshell –>|uses| t_inputcap
t_unixshell –>|uses| t_browserdisc
t_inputcap –>|enables| t_oscred
t_inputcap –>|enables| t_passmgr
t_inputcap –>|enables| t_webbrowser
t_inputcap –>|enables| t_webcookie
t_webcookie –>|enables| t_altauth
t_browserdisc –>|provides| t_staging
t_staging –>|creates| t_archive
t_archive –>|exfiltrates| t_exfil
t_exfil –>|triggers| t_filedel
t_filedel –>|triggers| t_diskwipe
“
Fluxo do Ataque
Detecções
Possível Tentativa de Descoberta de Senhas de Navegador no macOS (via linha de comando)
Visualizar
Validação de Credenciais de macOS via Dscl Authonly (via linha de comando)
Visualizar
Tentativa Suspeita de Execução Curl [macOS] (via linha de comando)
Visualizar
Indicadores de Comprometimento (HashMd5) para detectar: Campanha macOS ClickFix: Roubo com AppleScript & Novas Proteções de Terminal
Visualizar
Indicadores de Comprometimento (SourceIP) para detectar: Campanha macOS ClickFix: Roubo com AppleScript & Novas Proteções de Terminal
Visualizar
Indicadores de Comprometimento (DestinationIP) para detectar: Campanha macOS ClickFix: Roubo com AppleScript & Novas Proteções de Terminal
Visualizar
Infostealer ClickFix do macOS Alvejando Chaveiro e Diretório Temporário [Evento de Arquivo Linux]
Visualizar
Detecção de Infostealer ClickFix do macOS [Criação de Processo Linux]
Visualizar
Execução da Simulação
Pré-requisito: A Verificação de Pré-voo de Telemetria e Base deve ter passado.
-
Narrativa & Comandos do Ataque:
- Reconhecimento: O atacante primeiro enumera o chaveiro do usuário atual para identificar itens armazenados.
- Despejo de Credenciais: Usando
security dump-keychain, o atacante extrai todo o banco de dados do chaveiro para um arquivo temporário. - Estagiamento: O despejo é copiado para um diretório de estagiamento oculto
/tmp/.xdivcmp/(espelhando o caminho da regra/tmp/xdivcmp/). - Ofuscação: O diretório de estagiamento é marcado como oculto (
chflags hidden). - Preparação para Exfiltração: Os arquivos são comprimidos em
payload.zippronto para transferência de saída.
-
Script de Teste de Regressão:
#!/bin/bash set -euo pipefail # 1. Criar diretório de estagiamento oculto (corresponde ao caminho da regra) STAGING_DIR="/tmp/.xdivcmp" mkdir -p "$STAGING_DIR" chflags hidden "$STAGING_DIR" # 2. Despejar o chaveiro (requer interação do usuário; simulado com uma cópia do BD) KEYCHAIN_SRC="/Users/$(whoami)/Library/Keychains/login.keychain-db" KEYCHAIN_DUMP="${STAGING_DIR}/login.keychain-db.dump" # Simular despejo copiando o BD (realmente um atacante usaria `security dump-keychain`) cp "$KEYCHAIN_SRC" "$KEYCHAIN_DUMP" # 3. Comprimir para exfiltração zip -j "${STAGING_DIR}/payload.zip" "$KEYCHAIN_DUMP" echo "[+] Simulação ClickFix completa – artefatos de estagiamento colocados em $STAGING_DIR" -
Comandos de Limpeza:
#!/bin/bash set -euo pipefail STAGING_DIR="/tmp/.xdivcmp" if [[ -d "$STAGING_DIR" ]]; then rm -rf "$STAGING_DIR" echo "[+] Diretório de estagiamento limpo." else echo "[*] Nenhum diretório de estagiamento encontrado; nada a limpar." fi