SOC Prime Bias: Médio

24 Mar 2026 15:48

Pistas de Phishing Ocultas na Pasta /tmp

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Pistas de Phishing Ocultas na Pasta /tmp
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um usuário de macOS foi enganado por um falso aviso de “Serviço de Proteção do macOS” e inseriu sua senha, o que desencadeou a implantação do infostealer MacSync. O malware coletou cookies do Chrome e Safari, registros do Apple Keychain, dados de carteiras de criptomoedas e outros arquivos locais, preparando-os sob /tmp/salmonela/. As informações roubadas foram então comprimidas em um arquivo e exfiltradas com curl para um domínio oculto de comando e controle antes que o arquivo fosse removido. A Huntress detectou a intrusão, isolou o endpoint e interrompeu a tentativa de roubo de dados.

Investigação

O SOC da Huntress identificou atividade suspeita no Mac afetado envolvendo o binário nativo curl fazendo upload de um arquivo ZIP. Os analistas confirmaram que o ataque dependia de LOOBins e atribuíram a carga ao infostealer MacSync. A contenção foi alcançada desconectando o anfitrião da rede e excluindo a pasta temporária de preparação. Os investigadores não encontraram sinais de movimento lateral adicional após o isolamento do endpoint.

Mitigação

As defesas recomendadas incluem treinar os usuários para identificar diálogos falsos do sistema, reduzir direitos de administrador local desnecessários, implantar EDR gerenciado no macOS e girar credenciais após comprometimentos. Restringir conexões de saída não autorizadas e monitorar grandes uploads via curl pode reduzir ainda mais a exposição. Auditoria regular e fortalecimento das políticas de acesso do Keychain adicionam outra camada de proteção.

Resposta

Se esta atividade for detectada, isole imediatamente o endpoint, interrompa o processo malicioso e remova o /tmp/salmonela/ diretório. Realize uma revisão forense para identificar qualquer artefato remanescente, redefina as credenciais expostas e invalide sessões ativas. Atualize o conteúdo de detecção para capturar abusos similares de LOOBin e monitore o tráfego POST de saída para domínios não familiares.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Action nodes action_user_execution["<b>Ação</b> – <b>T1204 Execução do Usuário</b><br/>A vítima é enganada por um diálogo falso de Serviço de Proteção do macOS e insere a senha do dispositivo."] class action_user_execution action action_input_capture["<b>Ação</b> – <b>T1056.002 Captura de Entrada: Captura de Entrada GUI</b><br/>A solicitação maliciosa captura a senha inserida."] class action_input_capture action action_cred_dump["<b>Ação</b> – <b>T1555.001 Credenciais de Armazenamento de Senhas: Keychain</b><br/>Malware usa a senha capturada para despejar credenciais armazenadas do Keychain do macOS."] class action_cred_dump action action_browser_discovery["<b>Ação</b> – <b>T1217 Descoberta de Informações no Navegador</b><br/>O stealer coleta cookies do Chrome e Safari, logins salvos e outros dados de navegador."] class action_browser_discovery action action_archive["<b>Ação</b> – <b>T1560.001 Arquivar Dados Coletados: Arquivo via Utilitário</b><br/>Os arquivos coletados são comprimidos em um arquivo zip em /tmp/salmonela/."] class action_archive action action_obfuscate["<b>Ação</b> – <b>T1027.015 Arquivos ou Informações Ofuscados: Compressão</b><br/>O arquivo é usado para esconder os dados coletados."] class action_obfuscate action action_exfil["<b>Ação</b> – <b>T1071.001 Protocolo de Camada de Aplicação: Protocolos Web</b><br/>O arquivo zip é postado para um servidor remoto C2 via curl sobre HTTP/HTTPS."] class action_exfil action action_cleanup["<b>Ação</b> – <b>T1070.004 Remoção de Indicador: Exclusão de Arquivos</b><br/>Após a exfiltração, o malware apaga o arquivo para encobrir seus rastros."] class action_cleanup action %% Tool node tool_curl["<b>Ferramenta</b> – <b>Nome</b>: curl<br/><b>Descrição</b>: utilitário de linha de comando usado para transferir dados sobre HTTP/HTTPS."] class tool_curl tool %% File node file_archive["<b>Arquivo</b> – <b>Caminho</b>: /tmp/salmonela/archive.zip<br/><b>Tipo</b>: arquivo ZIP contendo dados colhidos."] class file_archive file %% Flow connections action_user_execution –>|leva a| action_input_capture action_input_capture –>|captura senha para| action_cred_dump action_cred_dump –>|habilita acesso a| action_browser_discovery action_browser_discovery –>|fornece dados para| action_archive action_archive –>|cria| file_archive action_obfuscate –>|aplica-se a| file_archive action_exfil –>|exfiltra| file_archive action_exfil –>|usa| tool_curl action_cleanup –>|deleta| file_archive "

Fluxo de Ataque

