PamStealer Muda para Swift com uma Cadeia de Descriptografia no Lado do Servidor
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma nova variante do PamStealer para macOS introduz uma mudança arquitetural significativa de Rust para Swift. O malware atualizado depende de uma cadeia de descriptografia do lado do servidor movida por uma ferramenta personalizada chamada pkgunpack, exigindo interação ativa com C2 para descriptografar e executar a carga útil de segunda fase. Também utiliza mecanismos de persistência em camadas enquanto visa credenciais de navegador, dados do Keychain e metadados extensivos do sistema.
Investigação
O Jamf Threat Labs analisou a nova variante do PamStealer após identificá-la dentro de um instalador falso de carteira de criptomoeda chamado Wavel. A investigação revelou uma cadeia de execução em várias etapas começando com um dropper JXA compilado, seguido por uma etapa baseada em zsh que realiza trocas de chaves ao vivo, e uma segunda etapa baseada em Swift responsável pelo roubo de credenciais e impressão digital do sistema.
Mitigação
Os usuários devem evitar baixar aplicativos de fontes não oficiais, especialmente software que se faz passar por carteiras de criptomoeda. As organizações devem monitorar itens de fundo suspeitos no macOS e alterações não autorizadas em arquivos de configuração do shell, como .zshrc. Controles de segurança de endpoints capazes de detectar assinaturas de código ad hoc, reparentagem de processos anormais e execução incomum do shell podem reduzir ainda mais a exposição.
Resposta
Quando a atividade do PamStealer for detectada, isole o endpoint macOS afetado da rede para evitar mais comunicações de comando e controle e exfiltração de dados. Realize análise forense para determinar o escopo do roubo de credenciais, com atenção especial para dados de navegador e o Keychain do macOS. Revise os logs do sistema para a criação não autorizada de LaunchAgent, itens de fundo suspeitos e atividade inesperada do shell.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Assinatura de Código Forçada de Pacote de Aplicativo Modificado (via linha de comando)
Utilitário de Arquivo MacOS Apontando para Diretório Suspeito (via linha de comando)
Uso Suspeito de Ditto para Arquivamento e Exfiltração de Arquivos no macOS (via criação_de_processos)
Tentativa de Execução Suspeita do Curl [MacOS] (via linha de comando)
Arquivo Criado na Pasta Temporária do MacOS (via evento_de_arquivo)
Encerramento de Processos Auxiliares do Navegador para Desbloqueio de Credenciais [Criação de Processo no Windows]
Detectar Uso de xattr e codesign para Técnicas de Bypass na Variante PamStealer [Evento de Arquivo no Linux]
Execução de Script JXA do PamStealer via Zsh [Criação de Processo no Linux]
Execução de Simulação
-
Narrativa & Comandos do Ataque: O invasor busca implantar uma carga útil que evite a detecção em disco. Para conseguir isso, usam um comando que decodifica uma string codificada em Base64 e a envia diretamente para um
zshsubshell usando o-sflag. Para evitar que um investigador facilmente relacione o processo malicioso à sessão de shell original, o invasor encapsula a carga útil em uma função chamadadaemon_function, executa-a em segundo plano usando&, e sai imediatamente do shell atual para quebrar a ligação da árvore de processos. -
Script de Teste de Regressão:
#!/bin/bash # Simulação da execução de PamStealer JXA via zsh # Define a carga "maliciosa" como um nome de função e um comando # A carga é enviada para zsh -s para imitar o TTP PAYLOAD="daemon_function() { echo '[!] CARGA MALICIOSA EXECUTADA'; }; daemon_function & ; exit 0" # Execute a carga exatamente como a regra de detecção espera echo "$PAYLOAD" | zsh -s -
Comandos de Limpeza:
# A limpeza é mínima pois o comando é enviado e não cria arquivos persistentes. # Precisamos apenas garantir que nenhum processo em segundo plano da simulação ainda esteja em execução. pkill -f "daemon_function"