Índice
- Introducción
- Objetivos clave.
- Industrias afectadas.
- Enfoque geográfico.
- Cadena de infección.
- Hallazgos iniciales
- Examinando el documento señuelo
- Análisis técnico
- Etapa 1: Script LNK malicioso
- Etapa 2 – Truco del pseudopolíglota: Todo en uno.
- Etapa 3 – Carga útil final: LOTUSHARVEST
- Infraestructura y atribución.
- Conclusión
- Seqrite Proteccion.
- IOCs
- MITRE ATT&CK.
- Escritores
Introducción
El SEQRITE El equipo APT de Labs ha estado rastreando amenazas a nivel mundial y recientemente ha descubierto una campaña dirigida a departamentos de TI y reclutadores de recursos humanos vietnamitas que utilizan documentos falsos de tipo pseudo-políglota con apariencia de currículum vitae. Otros investigadores También hemos visto la misma actividad. Hemos llamado a la campaña Operación Ladrón de Hanoi Debido a la carga útil final, sus capacidades de robo y la ubicación geográfica del resumen, que se encuentra cerca de Hanói, la capital de Vietnam, el actor de amenazas utiliza principalmente un tipo de archivo que denominamos carga útil pseudopolíglota para ocultar sus intenciones maliciosas.
En este blog, explicaremos toda la cadena de infección, comenzando por el comportamiento de la campaña y el análisis técnico de esta campaña multietapa. En la primera etapa, veremos un archivo ZIP adjunto a un correo electrónico malicioso de phishing selectivo. El archivo ZIP contiene dos archivos: un documento que sirve como señuelo y como carga útil de la segunda etapa, y un archivo LNK que desencadena la reacción inicial. Posteriormente, analizaremos la carga útil de la etapa final, que consiste en un implante de DLL de C++, denominado LOTUSHARVEST, que se ejecuta mediante la instalación lateral de una DLL en el equipo objetivo. Finalmente, nos centraremos en la infraestructura y otros detalles de la campaña.
Objetivos clave
Industrias afectadas
- Tecnologías de la información
- Empresas de contratación y recursos humanos
Enfoque geográfico
- Vietnam
Cadena de infección

Hallazgos iniciales
Inicialmente, el 3 de noviembre de 2025, nuestro equipo descubrió un archivo ZIP malicioso de spear-phishing llamado Le-Xuan-Son_CV.zip, que apareció tanto en nuestra telemetría privada como en el famoso corpus público de malware de VirusTotal . El archivo ZIP contiene dos archivos.

El primer archivo es un archivo LNK llamado CV.pdf.lnk. El segundo archivo es una carga útil pseudopolíglota llamada offsec-certified-professional.png, que sirve como señuelo y también como contenedor para la carga útil del script .bat(batch). Ahora, analicemos primero el señuelo.
Examinando el documento señuelo
Al ejecutar el PDF a través de un analizador de PDF genérico o un visor de documentos, vemos que contiene el currículum de una persona llamada “ Le Xuan Son ”.

Al examinar el contenido del señuelo, que en el momento de nuestra investigación consideramos diseñado para la difusión de campañas, la persona parece estar solicitando un puesto de desarrollador de software. Sin embargo, el nombre de este archivo, que vimos anteriormente, es "offsec-certified-professional", perteneciente al ámbito de la seguridad de la información, lo que genera preocupación en cuanto a la victimización, ya que el currículum disponible en el archivo ZIP pertenece a un profesional de la ingeniería de software.
Bueno, como se mencionó, para ganarse la confianza de la víctima y establecer credibilidad ante ella, y para mejorar los motivos de ingeniería social, el actor de la amenaza también adjuntó una URL de GitHub de una cuenta que había sido creada en 2021; el currículum indica que la ubicación del solicitante es Hanoi, Vietnam.

