Conteúdo
- Introdução
- Principais alvos.
- Indústrias afetadas.
- Foco geográfico.
- Cadeia de infecção.
- Descobertas iniciais
- Olhando para o documento chamariz
- Análise Técnica
- Estágio 1 – Script LNK malicioso
- Etapa 2 – Truque do Pseudo-Poliglota: Tudo em Um.
- Etapa 3 – Carga Útil Final: COLHEITA DE LÓTUS
- Infraestrutura e Atribuição.
- Conclusão
- Seqrite Proteção.
- IOCs
- MITRE ATT&CK.
- autores
Introdução
O SEQRITE A Labs APT-Team tem monitorado ameaças globalmente e recentemente descobriu uma campanha direcionada a departamentos de TI e recrutadores de RH vietnamitas, utilizando currículos falsos em um formato pseudopoliglota. Outros pesquisadores Também observamos a mesma atividade. Batizamos a campanha de "campanha". “Operação Ladrão de Hanói” Devido à carga útil final, suas capacidades voltadas para roubo de dados e a localização geográfica mencionada no currículo, próxima a Hanói, capital do Vietnã, o agente da ameaça utiliza principalmente um tipo de arquivo que denominamos carga útil pseudopoliglota para ocultar suas intenções maliciosas.
Neste blog, explicaremos toda a cadeia de infecção, começando pelo comportamento da campanha e pela análise técnica desta campanha de múltiplas etapas. Na primeira etapa, veremos um arquivo ZIP que chega como anexo malicioso em um e-mail de spear-phishing. O arquivo ZIP contém dois arquivos: um documento que serve como isca e também como carga útil da segunda etapa, e um arquivo LNK que desencadeia a reação inicial. Posteriormente, analisaremos a carga útil da etapa final, que é um implante de DLL em C++, que chamaremos de LOTUSHARVEST, executado por meio de sideloading de DLL na máquina do alvo. Por fim, mas não menos importante, nos concentraremos na infraestrutura e em outros detalhes da campanha.
Principais Alvos
Setores Afetados
- Tecnologia da Informação
- Empresas de Recrutamento e RH
Foco Geográfico
- Vietnam
Cadeia de infecção

Descobertas iniciais
Inicialmente, em 3 de novembro de 2025, nossa equipe descobriu um arquivo ZIP malicioso de spear-phishing chamado Le-Xuan-Son_CV.zip, que foi detectado tanto em nossa telemetria privada quanto no conhecido banco de dados público de malware, o VirusTotal . O arquivo ZIP contém dois arquivos.

O primeiro arquivo é um arquivo LNK chamado CV.pdf.lnk. O segundo arquivo é algo que chamamos de payload pseudo-poliglota chamado offsec-certified-professional.png, que serve como isca e também como contêiner para o script .bat (em lote). Agora, vamos analisar primeiro a isca.
Olhando para o documento chamariz
Ao executar o PDF por meio de um analisador de PDF genérico ou visualizador de documentos, vemos que ele contém o currículo de uma pessoa chamada " Le Xuan Son ".

Ao analisarmos o conteúdo da isca, que, até o momento de nossa pesquisa, acreditamos ter sido projetada para fins de campanha, percebemos que a pessoa parece estar se candidatando a uma vaga de desenvolvedor de software. No entanto, o nome do arquivo que vimos anteriormente, "offsec-certified-professional", pertencente à área de segurança da informação, levanta preocupações quanto à vitimização, visto que o currículo disponível no arquivo ZIP é de um profissional de engenharia de software.
Bem, como mencionado, para ganhar a confiança da vítima, estabelecer credibilidade perante ela e reforçar seus objetivos de engenharia social, o agente da ameaça também anexou um URL do GitHub de uma conta criada em 2021. O currículo lista a localização do candidato como Hanói, Vietnã.

