conteúdo
- Introdução
- Principais Alvos
- Setores Afetados
- Foco Geográfico
- Cadeia de infecção
- Descobertas iniciais
- Olhando para o documento chamariz
- Análise Técnica
- Estágio 1 – Arquivo RAR malicioso
- Estágio 2 – Malware-dropper .NET malicioso
- Estágio 3 – Carregador de Shellcode Golang malicioso
- Etapa 4 – Visão geral do Shellcode
- Caça e Infraestrutura
- Conclusão
- Seqrite pós-colheita
- IOCs
- MITER ATT & CK
- autores
Introdução
SEQRITE A equipe APT da Labs monitorou e descobriu uma campanha direcionada ao Universidade Técnica do Estado Báltico, uma instituição bem conhecida por vários programas de defesa, aeroespacial e engenharia avançada que contribuem para o complexo militar-industrial da Rússia. Rastreado como Operação HollowQuill, a campanha alavanca documentos de isca armada disfarçados de convites oficiais de pesquisa para infiltrar redes acadêmicas, governamentais e relacionadas à defesa. A entidade de ameaça entrega um arquivo RAR malicioso que contém um dropper de malware .NET, que também instala outro carregador de shellcode baseado em Golang, juntamente com um aplicativo OneDrive legítimo e um PDF baseado em isca com uma carga final do Cobalt Strike.
Principais Alvos
Setores Afetados
- Instituições acadêmicas e de pesquisa
- Indústria Militar e de Defesa.
- Tecnologia aeroespacial e de mísseis
- Entidades de pesquisa orientadas pelo governo.
Foco Geográfico
- Federação Russa.
Cadeia de infecção.

Resultados iniciais.
Nos primeiros meses de 2025, nossa equipe encontrou um arquivo RAR malicioso denominado Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. O arquivo Д.Ф. Устинова.rar , que se traduz como "Outgoing 3548 on the formation of state assignments for conducting fundamental and exploratory research at BSTU 'VOENMEKH' named after DF Ustinov.rar", foi encontrado no Virus Total . Após investigação, determinamos que este arquivo RAR foi usado como fonte preliminar de infecção, contendo um dropper .NET malicioso que, por sua vez, contém várias outras cargas úteis, além de um arquivo PDF falso.
O arquivo RAR contém um executável .NET malicioso que funciona como um conta-gotas, chamado “ Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова ” que também se traduz como Ofício nº 3548 referente à formação de atribuições estatais para a realização de pesquisa fundamental e exploratória na BSTU 'VOENMEKH', em homenagem a DF Ustinov. Este dropper é responsável por implantar um executável legítimo do OneDrive juntamente com um carregador de shellcode malicioso escrito em Golang. Após a execução, o executável .NET realiza diversas operações: uma delas é implantar o carregador Golang contendo o shellcode, injetar o shellcode no processo legítimo do OneDrive e gerar um documento de isca. Antes de nos aprofundarmos nos detalhes técnicos, vamos primeiro examinar o documento de isca.
Analisando o documento falso.
Ao analisar o documento falso, descobriu-se que se trata de um documento do Ministério da Ciência e Ensino Superior da Rússia , especificamente referente à Universidade Técnica Estatal do Báltico "VOENMEKH", que leva o nome de D.F. Ustinov . O documento parece ser uma comunicação oficial dirigida a diversas organizações, possivelmente abordando projetos de pesquisa encomendados pelo Estado ou colaborações acadêmicas relacionadas à defesa.

A versão acima é uma versão traduzida das seções iniciais do chamariz.

O conteúdo e todo o documento confirmam que este PDF serve como um guia abrangente para a alocação de tarefas de pesquisa atribuídas pelo Estado, descrevendo o processo para as organizações submeterem propostas para projetos de pesquisa fundamental e aplicada no ciclo orçamentário de 2026-2028. Ele fornece instruções para instituições, especialmente aquelas envolvidas em pesquisa científica e tecnológica avançada, sobre como registrar suas solicitações tecnológicas no Sistema Unificado de Informação Estadual para Pesquisa Científica e Projetos Tecnológicos (ЕГИСУ НИОКТР) antes do prazo especificado.

Agora, analisando a parte final do documento, podemos observar que ele fornece informações adicionais sobre o processo de submissão de projetos de pesquisa atribuídos pelo Estado, enfatizando que o apoio financeiro para esses projetos virá de verbas orçamentárias do Ministério da Ciência e Ensino Superior da Rússia. Além disso, o documento menciona os dados de contato de Bogdan Evgenyevich Melnikov, pesquisador sênior do Departamento de Pesquisa Fundamental e Exploratória, com endereço de e-mail para contato, para consultas.
Bem, ao final dessa isca, pode-se ver que ela foi assinada por A.E. Shashurin, identificado como Doutor em Ciências Técnicas (д.т.н.) , professor e reitor interino ( и.о. ректора) da instituição. No geral, esse documento de isca serve como uma comunicação oficial do Ministério da Ciência e Ensino Superior da Rússia, fornecendo diretrizes para organizações sobre iniciativas de pesquisa financiadas pelo Estado.
Análise Técnica
Dividiremos nossa análise em quatro seções principais. Primeiro , examinaremos o arquivo RAR malicioso. Segundo , analisaremos o dropper .NET malicioso. Terceiro, focaremos na análise do funcionamento do injetor de shellcode malicioso baseado em Golang e, por fim, examinaremos o payload malicioso do Cobalt Strike. Essa exploração detalhada esclarecerá as metodologias empregadas e fornecerá insights sobre as táticas do agente de ameaça nesta campanha específica.
Estágio 1 – Arquivo RAR malicioso.
Ao examinar o arquivo RAR malicioso, ele contém outro executável malicioso chamado Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Observação. Após a análise inicial dos artefatos do arquivo, foi revelado que se trata de um executável .NET de 32 bits. Na próxima seção, exploraremos a funcionalidade deste executável .NET.