Al examinar el perfil de GitHub mencionado en el currículum, descubrimos que la cuenta no tiene actualizaciones ni actividad, lo que indica mayores posibilidades de que haya sido configurada específicamente para esta campaña de phishing.
En la siguiente sección, examinaremos cómo el archivo LNK ejecuta una carga útil políglota y cómo funciona el archivo DLL malicioso resultante.
Análisis técnico
Dividiremos nuestro análisis en tres secciones. Primero, examinaremos el archivo de acceso directo malicioso (.LNK). Segundo, analizaremos la segunda etapa, también conocida como pseudopolíglota, y cómo la línea de comandos maliciosa presente en el archivo de acceso directo (.LNK) aprovecha una forma única de ejecutarlo. Tercero, y finalmente, nos centraremos en el implante DLL conocido como LOTUSHARVEST. Finalmente, en la otra sección, nos centraremos en los detalles de la campaña, como la infraestructura y mucho más.
Etapa 1: Script LNK malicioso
Al extraer el archivo ZIP, el primer documento que se ejecuta es el archivo LNK, que es el encargado de ejecutar la carga útil pseudo-políglota del segundo stager.

Ahora, mirando los detalles de LNK, encontramos un parámetro interesante bajo los argumentos de la línea de comandos, que es el uso de ftp.exe para ejecutar el archivo pseudo-políglota, con un indicador conocido como -s, al ejecutarse el archivo LNK, muestra el resumen en la pantalla mientras que, en el otro lado, el script por lotes, que encontraremos en la siguiente parte, se está ejecutando utilizando el LOLbin ftp.exe.
Bueno, llamar a esto abuso de LOLBIN no sería un comportamiento orientado a TTP muy directo, y lo explicaremos en la siguiente sección.
Etapa 2 – Truco del pseudopolíglota: Todo en uno.

Inicialmente, al analizar el tipo de archivo, que se considera de texto plano, varios analizadores lo han analizado y determinado como tal. Mientras que los analizadores de archivos PDF lo etiquetan como tal, lo procesan y lo generan. Por lo tanto, para evitar confusiones, lo deducimos utilizando un editor hexadecimal.

Al analizar el editor hexadecimal, descubrimos que contiene un conjunto de scripts maliciosos que se ejecutan antes de que aparezcan los encabezados de PDF Magic. Por lo tanto, eliminamos el script.


Ahora bien, aquí hay una parte un tanto interesante pero sencilla, que fue descubierta por investigadores de seguridad hace algunos años y que se ha explotado en la práctica. Si bien ftp.exe se usa para conectarse a un servidor FTP y ejecutar comandos como descargas o exfiltración, en esta campaña vimos que el binario FTP invocaba comandos en una máquina local que contenían el signo de exclamación (!). Por lo tanto, el binario ftp.exe ejecutaba los comandos o scripts mencionados en la máquina objetivo.
Al analizar el script, se observa que inicialmente abusa de un LOLBIN conocido como DeviceCredentialDeployment.exe, que se utiliza básicamente para ocultar el binario cmd.exe. Posteriormente, al examinar los comandos del script, se enumera el binario certutil.exe y luego lo renombra a lala.exe. A continuación, el script por lotes comienza renombrando el archivo offsec-certified-professional.png a CV-Nguyen-Van-A.pdf y luego abre el Explorador de archivos para mostrar el PDF falso a la víctima.

A continuación, el script busca un bloque de datos codificado en base64 dentro del archivo pseudo-políglota para la carga útil incrustada en su contenido. Luego, extrae estos datos codificados, los decodifica y crea un archivo DLL llamado MsCtfMonitor.dll, que coloca en el directorio C:\ProgramData , al que identificamos como el implante LOTUSHARVEST.

El script también copia el archivo ctfmon.exe original de la carpeta System32 a la misma ubicación que el archivo DLL y luego lo ejecuta. Como vimos, el archivo DLL decodificado se llama MsCtfMonitor.dll, que es un archivo de biblioteca importado por binario ctfmon.exe, según el orden de búsqueda de DLL, Windows primero verifica la misma carpeta que el ejecutable y carga esa DLL desde allí, por lo que se trata de un caso de instalación lateral de DLL.
En la siguiente sección, examinaremos el funcionamiento del implante DLL malicioso conocido como LOTUSHARVEST, que es la carga final de la campaña.
Etapa 3 – Carga útil final: LOTUSHARVEST

Inicialmente, lo confirmamos con herramientas de análisis de archivos y, como es habitual, resultó ser un binario PE de 64 bits. Al analizar la DLL, descubrimos que la carga útil funciona como un ladrón de información. En la siguiente sección de este blog, exploraremos sus funcionalidades en detalle.
![]()
Bueno, antes de profundizar en las funciones y características principales de este implante, también encontramos una ruta PDB interesante, donde el asistente de desarrollo la etiqueta como DEV-LOADER. Pero la estamos rastreando como LOTUSHARVESTER.
Comprobaciones de antianálisis