Ambiente de Simulação & Contexto

  • TTPs em Teste:

    • T1056.002: Captura de Entrada – Formulários da Web
    • T1204.004: Execução do Usuário – Arquivo Malicioso
    • T1548.004: Mecanismo de Controle Elevado – Ignorar Controle de Acesso do Usuário
    • T1555.002: Credenciais de Navegadores Web – Extração de Senhas
    • T1556.004: Modificar Processo de Autenticação – Modificação de Confiança do Domínio
  • Contexto & Relevância das TTPs:

    • T1056.002 – O infostealer coleta credenciais inseridas em formulários da web e as armazena na pasta de preparação.
    • T1204.004 – O binário malicioso é executado por um usuário (frequentemente por meio de um instalador disfarçado).
    • T1548.004 – A ameaça pode tentar executar a etapa de compressão com privilégios elevados para ignorar o sandboxing do macOS.
    • T1555.002 – Senhas de navegadores extraídas são escritas em arquivos sob /tmp/salmonela/.
    • T1556.004 – Em campanhas avançadas, o atacante pode modificar configurações de confiança local antes da exfiltração, mas a regra foca na atividade de preparação de dados.
  • Ambiente Alvo:

    • OS: macOS (Catalina 10.15 ou posterior)
    • Registro: Auditd + FSEvents (coleta de eventos de arquivos) encaminhado para um SIEM que consome regras Sigma.
    • Pilha de Segurança: SIEM compatível com Sigma Genérico (por exemplo, Elastic Stack, Splunk, Microsoft Sentinel).

Verificação de Telemetria & Linha de Base Pré‑voo

Justificativa: Antes de simular o ataque, devemos confirmar que o host alvo está configurado para gerar os logs necessários, que esses logs são ingeridos pelo SIEM, e que a regra de detecção não dispara em atividades benignas. Sem essa validação, qualquer resultado de teste é pouco confiável.

  • 1. Instruções de Configuração de Telemetria:

    1. Ativar o auditd do macOS para logging de linha de comando

      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
      sudo audit -s 1                # enable auditing
      sudo audit -f /etc/security/audit_control
      # Ensure "flags:fc,ex" (file create and exec) are present, then restart auditd
      sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist
      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
    2. Ativar FSEvents (já no macOS) e encaminhar para o SIEM – instale o módulo Elastic Filebeat para macOS ou o Splunk Universal Forwarder com o fschange input, garantindo que path: /tmp/ está incluído.

    3. Validar ingestão – no SIEM, execute uma consulta simples por qualquer evento contendo /tmp/ nos últimos 5 minutos para confirmar que o pipeline está ativo.

  • 2. Validação de Ingestão & Linha de Base:

    • Ação (Telemetria Benigna): Crie uma pasta temporária sob /tmp e comprima-a usando tar (que não not inclui a frase exata de gatilho).

      # comando benigno para gerar telemetria semelhante
      mkdir -p /tmp/salmonela_benign
      echo "dados benignos" > /tmp/salmonela_benign/sample.txt
      tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign
    • Consulta de Validação (Ingestão): (exemplo KQL para Elastic)

      filebeat-* 
      | where file.path contains "/tmp/salmonela_benign"
      | where process.command_line contains "tar"

      A consulta deve retornar o evento benigno, confirmando que os logs estão alcançando o SIEM enquanto not coincidindo com a regra de detecção (sem string “Zipped the contents of salmonela/”).


Execução de Simulação

Pré-requisito: A Verificação de Telemetria & Linha de Base Pré‑voo deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para ativar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e visando gerar exatamente a telemetria esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico errado.

  • Narrativa & Comandos do Ataque:

    1. Comprometimento Inicial (T1204.004): O atacante entrega um binário malicioso de macOS disfarçado como um instalador legítimo. O usuário o executa, concedendo ao processo binário direitos para gravar em /tmp.
    2. Colheita de Credenciais (T1056.002 & T1555.002): O binário injeta um key-logger no navegador da web do usuário, captura formulários de login e grava as credenciais coletadas em /tmp/salmonela/creds.txt.
    3. Desvio de Elevação de Privilégios (T1548.004): O binário invoca sudo com uma política pré-configurada que permite executar a etapa de compressão sem solicitar.
    4. Preparação & Compressão de Dados: O atacante executa um bash comando que tanto registra uma mensagem personalizada and compacta a pasta de preparação. A linha de comando exata contém a string literal "Zipped the contents of salmonela/", satisfazendo a condição Sigma.
     sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/"
  • Teste de Regressão Roteiro: (script Bash autônomo que reproduz as ações acima)

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 1. Prepara o diretório de preparação
    STAGE_DIR="/tmp/salmonela"
    mkdir -p "$STAGE_DIR"
    
    # 2. Simula despejo de credenciais
    echo "user:example@example.com" > "$STAGE_DIR/creds.txt"
    echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt"
    
    # 3. Comprime com a frase de gatilho exata na linha de comando
    sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/"
    
    echo "Simulação concluída – o alerta deve disparar."
  • Comandos de Limpeza: (remove artefatos e restaura o sistema)

    #!/usr/bin/env bash
    set -euo pipefail
    
    rm -rf /tmp/salmonela
    rm -f /tmp/salmonela_archive.zip
    echo "Limpeza concluída."