Estágio 2 – Instalador de malware .NET malicioso.
Agora, vamos analisar o funcionamento do arquivo .NET que foi compactado dentro do arquivo RAR. Como na seção anterior, descobrimos que o binário é basicamente um executável .NET de 32 bits, mas ele também foi renomeado como SystemUpdaters.exe enquanto o carregávamos nas ferramentas de análise.

Ao examinar a amostra, encontramos três métodos interessantes. Agora, vamos nos aprofundar neles.

Observando o primeiro método, podemos ver que a função Main chama outro método, MyCustomApplicationContext. Vamos analisar o método.


Em seguida, analisando o método, descobrimos que o código inicialmente verifica se o PDF falso está presente no local C:\Usuários\Appdata\Roaming\Documentos. Caso o arquivo PDF não esteja presente, ele prossegue e copia o falso, que está armazenado na seção de recursos, e o grava no local.

Em seguida, examinando o código mais detalhadamente, descobrimos que ele verifica se o arquivo OneDrive.exe, que é basicamente o aplicativo legítimo do OneDrive, existe. Caso não o encontre no local desejado, ele copia o aplicativo legítimo armazenado na seção de recursos e o grava no local.

Analisando a parte posterior do código, descobrimos que ele verifica se há um arquivo chamado OneDrives_v2_1.exe no local C:\Users\Appdata\Roaming\Driver. Caso não encontre o arquivo, assim como acontece com arquivos semelhantes, ele copia o executável da seção de recursos e o grava no local.



Ao analisarmos um dos aspectos mais intrigantes deste dropper, observamos que ele utiliza um arquivo de atalho (.lnk) chamado X2yL.lnk como mecanismo de persistência, colocando-o na pasta Inicialização do Windows para garantir sua execução na inicialização do sistema. Ao analisarmos o método H3kT7fXw, constatamos que ele é responsável pela criação desse arquivo de atalho. O método utiliza o WshShell para gerar o arquivo .lnk e atribui a ele um ícone baseado no Microsoft Office , tornando-o menos suspeito. Além disso, o caminho de destino do atalho é definido para o local onde o payload malicioso, ou seja, OneDrives_v2_1.exe, está armazenado, garantindo sua execução sempre que o atalho for acionado na inicialização.

No final, ele prossegue e gera o PDF falso na tela. Concluída a análise do dropper malicioso do .NET, nas próximas seções, analisaremos o executável malicioso lançado por esse dropper.
Estágio 3 – Carregador de shellcode Golang malicioso.

Inicialmente, ao analisar o exemplo dentro das ferramentas de análise, podemos confirmar que este executável foi programado usando Golang. Em seguida, veremos o funcionamento do carregador de shellcode e seu mecanismo de injeção.

Ao analisarmos a primeira parte deste carregador de shellcode, descobrimos que o binário executa a função `time_now` para capturar inicialmente a hora atual do sistema. Em seguida, chama `time_sleep`, também uma função em Go com um valor fixo, e novamente chama `time_now`, que verifica o timestamp após o período de espera. Depois, chama `time_Time_Sub`, que verifica a diferença entre o timestamp capturado pela função e o tempo total de espera, verificando se é inferior a 6 segundos. Caso seja menor, o programa é encerrado, o que funciona como uma pequena técnica anti-análise.


Em seguida, avançando e verificando o código, descobrimos que o executável legítimo do OneDrive, que foi descartado pelo dropper do .NET, um processo semelhante, está sendo criado usando a API CreateProcess no Golang, e o processo está sendo criado em modo suspenso.


Então, o shellcode que já está incorporado neste binário do carregador está sendo lido usando a função embed_FS_ReadFile do Golang que retorna o shellcode.

Em seguida, o shellcode que foi retornado pela função anterior em um formato codificado em base64 está sendo decodificado usando a função nativa Golang base64.StdEncoding.DecodeString e retornado.

Então, o código basicamente usa uma chave de 13 bytes codificada, que é usada basicamente para decodificar todo o shellcode.