El implante empleó algunos de los métodos anti-análisis que descubrimos, como verificar si el programa se está ejecutando en un entorno virtual y, si detecta esa condición, fuerza un bloqueo. para hacer esto, y mucho más, que son los siguientes.
IsProcessorFeaturePresent : Comprueba si existe una característica específica de la CPU y, si la encuentra, activa inmediatamente una terminación por fallo rápido como medida anti-análisis para evitar la ejecución en CPU modernas, máquinas virtuales o entornos protegidos.
IsDebuggerPresent : Una técnica muy común que comprueba si hay un depurador en modo de usuario conectado. Si se detecta un depurador, el programa falla.
Excepciones falsas : El programa simula un fallo creando una excepción falsa y un estado de CPU falso, cambia el lugar donde el código "simula" ejecutarse (RIP/RSP) y luego lo envía a UnhandledExceptionFilter(). Esto engaña a los depuradores, altera la pila de llamadas y oculta lo que el programa realmente está haciendo.
Ahora, pasemos a la parte donde el implante se centra en recolectar credenciales basadas en el navegador.
Historial del navegador y recopilación de credenciales guardadas

Ahora, vimos que la otra exportación conocida como DoMsCtfMonitor contiene el código malicioso, que realiza ciertas funciones.

Al examinar la función maliciosa, identificamos dos rutinas clave: una dedicada a la recolección de credenciales y otra responsable de la exfiltración de los datos recopilados. Dado que este implante de DLL funciona principalmente como un ladrón de información, su principal objetivo es extraer información confidencial del navegador, como demostraremos en esta sección.



Como podemos ver, el implante apunta a navegadores como Google Chrome, Microsoft Edge y lo hace abriendo y leyendo inicialmente el contenido de los archivos, luego, una vez que se recopilan, el implante adjunta el nombre de la computadora y el nombre de usuario de la víctima, que han sido devueltos por funciones como GetComputerNameA y GetUserNameA, antes de comenzar la exfiltración de datos, creando una entrada única en el extremo del actor de amenaza.

En los fragmentos de código anteriores, podemos ver que el malware abre las bases de datos SQLite History de los navegadores , ejecuta una consulta para extraer las 20 URL visitadas más recientemente y formatea los resultados como una matriz JSON que contiene la URL, el título de la página, el número de visitas y la hora de la última visita.

A continuación, abre la base de datos de datos de inicio de sesión , lee hasta cinco credenciales de inicio de sesión almacenadas e intenta descifrar cada contraseña utilizando la API clásica CryptUnprotectData.
Exfiltración de datos

En la siguiente función, observamos que el implante extrae datos mediante la API WinINet de Windows. Abre una sesión HTTP y se conecta al servidor eol4hkm8mfoeevs.m.pipedream.net, controlado por el atacante, a través del puerto 443. Tras establecer la conexión, emite una solicitud POST al punto final /service y envía la información robada del navegador como una carga útil JSON.
Ahora, en la siguiente parte, analizaremos los detalles de infraestructura relacionados con la campaña.
Infraestructura y atribución
Durante el análisis, observamos que la carga útil se comunica con múltiples endpoints alojados externamente. Uno de los dominios identificados fue uuhlswlx[.]requestrepo[.]com, un subdominio generado aleatoriamente, mientras que el otro dominio, eol4hkm8mfoeevs[.]m[.]pipedream[.]net, también es un subdominio generado aleatoriamente y se utilizó principalmente para exfiltrar las credenciales obtenidas. Por lo tanto, esto resume brevemente los detalles de infraestructura relacionados con este implante.

Ahora, utilizando una búsqueda OSINT muy básica, también nos encontramos con el hecho de que el número de contacto que el TA había utilizado en el currículum falso, que es +84912345678, pertenece a una buena tienda cerca de la ciudad de Hanoi, aunque no puede ser concreto ya que muchas veces se completan números de contacto incorrectos o falsos en varias ubicaciones.