Ao examinarmos o perfil do GitHub mencionado no currículo, constatamos que a conta não possui atualizações ou atividades, o que indica uma maior probabilidade de ter sido criada especificamente para essa campanha de phishing.
Na próxima seção, examinaremos como o arquivo LNK executa uma carga útil poliglota e como o arquivo DLL malicioso resultante opera.
Análise Técnica
Dividiremos nossa análise em três seções distintas. Primeiro, examinaremos o arquivo de atalho malicioso (.LNK). Em seguida, analisaremos o segundo estágio, também conhecido como pseudopoliglota, e como a linha de comando maliciosa presente no arquivo de atalho (.LNK) utiliza um método exclusivo para executar o pseudopoliglota. Terceiro e último, nos concentraremos no implante de DLL conhecido como LOTUSHARVEST. Por fim, na seção seguinte, nos deteremos nos detalhes da campanha, como infraestrutura e muito mais.
Estágio 1 – Script LNK malicioso
Ao extrair o arquivo ZIP, o primeiro documento a ser executado é o arquivo LNK, responsável por executar o segundo pacote de processamento pseudopoliglota.

Agora, analisando os detalhes do LNK, encontramos um parâmetro interessante nos argumentos da linha de comando: o uso do ftp.exe para executar o arquivo pseudo-poliglota, com uma flag conhecida como -s. Ao executar o arquivo LNK, o resumo é exibido na tela enquanto, por outro lado, o script em lote, que veremos na próxima parte, é executado usando o ftp.exe do LOLbin.
Bem, chamar isso de abuso de LOLBIN não seria uma descrição muito clara de um comportamento orientado a TTPs (Táticas, Técnicas e Procedimentos), e explicaremos isso na próxima seção.
Etapa 2 – Truque do Pseudo-Poliglota: Tudo em Um.

Inicialmente, ao analisar o tipo de arquivo, que se dizia ser um arquivo de texto simples, vários analisadores de arquivos o identificavam como tal, enquanto analisadores de arquivos do tipo PDF o rotulavam como um arquivo PDF, processando-o e gerando-o. Portanto, para evitar possíveis confusões, deduzimos o tipo de arquivo usando um editor hexadecimal.

Ao analisarmos o editor hexadecimal, descobrimos que ele continha um conjunto de scripts maliciosos que eram executados antes da presença dos cabeçalhos PDF Magic. Portanto, extraímos o script.


Agora, aqui está uma parte um pouco interessante, porém simples, que foi descoberta por pesquisadores de segurança há alguns anos e que vem sendo explorada na prática. Embora o ftp.exe seja usado para conectar-se a um servidor FTP e executar comandos como downloads ou exfiltração de dados, nesta campanha observamos que o binário do FTP invocava comandos em uma máquina local, que continham o sinal de exclamação (!). Portanto, o binário ftp.exe executava os comandos ou scripts mencionados na máquina alvo.
Analisando o script, percebe-se que ele inicialmente abusa de um LOLBIN conhecido como DeviceCredentialDeployment.exe, que é usado basicamente para ocultar o binário cmd.exe. Além disso, examinando os comandos do script, ele enumera o binário certutil.exe e o renomeia para lala.exe. Em seguida, o script em lote renomeia o arquivo offsec-certified-professional.png para CV-Nguyen-Van-A.pdf e, então, abre o Explorador de Arquivos para exibir o PDF falso para a vítima.

Em seguida, o script procura um bloco de dados codificado em base64 dentro do arquivo pseudo-poliglota para o payload incorporado em seu conteúdo. Ele então extrai esses dados codificados, os decodifica e cria um arquivo DLL chamado MsCtfMonitor.dll, colocando-o no diretório C:\ProgramData , que rastreamos como um implante LOTUSHARVEST.

O script também copia o arquivo ctfmon.exe original da pasta System32 para o mesmo local do arquivo DLL e, em seguida, o executa. Como vimos, a DLL decodificada se chama MsCtfMonitor.dll, que é um arquivo de biblioteca importado por binário ctfmon.exeConforme a ordem de busca de DLLs, o Windows primeiro verifica a mesma pasta do executável e carrega a DLL de lá, caracterizando-se, portanto, como um caso de carregamento lateral de DLL.
Na próxima seção, examinaremos o funcionamento do implante DLL malicioso conhecido como LOTUSHARVEST, que é a carga útil final da campanha.
Etapa 3 – Carga Útil Final: COLHEITA DE LÓTUS

Inicialmente, confirmamos com ferramentas de análise de arquivos e, como de costume, trata-se de um binário PE de 64 bits. Ao analisar a DLL, descobrimos que o payload funciona como um ladrão de informações. Na próxima seção deste blog, exploraremos suas funcionalidades em detalhes.
![]()
Bem, antes de nos aprofundarmos nas funcionalidades e características principais deste implante, encontramos também um caminho PDB interessante, onde o TA o rotula como DEV-LOADER. Mas estamos rastreando-o como LOTUSHARVESTER.
Verificações Anti-Análise

