🚀 A CloudSEK se torna a primeira empresa de segurança cibernética de origem indiana a receber investimentos da Estado dos EUA fundo
Leia mais
O TRIAD da CloudSEK descobriu uma campanha da Silver Fox APT visando a Índia com iscas de phishing com tema de imposto de renda. A isca é visualmente idêntica às descobertas por outros fornecedores, no entanto, essa campanha não foi atribuída a um agente de ameaça específico antes deste relatório. A precisão da atribuição é fundamental para a inteligência de ameaças; ela permite que os defensores prevejam o comportamento do adversário e implementem contramedidas específicas. A atribuição incorreta de fontes confiáveis se propaga por meio de feeds de ameaças e sistemas de detecção, fazendo com que as organizações se concentrem na ameaça errada enquanto o adversário real opera sem ser detectado. Atribuir essa campanha ao SideWinder APT (alinhado à Índia) contradiz a vitimologia básica e cria confusão sistêmica. O uso de nosso relatório visa destacar a sofisticada cadeia de mortes do grupo chinês APT e explica a lógica por trás da atribuição do CloudSEK.


Encontramos um e-mail interessante enviado da Índia com apenas um anexo chamado “TOPSOE India Private Limited”. O pdf parecia um documento oficial do Departamento de Imposto de Renda. Ao clicar no pdf, “ggwk [.] cc” se abre no navegador e um arquivo zip chamado “tax affairs.exe” é baixado.


Usando a análise estática, vemos que o arquivo PE fornecido é um binário GUI de 32 bits. Mais importante ainda, o arquivo é identificado como um instalador do sistema Nullsoft Scriptable Install (NSIS). Os instaladores do NSIS incorporam seu script de instalação, cargas compactadas etc. dentro do próprio binário e podemos prosseguir para analisá-lo como uma carga útil de teste conduzida pelo instalador.

O instalador do NSIS começa resolvendo um diretório temporário gravável usando getTempPathA.
Se a operação falhar, ela retornará para C:\Windows\Temp, garantindo a confiabilidade da execução. Depois que um local válido é identificado, o instalador cria um diretório de trabalho específico do NSIS (~nsu.tmp) e muda o diretório para ele.

Após a análise, descobrimos que apenas 2 arquivos são úteis para nós, Thunder.exe e libexpat.dll. Thunder.exe é um executável legítimo, assinado digitalmente desenvolvido pela Xunlei (), comumente distribuído como parte do ecossistema do gerenciador de downloads Thunder. Nessa cadeia de infecção, o binário em si não é malicioso, mas é usado como um host sequestrador de DLL. Quando executado a partir do diretório temporário do instalador, o Thunder.exe carrega libexpat.dll de seu caminho local devido à ordem de pesquisa de DLL padrão. Podemos confirmar isso em x64dbg.

O libexpat.dll descartado faz não exportar nenhuma função significativa e é nunca invocado explicitamente por Thunder.exe.A dll depende da funcionalidade do carregador do Windows e chama o DllMain. Esse retorno de chamada é invocado incondicionalmente, independentemente de a DLL exportar alguma função ou ser usada ativamente pelo processo hospedeiro.
Vamos dar uma olhada no funcionamento da DLL.

A função principal começa com muitas técnicas anti-depuração e sandbox. A DLL executa a enumeração de processos e verifica a lista de processos em busca de ferramentas comuns de análise e sandbox. Além disso, a DLL consulta os recursos do sistema, verificando se os requisitos mínimos estão satisfeitos ou não. Além disso, se detectar algum ambiente de sandbox, ele encerrará o malware.

Depois que a DLL conclui suas verificações anti-análise, ela entra na lógica de execução principal. Primeiro, ele desativa o serviço Windows Update (wuauserv) e depois carrega uma carga criptografada do disco. A carga útil é resolvida dinamicamente e carrega o arquivo box.ini do diretório temporário. O arquivo é totalmente lido na memória, descriptografado usando constantes criptográficas incorporadas e posteriormente executado como shellcode.


O shellcode é executado usando uma técnica clássica chamada Injeção de Processo. A rotina começa com a verificação da presença de explorer.exe, que posteriormente é usado como o processo de destino. O binário é lançado em estado suspenso e o malware recupera o contexto inicial do thread. Além disso, ele aloca memória executável dentro do processo remoto via VirtualAlloceX e grava a carga via WriteProcessMemory.

A função LogStatus implementa um mecanismo de registro interno usado em toda a DLL para registrar o progresso da execução e os estados de erro. A função formata uma mensagem de log com registro de data e hora, anexa-a a um arquivo local (C:\data.db) e aplica uma ofuscação personalizada leve antes de gravá-la no disco.

A carga injetada pode ser despejada conectando um depurador ao processo vazio explorer.exe e monitorando a região de memória alocada via VirtualAlloceX. Depois que a carga útil é gravada usando WriteProcessMemory e a execução é redirecionada, a região alocada pode ser despejada diretamente da memória, gerando a carga útil do próximo estágio para análise.

