Malware VOID#GEIST
Pesquisadores de cibersegurança descobriram uma sofisticada campanha de malware em múltiplos estágios que utiliza scripts em lote para distribuir payloads criptografados de trojans de acesso remoto (RAT). A campanha, identificada como VOID#GEIST, utiliza diversas famílias de RATs, incluindo XWorm, AsyncRAT e Xeno RAT.
A cadeia de ataque utiliza um script em lote ofuscado que inicia uma sequência de ações projetadas para evitar a detecção. Essas ações incluem a execução de um script em lote adicional, a preparação de um ambiente de execução Python legítimo e a descriptografia de payloads de shellcode criptografados. O shellcode é executado diretamente na memória após ser injetado em instâncias separadas do processo explorer.exe do Windows, utilizando uma técnica conhecida como injeção Early Bird Asynchronous Procedure Call (APC).
Índice
Distribuição de malware orientada por scripts: um modelo de ameaça moderno
Os agentes de ameaças modernos estão cada vez mais abandonando os malwares executáveis independentes tradicionais em favor de estruturas de distribuição em camadas, baseadas em scripts, que imitam o comportamento legítimo do usuário. Em vez de implantar binários executáveis portáteis (PE) convencionais, os atacantes orquestram pipelines multicomponentes que combinam diversas tecnologias legítimas e ambientes de script.
Os componentes típicos usados nessas estruturas incluem:
- Scripts em lote usados para orquestrar a sequência de infecção.
- Comandos do PowerShell que facilitam o posicionamento furtivo de cargas úteis.
- Ambientes de execução legítimos incorporados que garantem a portabilidade entre sistemas.
- Shellcode bruto executado diretamente na memória para manter a persistência e o controle.
Essa abordagem de execução sem arquivos reduz significativamente as oportunidades de detecção baseada em disco. Cada etapa individual parece relativamente inofensiva quando examinada isoladamente e muitas vezes se assemelha a atividades administrativas rotineiras, permitindo que agentes maliciosos operem em ambientes comprometidos sem gerar alertas de segurança imediatos.
Acesso inicial por meio de phishing e infraestrutura da Cloudflare
O ponto de entrada do ataque começa com um script malicioso em lote, distribuído por meio de e-mails de phishing. O script é obtido de uma infraestrutura hospedada em um domínio da TryCloudflare. Uma vez executado, o script evita deliberadamente tentativas de escalonamento de privilégios e, em vez disso, opera estritamente dentro dos limites de permissão do usuário atualmente conectado.
Essa estratégia permite que o malware estabeleça sua presença inicial enquanto se mistura às operações rotineiras do usuário. Ao evitar ações que exigem privilégios elevados, o ataque reduz a probabilidade de acionar avisos de segurança ou solicitações administrativas.
Distração visual e técnicas de execução furtiva
Após a execução, a primeira etapa do malware exibe um documento falso para distrair a vítima. O Google Chrome é aberto em tela cheia para exibir um documento financeiro ou fatura em formato PDF. Enquanto o usuário se concentra no documento, a atividade maliciosa continua em segundo plano.
Simultaneamente, um comando do PowerShell é executado para reiniciar o script em lote original com parâmetros de execução ocultos. O uso do parâmetro -WindowStyle Hidden impede que uma janela de console visível apareça, garantindo que a atividade maliciosa permaneça oculta do usuário.
Persistência por meio da execução de inicialização em nível de usuário
Para manter a persistência após reinicializações do sistema, o malware implanta um script em lote auxiliar no diretório de inicialização do usuário do Windows. Essa localização garante que o script seja executado automaticamente sempre que a vítima fizer login no sistema.
Esse mecanismo de persistência é intencionalmente sutil. Em vez de usar técnicas mais intrusivas, como modificar chaves do registro do sistema, criar tarefas agendadas ou instalar serviços, o malware se baseia exclusivamente no comportamento padrão de inicialização do usuário. Como a abordagem opera inteiramente dentro do contexto dos privilégios do usuário atual, ela evita acionar solicitações de escalonamento de privilégios e reduz a probabilidade de detecção por ferramentas de monitoramento de registro.
Estrutura de Recuperação e Decriptação de Carga Útil
Na próxima etapa da cadeia de infecção, o malware contata um domínio da TryCloudflare para obter componentes adicionais da carga útil, compactados em arquivos ZIP. Esses arquivos contêm os módulos necessários para descriptografar e executar as cargas úteis finais do malware.
O arquivo baixado normalmente contém os seguintes componentes:
- runn.py – um carregador baseado em Python responsável por descriptografar e injetar módulos de shellcode criptografados na memória.
- new.bin – payload de shellcode criptografado associado ao XWorm
- xn.bin – payload de shellcode criptografado correspondente ao Xeno RAT
- pul.bin – payload de shellcode criptografado correspondente ao AsyncRAT
- a.json, n.json e p.json – arquivos de chave usados pelo carregador Python para descriptografar dinamicamente os payloads de shellcode durante a execução.
Esse design modular permite que os atacantes preparem diferentes cargas úteis de forma independente e as ativem somente quando necessário.
Ambiente de execução Python incorporado para portabilidade e discrição.
Após a extração do arquivo, o malware instala um ambiente de execução Python legítimo, obtido diretamente do python.org. A instalação de um interpretador legítimo elimina a dependência de qualquer instalação do Python que já possa existir no sistema comprometido.
Do ponto de vista do atacante, esta etapa oferece diversas vantagens estratégicas. O malware torna-se um ambiente de execução autossuficiente, capaz de descriptografar e injetar payloads sem depender de recursos externos. Isso melhora a portabilidade entre diferentes sistemas, aumenta a confiabilidade e contribui para a furtividade operacional, utilizando componentes de software legítimos.
Execução em memória de múltiplas cargas úteis RAT
O ambiente de execução Python incorporado é então usado para executar o script de carregamento runn.py. O carregador descriptografa o shellcode associado ao XWorm e o injeta em uma instância em execução do explorer.exe usando injeção Early Bird APC.
Para implantar o Xeno RAT, o malware utiliza um binário legítimo da Microsoft chamado AppInstallerPythonRedirector.exe, que é usado para invocar o Python e executar os componentes necessários. A mesma técnica de injeção é posteriormente reutilizada para implantar o AsyncRAT, garantindo que todas as cargas úteis sejam executadas inteiramente na memória, sem deixar artefatos executáveis tradicionais no disco.
Sinalização de comando e controle e arquitetura modular
A etapa final do ataque envolve o envio de um beacon HTTP mínimo para a infraestrutura de Comando e Controle (C2) controlada pelo atacante e hospedada na TryCloudflare. Esse beacon confirma que o sistema foi comprometido com sucesso e está pronto para receber novas instruções.
Embora os alvos específicos da campanha permaneçam desconhecidos, a cadeia de infecção demonstra uma arquitetura altamente modular. Em vez de implantar uma única carga maliciosa de grande porte, os atacantes introduzem componentes incrementalmente em vários estágios. Esse design aprimora a flexibilidade operacional e a resiliência.
Do ponto de vista da detecção, um indicador comportamental notável emerge ao longo da campanha: a injeção repetida de processos no explorer.exe em intervalos de tempo curtos. Esse padrão pode servir como um forte sinal para os defensores que tentam correlacionar atividades suspeitas em diferentes estágios do ciclo de vida do ataque.