O implante empregou alguns dos métodos anti-análise que descobrimos, como verificar se o programa está sendo executado em um ambiente virtual e, caso detecte essa condição, forçar uma falha. Para isso, e muito mais, veja a seguir.
IsProcessorFeaturePresent : Verifica a presença de um recurso específico da CPU e, se encontrado, aciona imediatamente um encerramento de falha rápida como medida anti-análise para evitar a execução em CPUs modernas, máquinas virtuais ou ambientes protegidos.
IsDebuggerPresent : Uma técnica muito comum que verifica se um depurador em modo de usuário está conectado. Se um depurador for detectado, o programa trava.
Exceções Falsas : O programa simula uma falha criando uma exceção falsa e um estado de CPU falso, altera o local onde o código "finge" estar sendo executado (RIP/RSP) e, em seguida, o envia para UnhandledExceptionFilter(). Isso engana os depuradores, bagunça a pilha de chamadas e oculta o que o programa está realmente fazendo.
Agora, passando para a parte em que o implante se concentra na coleta de credenciais baseadas no navegador.
Coleta de histórico de navegação e credenciais salvas

Agora, vimos que a outra exportação conhecida como DoMsCtfMonitor contém o código malicioso, que executa determinadas funções.

Ao examinarmos a função maliciosa, identificamos duas rotinas principais: uma dedicada à coleta de credenciais e outra responsável pela exfiltração dos dados coletados. Como esse implante de DLL opera principalmente como um ladrão de informações, seu foco principal é extrair informações confidenciais relacionadas ao navegador, como demonstraremos nesta seção.



Como podemos ver, o implante tem como alvo navegadores como o Google Chrome e o Microsoft Edge, abrindo e lendo inicialmente o conteúdo dos arquivos. Depois de coletá-los, o implante anexa o nome do computador e o nome de usuário da vítima, obtidos por meio de funções como GetComputerNameA e GetUserNameA, antes de iniciar a exfiltração de dados, criando uma entrada única no sistema do agente malicioso.

Nos fragmentos de código acima, podemos ver que o malware abre os bancos de dados de histórico SQLite dos navegadores , executa uma consulta para extrair os 20 URLs visitados mais recentemente e formata os resultados como uma matriz JSON contendo o URL, o título da página, a contagem de visitas e a hora da última visita.

Em seguida, abre o banco de dados de dados de login , lê até cinco credenciais de login armazenadas e tenta descriptografar cada senha usando a API clássica CryptUnprotectData.
Exfiltração de dados

Na próxima função, observamos que o implante exfiltra dados usando a API WinINet do Windows. Ele abre uma sessão HTTP e se conecta ao servidor controlado pelo atacante, eol4hkm8mfoeevs.m.pipedream.net, pela porta 443. Após estabelecer a conexão, ele envia uma requisição POST para o endpoint /service e repassa as informações roubadas do navegador como um payload JSON.
Agora, na próxima parte, analisaremos os detalhes da infraestrutura relacionados à campanha.
Infraestrutura e Atribuição
Durante a análise, observamos que a carga útil se comunica com múltiplos endpoints hospedados externamente. Um dos domínios identificados foi uuhlswlx[.]requestrepo[.]com, um subdomínio gerado aleatoriamente, enquanto o outro domínio que observamos, eol4hkm8mfoeevs[.]m[.]pipedream[.]net, também é um subdomínio gerado aleatoriamente e foi usado principalmente para exfiltrar as credenciais coletadas. Portanto, isso resume brevemente os detalhes da infraestrutura relacionada a esse implante.

Agora, usando uma pesquisa OSINT muito básica, também descobrimos que o número de contato usado pelo agente de recrutamento no currículo falso, +84912345678, pertence a uma boa loja na cidade de Hanói, embora não possamos afirmar com certeza, já que muitas vezes números de contato errados ou falsos são usados em vários locais.