Bueno, centrarse en los detalles orientados a la atribución requiere evidencia concreta sobre múltiples parámetros como la reutilización de tácticas, técnicas y procedimientos, la reutilización de infraestructura y la victimología. Como vimos anteriormente alrededor del mes de marzo de 2025, que un grupo de amenazas probablemente patrocinado por el estado chino atacó a Vietnam con un señuelo falso basado en CV, donde el nombre del señuelo destaca como CV-Nguyen-Lam-San-Xuat-Noi-Dung-Compress.pdf, también en esta misma campaña, vimos que el nombre del señuelo era `CV-Nguyen-Van-A, se había utilizado una nomenclatura similar, lo que agrega muy poca confianza para atribuir ambas campañas bajo un grupo similar de la misma entidad de amenaza.
Bueno, otra superposición muy común pero simple entre ambas campañas es el uso de dominios aleatorios orientados a DGA para entregar implantes, así como también se han usado servidores de comando y control (C2) en ambas campañas, lo que nuevamente agrega muy poca confianza para atribuir ambas campañas, y por último, pero no menos importante, la similitud entre ambas campañas es el uso de victimología similar, es decir, software de segmentación e industria de reclutamiento.
Ahora, como investigadores, creemos que nuestro sesgo debe ser relevante no solo para las superposiciones, sino también para los artefactos únicos no similares; en este caso, vemos que el actor de la amenaza había desplegado el implante LOTUSHARVEST, que funciona como un ladrón de información, lo que genera preocupación, ya que el estado chino, aunque abusa de DLL-Sideloading, implementa implantes conocidos como PlugX y mucho más; por lo tanto, considerarlo ladrón sería una métrica conflictiva y única.
Por lo tanto, con un nivel de confianza medio y centrándonos en las superposiciones y diferencias entre las campañas de amenazas anteriores que hemos presenciado y sus TTP y mucho más, hemos decidido atribuir a esta entidad de amenaza el origen chino, aunque etiquetarla como patrocinada por un Estado todavía requiere otras métricas importantes por ahora.
Conclusión
SEQRITE APT-Team identifica la Operación Hanoi Thief como una campaña de spear-phishing dirigida a profesionales de TI y reclutamiento en Vietnam. Utiliza currículos falsos y archivos de acceso directo para engañar a las víctimas, y luego abusa de herramientas de Windows de confianza para ejecutar scripts ocultos. La carga útil final, denominada LOTUSHARVEST, es un implante DLL que roba las credenciales y el historial del navegador antes de enviarlos a los servidores del atacante. Las tácticas y las coincidencias con actividades anteriores sugieren un actor de amenazas de origen chino, aunque no se ha confirmado el patrocinio estatal.
Seqrite Protección:
- Troyano.50086.SL
- Troyano.A18678918
- Aplicación
IOCs
| Hash (SHA-256) | Tipo de malware |
| 1beb8fb1b6283dc7fffedcc2f058836d895d92b2fb2c37d982714af648994fed | Archivo zip |
| 77373ee9869b492de0db2462efd5d3eff910b227e53d238fae16ad011826388a | Archivo LNK |
| 693ea9f0837c9e0c0413da6198b6316a6ca6dfd9f4d3db71664d2270a65bcf38 | Carga útil pseudopolíglota (PDF, lote) |
| 48e18db10bf9fa0033affaed849f053bd20c59b32b71855d1cc72f613d0cac4b | Archivo DLL |
MITRE ATT & CK
| Táctica | Identificación de la técnica | Nombre de la técnica |
| Acceso inicial | T1566.001 | Archivo adjunto de phishing selectivo |
| Desarrollo de recursos | T1587.001 | Desarrollar cargas útiles: malware |
| Ejecución | T1204.002 | Ejecución del usuario: archivo malicioso |
| T1218 | Ejecución de proxy binario firmado | |
| Evasión de defensa | T1036.007 | Enmascaramiento: extensión de archivo engañosa |
| T1140 | Desofuscar archivo | |
| Escalada de privilegios | T1574.002 | Carga lateral de DLL |
| Descubrimiento: | T1082 | Descubrimiento de información del sistema |
| T1012 | Descubrimiento del sistema de archivos para datos del navegador | |
| Acceso a credenciales | T1555.003 | Credenciales de almacenes de contraseñas |
| Colección | T1005 | Datos del sistema local |
| exfiltración | T1041 | Exfiltración sobre canal C2 |
| Comando y control | T1071.001 | Protocolo web: HTTPS |
Escritores
- Subhajeet Singha
- priya patel