Por fim, o código executa a técnica de Injeção APC para injetar o shellcode na memória, começando com o processo em estado suspenso. Em seguida, decodifica e descriptografa o shellcode, aloca memória no processo OneDrive.exe suspenso e, uma vez alocada a memória, escreve o shellcode nela usando WriteProcessMemory. Depois, utiliza a API QueueUserAPC para enfileirar uma chamada de função na thread principal do processo OneDrive.exe suspenso . Finalmente, usa ResumeThread para executar a função APC enfileirada (contendo o shellcode), executando efetivamente o código malicioso injetado no contexto do OneDrive.exe. Agora, vamos analisar alguns artefatos importantes do shellcode.
Etapa 4 - Visão geral do shellcode.
Ao examinar o shellcode malicioso e analisá-lo, descobrimos que o shellcode é, na verdade, um carregador, que funciona carregando inicialmente uma biblioteca wwanmm.dll do Windows.

Uma vez carregada, a DLL zera a seção .text da DLL. Ela utiliza uma API do Windows, DllCanUnloadNow, que ajuda a preparar o beacon na memória. Isso facilita ainda mais o funcionamento do shellcode, que é um beacon Cobalt Strike.



Uma análise mais aprofundada revela que o beacon está se conectando ao servidor C2, hospedado pelo invasor, utilizando um agente de usuário específico. Como essa ferramenta é bastante utilizada, não nos aprofundaremos no funcionamento do beacon malicioso. A configuração do beacon pode ser extraída da seguinte forma:
Configuração extraída:
Método: GETHost[Comando e Controle]: phpsympfony.comUser-Agent: “Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko”
Caça e Infraestrutura.
Após analisar o injetor de shellcode programado em Golang, encontramos pequenos erros relacionados à OPSEC cometidos pelo agente da ameaça, como deixar o ID do Go-build junto com o injetor, o que nos ajudou a procurar por payloads semelhantes, usados pelo mesmo agente da ameaça. O ID do Go-build é o seguinte:
-_APqjT14Rci2qCv58VO/QN6emhFauHgKzaZvDVYE/3lVOVKh9ePO_EDoV_lSN/NL58izAdTGRId20sd3CJ
Agora, analisando os artefatos de infraestrutura, o servidor malicioso de comando e controle hospedado no domínio phpsymfony[.]com vem rotacionando o domínio entre vários serviços ASN. Além disso, há um título HTTP exclusivo que também foi rotacionado diversas vezes no servidor C2.

Olhando para a resposta ao longo do histórico, podemos ver que o título Em breve – pariaturzzphy.makebelievercorp[.]com foi criado várias vezes.

Após pesquisar mais sobre o mesmo título HTTP, descobrimos que muitos hosts estão servindo o mesmo título, alguns dos quais estão servindo binários maliciosos, como ASyncRAT e muito mais.

Analisando os ASNs, o servidor C2 está em rotação desde a data de ativação. A lista é a seguinte.
| ASN | Geolocalização | Proprietário |
| AS13335 | Estados Unidos | Rede Cloudflare |
| AS35916 | Estados Unidos | MULTA-ASN1 |
| AS135377 | Hong Kong | UCLOUD-HK-AS-AP UCLOUD TECNOLOGIA DA INFORMAÇÃO HK LIMITADA |
| AS174 | Estados Unidos | COGENT-174 |
| AS47846 | Alemanha | SEDO-AS |
| AS8560 | 🌍 Desconhecido | IONOS-AS |
Conclusão
Descobrimos que um agente de ameaças está mirando na Universidade Técnica do Báltico usando um recurso de pesquisa, utilizando um dropper .NET para carregar shellcode, finalmente entregando um implante na memória Cobalt Strike. Analisando a campanha geral e os TTPs empregados pelo agente de ameaças, podemos concluir que o agente de ameaças começou a atacar há alguns meses, desde dezembro de 2024.
SEQRITE Proteção.
- Trojan.Ghanarava.1738100518c73fdb
- Trojan.Ghanarava.1735165667615275

COIs.
| MD5 | Nome do arquivo |
| ab310ddf9267ed5d613bcc0e52c71a08 | Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Ustinova.rar |
| fad1ddfb40a8786c1dd2b50dc9615275 | Atualizadores de sistemas.exe |
| cac4db5c6ecfffe984d5d1df1bc73fdb | OneDrives_v2_1.exe |
C2
| phpsymfony[.]com |
| hxxps://phpsymfony[.]com/css3/index2.shtml |
MITRE ATT&CK.
| Tática | ID da técnica | Nome |
| Acesso Inicial | T1566.001 | Phishing: Anexo de spear phishing
|
| Execução | T1204.002
T1053.005 |
Execução do usuário: arquivo malicioso
Tarefa agendada. |
| Persistência | T1547.001 | Chaves de execução do Registro / Pasta de inicialização |
| Evasão de Defesa | T1036 T1027.009 T1055.004 T1497.003 |
Masquerading Cargas úteis incorporadas. Chamada de procedimento assíncrona Evasão Baseada em Tempo |
| Comando e controle | T1132.001 | Codificação de Dados: Codificação Padrão |
autores
- Subhajeet Singha
- Sathwik Ram Prakki