Examinando a carga descriptografada, descobrimos que a carga final é uma Código de shell gerado por donuts. Nessa configuração, o Donut é usado para agrupar uma carga gerenciada em código de shell bruto, permitindo que ela seja executada inteiramente da memória sem tocar no disco.

Podemos despejar a carga útil do Donut usando ferramentas como sem dúvida ou decodificador de rosquinhas .
Depois que o carregador Donut injeta com sucesso a carga final no processo vazio do explorer.exe, o Valley RAT inicializa seu sofisticado subsistema de gerenciamento de configuração. Ele começa definindo procedimentos anti-análise e, em seguida, invoca uma função sub_405E40 () para inicializar sua configuração e, posteriormente, criar um thread para comunicação C2.

A função implementa um mecanismo de carregamento de dois estágios. Ele extrai 22 parâmetros de configuração distintos por meio de uma função de análise.
Infraestrutura de comando e controle (9 parâmetros):
Parâmetros operacionais (5 parâmetros):
Sinalizadores de recursos (8 parâmetros booleanos):
Depois de carregar a configuração incorporada, o Valley RAT consulta o registro do Windows para obter a infraestrutura C2 atualizada:

Se o valor do registro existir e exceder 10 bytes, Valley RAT substitui completamente sua configuração incorporada e, em seguida, analisa novamente somente os parâmetros C2 críticos (p1 a t3). Isso permite que os operadores da Silver Fox enviem endereços C2 atualizados sem implantar novos binários ou recuperar a execução do código.
Depois que a configuração for carregada. O Valley RAT gera seu thread de carga útil (StartAddress) que implementa um loop de comunicação C2 de 3 níveis.

O loop de comunicação implementa o failover de várias camadas alternando entre servidores C2 primários (p1) e secundários (p2), mudando para terciários (p3) após 200 falhas. Ele suporta protocolos HTTP/HTTPS e TCP bruto, usa intervalos de sinalização configuráveis (cl:) para reduzir a detecção e atrasa a conexão inicial (dd:) para evitar sandboxes.
Após uma conexão bem-sucedida, o Valley RAT envia um farol “pronto” (ID de comando: 4), ativa o keylogging se configurado (kl: flag) e aguarda os comandos C2. Essa arquitetura é mapeada para a infraestrutura descoberta: b [.] yuxuanow [.] top (103.20.195 [.] 147) como shellcode primário C2, com camadas secundárias/terciárias girando em domínios como itdd [.] club, gov-a [.] work e xzghjec [.] com.

O Valley RAT implementa uma arquitetura modular de plug-ins que permite a extensão dinâmica da capacidade por meio da persistência baseada em registro. O malware armazena os plug-ins baixados em HKCU\ Console\ 0\ d33f351a4aeea5e608853d1a56661059, um nome de valor de registro consistente com a impressão digital estabelecida do Valley RAT, seguindo a convenção de nomenclatura de hash MD5 observada em várias campanhas do Valley RAT. O gerenciador de plug-ins opera em dois modos: ele recebe módulos do servidor C2, aloca memória executável com permissões PAGE_EXECUTE_READWRITE e persiste a configuração de 2628 bytes mais o código de carga útil no registro como dados REG_BINARY ou recupera plug-ins armazenados anteriormente do registro, os valida com base em uma assinatura codificada e gera threads de execução.
Cada plug-in inclui um protetor mágico de bytes (0xC9) para evitar a execução dupla. Essa arquitetura permite que os operadores da Silver Fox implantem recursos especializados, como keylogging avançado, coleta de credenciais ou módulos de movimentação lateral sob demanda em sistemas comprometidos, com persistência automática nas reinicializações por meio do armazenamento do registro.

Depois de baixar os plug-ins do servidor C2, o Valley RAT os injeta no tracerpt.exe, um utilitário legítimo assinado da Microsoft, usando o mesmo processo de esvaziamento. O malware cria o processo em um estado suspenso, injeta o código do plugin em sua memória e redireciona a execução para a carga maliciosa. Antes da injeção, ele corrige o plug-in com a mesma configuração de 4768 bytes contendo endereços C2 e sinalizadores de recursos analisados anteriormente.
Vamos começar com o C2 incorporado no documento isca “ggwk [.] cc”.

O C2 tem 2 títulos diferentes ao longo do tempo, todos eles alinhados com a isca de phishing com tema de imposto de renda, ambos do mesmo ASN. No entanto, há um denominador comum: o favicon.

Nós encontrado Mais de 10 domínios que compartilham o mesmo favicon. Se observarmos os títulos das respostas http, podemos ver que todos os títulos têm como tema imposto de renda. Os resultados podem ser validados em relação à VT para descobrir amostras adicionais desta campanha. Consulte a seção IOCs abaixo.