Bem, focar nos detalhes orientados à atribuição requer evidências concretas em múltiplos parâmetros, como reutilização de táticas, técnicas e procedimentos, reutilização de infraestrutura e vitimologia. Como vimos anteriormente, por volta de março de 2025, um grupo de ameaças provavelmente patrocinado pelo Estado chinês teve como alvo o Vietnã com uma isca falsa baseada em um currículo, cujo nome se destacava como CV-Nguyen-Lam-San-Xuat-Noi-Dung-Compress.pdf. Nessa mesma campanha, vimos o nome da isca como `CV-Nguyen-Van-A`, uma nomenclatura semelhante, o que aumenta bastante a confiança em atribuir ambas as campanhas ao mesmo grupo de ameaças.
Bem, outra sobreposição muito comum, embora simples, entre as duas campanhas é o uso de domínios aleatórios orientados à DGA para distribuir implantes, assim como servidores de comando e controle (C2) foram usados em ambas as campanhas, o que, novamente, adiciona pouca confiança para atribuir ambas as campanhas. Por último, mas não menos importante, a semelhança entre as duas campanhas é o uso de vitimologia semelhante, ou seja, software de direcionamento e indústria de recrutamento.
Como pesquisadores, acreditamos que nossa análise deve levar em consideração não apenas as sobreposições, mas também os artefatos únicos e não similares. Neste caso, observamos que o agente da ameaça implantou o implante LOTUSHARVEST, que funciona como um ladrão de informações. Isso levanta preocupações, pois, embora patrocinado pelo Estado chinês abuse do sideloading de DLLs, ele também implanta implantes conhecidos como PlugX, entre outros. Portanto, considerá-lo como um ladrão de informações seria uma métrica conflitante e singular.
Portanto, com um nível de confiança moderado, focando nas sobreposições e diferenças entre campanhas de ameaças anteriores que testemunhamos, suas TTPs (Táticas, Técnicas e Procedimentos) e muito mais, decidimos atribuir a essa entidade de ameaça a origem chinesa, embora classificá-la como patrocinada pelo Estado ainda exija outras métricas importantes neste momento.
Conclusão
SEQRITE A APT-Team identificou a Operação Hanoi Thief como uma campanha de spear-phishing direcionada a profissionais de TI e recrutamento no Vietnã. Ela utiliza currículos falsos e arquivos de atalho para enganar as vítimas e, em seguida, abusa de ferramentas confiáveis do Windows para executar scripts ocultos. A carga útil final, chamada LOTUSHARVEST, é um implante DLL que rouba credenciais e histórico do navegador antes de enviá-los para os servidores do atacante. As táticas e as sobreposições com atividades anteriores sugerem um agente de ameaça de origem chinesa, embora o patrocínio estatal não esteja confirmado.
Seqrite pós-colheita
- Trojan.50086.SL
- Trojan.A18678918
- Aplicação
IOCs
| Hash (SHA-256) | Tipo de malware |
| 1beb8fb1b6283dc7fffedcc2f058836d895d92b2fb2c37d982714af648994fed | Arquivo ZIP |
| 77373ee9869b492de0db2462efd5d3eff910b227e53d238fae16ad011826388a | Arquivo LNK |
| 693ea9f0837c9e0c0413da6198b6316a6ca6dfd9f4d3db71664d2270a65bcf38 | Carga útil pseudo-poliglota (PDF, em lote) |
| 48e18db10bf9fa0033affaed849f053bd20c59b32b71855d1cc72f613d0cac4b | Arquivo DLL |
MITER ATT & CK
| Tática | ID da técnica | Nome da técnica |
| Acesso Inicial | T1566.001 | Anexo de Spearphishing |
| Desenvolvimento de Recursos | T1587.001 | Desenvolver cargas úteis: Malware |
| Execução | T1204.002 | Execução do usuário: arquivo malicioso |
| T1218 | Execução de proxy binário assinado | |
| Evasão de Defesa | T1036.007 | Mascaramento: extensão de arquivo enganosa |
| T1140 | Arquivo de desofuscação | |
| Escalonamento de Privilégios | T1574.002 | Carregamento lateral de DLL |
| Discovery | T1082 | Descoberta de informações do sistema |
| T1012 | Descoberta do sistema de arquivos para dados do navegador | |
| Acesso de credencial | T1555.003 | Credenciais de armazenamentos de senhas |
| Coleção | T1005 | Dados do sistema local |
| exfiltration | T1041 | Exfiltração no canal C2 |
| Comando e controle | T1071.001 | Protocolo Web: HTTPS |
autores
- Subhajeet Singha
- Priya Patel



