Contenido
- 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: Archivo RAR malicioso
- Etapa 2: malware .NET malicioso
- Etapa 3: Cargador de shellcode de Golang malicioso
- Etapa 4: Descripción general del código Shell
- Caza e infraestructura
- Conclusión
- Seqrite Protección:
- IOCs
- MITRE ATT & CK
- Escritores
Introducción
SEQRITE El equipo APT de Labs ha estado rastreando y ha descubierto una campaña dirigida a: Universidad Técnica Estatal del Báltico, una institución reconocida por sus diversos programas de defensa, aeroespacial e ingeniería avanzada que contribuyen al complejo militar-industrial de Rusia. Seguimiento como Operación HollowQuill, la campaña aprovecha documentos señuelo utilizados como armas disfrazados de invitaciones oficiales de investigación para infiltrarse redes académicas, gubernamentales y relacionadas con la defensaLa entidad amenazante distribuye un archivo RAR malicioso que contiene un dropper de malware .NET, que a su vez descarga otro cargador de shellcode basado en Golang junto con una aplicación legítima de OneDrive y un PDF señuelo con una carga útil final de Cobalt Strike.
Objetivos clave
Industrias afectadas
- Instituciones académicas y de investigación
- Industria militar y de defensa.
- Tecnología aeroespacial y de misiles
- Entidades de investigación orientadas al gobierno.
Enfoque geográfico
- Federación Rusa.
Cadena de infección.

Hallazgos iniciales.
En los primeros meses de 2025, nuestro equipo encontró un archivo RAR malicioso llamado Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых. исследований БГТУ «ВОЕНМЕХ» им. El archivo Д.Ф. Устинова.rar , que se traduce como Salida 3548 sobre la formación de asignaciones estatales para realizar investigación fundamental y exploratoria en BSTU 'VOENMEKH' nombrada en honor a DF Ustinov.rar, apareció en Virus Total . Tras la investigación, determinamos que este archivo RAR se ha utilizado como fuente preliminar de infección, ya que contiene un dropper .NET malicioso que a su vez contiene múltiples cargas útiles junto con un señuelo basado en PDF.
El archivo RAR contiene un ejecutable .NET malicioso que funciona como un cuentagotas, llamado “ Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова ” que también se traduce como Salida No. 3548 sobre la formación de asignaciones estatales para realizar investigación fundamental y exploratoria en BSTU 'VOENMEKH' que lleva el nombre de DF Ustinov. Este dropper es responsable de desplegar un ejecutable legítimo de OneDrive junto con un cargador de shellcode malicioso escrito en Golang. Al ejecutarse, el ejecutable .NET realiza varias operaciones: una de ellas despliega el cargador Golang que contiene shellcode, inyecta el shellcode en el proceso legítimo de OneDrive y genera un documento señuelo. Antes de profundizar en los detalles técnicos, examinemos primero el documento señuelo.
Analizando el documento señuelo.
Tras examinar el documento señuelo, se descubrió que se trataba de un documento relacionado con el Ministerio de Ciencia y Educación Superior de Rusia , específicamente sobre la Universidad Técnica Estatal Báltica "VOENMEKH", que lleva el nombre de D.F. Ustinov . El documento parece ser una comunicación oficial dirigida a varias organizaciones, en la que posiblemente se discutan proyectos de investigación estatales o colaboraciones académicas relacionadas con la defensa.

Lo anterior es una versión traducida de las secciones iniciales del señuelo.

El contenido y el señuelo completo confirman que este PDF sirve como una guía completa para la asignación de tareas de investigación estatales, describiendo el proceso para que las organizaciones presenten propuestas de proyectos de investigación fundamental y aplicada en el ciclo presupuestario 2026-2028. Proporciona instrucciones a las instituciones, en particular a las dedicadas a la investigación científica y tecnológica avanzada, sobre cómo registrar sus solicitudes tecnológicas en el Sistema Estatal Unificado de Información para la Investigación Científica y los Proyectos Tecnológicos (ЕГИСУ НИОКТР) antes de la fecha límite especificada.

Al examinar la parte posterior del señuelo, se observa que este proporciona información adicional sobre el proceso de solicitud de proyectos de investigación asignados por el estado, destacando que el apoyo financiero para estos proyectos provendrá de asignaciones presupuestarias del Ministerio de Ciencia y Educación Superior de Rusia. Asimismo, el documento incluye los datos de contacto de Bogdan Evgenyevich Melnikov, investigador principal del Departamento de Investigación Fundamental y Exploratoria, con una dirección de correo electrónico para comunicarse.
Pues bien, al final de este documento engañoso, se puede ver que está firmado por A.E. Shashurin, quien se identifica como Doctor en Ciencias Técnicas (д.т.н.) , profesor y rector interino ( и.о. ректора) de la institución. En definitiva, este documento sirve como comunicación oficial del Ministerio de Ciencia y Educación Superior de Rusia, proporcionando directrices a las organizaciones en relación con las iniciativas de investigación financiadas por el Estado.
Análisis técnico
Dividiremos nuestro análisis en cuatro secciones principales. Primero , examinaremos el archivo RAR malicioso. Segundo , profundizaremos en el dropper .NET malicioso. Tercero, nos centraremos en analizar el funcionamiento del inyector de shellcode malicioso basado en Golang y, finalmente, analizaremos la carga útil maliciosa de Cobalt Strike. Este análisis detallado esclarecerá las metodologías empleadas y proporcionará información sobre las tácticas del atacante en esta campaña en particular.
Etapa 1 – Archivo RAR malicioso.
Al examinar el archivo RAR malicioso, contiene otro ejecutable malicioso llamado Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований. БГТУ «ВОЕНМЕХ» им. Tras un análisis inicial de los artefactos del archivo, se reveló que se trata de un ejecutable .NET de 32 bits. En la siguiente sección, exploraremos la funcionalidad de este ejecutable .NET.

Etapa 2: Inyector de malware .NET malicioso.
Ahora, veamos cómo funciona el archivo .NET comprimido dentro del archivo RAR. Como en la sección anterior, descubrimos que el binario es básicamente un ejecutable .NET de 32 bits; también se renombró como SystemUpdaters.exe al cargarlo en las herramientas de análisis.

Al examinar la muestra, encontramos tres métodos interesantes. Profundicemos en ellos.

Al examinar el primer método, observamos que la función Main llama a otro método, MyCustomApplicationContext. Analicemos este método.


A continuación, al analizar el método, descubrimos que el código verifica inicialmente si el PDF señuelo está presente dentro de la ubicación C:\Users\Appdata\Roaming\Documents; en caso de que el archivo PDF no esté presente, continúa y copia el señuelo, que está almacenado en la sección de recursos, y lo escribe en la ubicación.

Luego, al analizar el código más a fondo, descubrimos que verifica si existe el archivo OneDrive.exe, que es básicamente la aplicación legítima de OneDrive. En caso de no encontrarlo en la ubicación deseada, continúa y copia la aplicación legítima almacenada en la sección de recursos y la escribe en la ubicación.

Al observar la última parte del código, descubrimos que busca un archivo llamado OneDrives_v2_1.exe en la ubicación C:\Users\Appdata\Roaming\Driver. En caso de que no encuentre el archivo, al igual que archivos similares, copia el ejecutable de la sección de recursos y lo escribe en la ubicación.



Luego, al analizar uno de los aspectos más intrigantes de este dropper, observamos que utiliza un archivo de acceso directo (.lnk) llamado X2yL.lnk como mecanismo de persistencia, ubicándolo en la carpeta de Inicio de Windows para asegurar su ejecución al arrancar el sistema. Al analizar el método H3kT7fXw, observamos que es el responsable de crear este archivo de acceso directo. El método utiliza WshShell para generar el archivo .lnk y le asigna un icono basado en Microsoft Office , lo que lo hace menos sospechoso. Además, la ruta de destino del acceso directo se establece en la ubicación donde se almacena la carga útil maliciosa, es decir, OneDrives_v2_1.exe, lo que garantiza su ejecución cada vez que se activa el acceso directo al arrancar el sistema.

Finalmente, genera el PDF señuelo en la pantalla. Al finalizar el análisis del dropper .NET malicioso, en las siguientes secciones analizaremos el ejecutable malicioso que este dropper ha descargado.
Etapa 3: Cargador de Shellcode Golang malicioso.

Inicialmente, al examinar la muestra dentro de las herramientas de análisis, podemos confirmar que este ejecutable está programado con Golang. A continuación, analizaremos el funcionamiento del cargador de shellcode y su mecanismo de inyección.

Al examinar la primera parte de este cargador de shellcode, descubrimos que el binario ejecuta la función time_now para capturar inicialmente la hora actual del sistema. Luego, llama a time_sleep, que también es una función de Golang con un valor fijo. A continuación, vuelve a llamar a time_now, que comprueba la marca de tiempo después de la pausa. Después, llama a time_Time_Sub, que comprueba la diferencia entre la marca de tiempo capturada por la función y verifica si el tiempo total de pausa es inferior a 6 segundos. Si la duración de la pausa es menor, el programa finaliza. Esto actúa como una pequeña técnica anti-análisis.


A continuación, avanzando y verificando el código, descubrimos que el ejecutable legítimo de OneDrive, que fue eliminado por el cuentagotas .NET, se está creando un proceso similar usando la API CreateProcess en Golang, y el proceso se está creando en modo suspendido.


Luego, el código shell que ya está incorporado en este binario del cargador se lee utilizando la función Golang embed_FS_ReadFile que devuelve el código shell.

A continuación, el código shell que fue devuelto por la función anterior en un formato codificado en base64 se decodifica utilizando la función nativa de Golang base64.StdEncoding.DecodeString y se devuelve.

Luego, el código básicamente utiliza una clave codificada de tamaño 13 bytes, que se utiliza básicamente para decodificar todo el shellcode.



Finalmente, el código realiza una técnica de inyección APC para inyectar el shellcode en la memoria, comenzando primero con el proceso en estado suspendido, seguido de la decodificación y descifrado del shellcode, luego la asignación de memoria en el proceso suspendido OneDrive.exe, luego una vez asignada la memoria, procede a escribir el shellcode en la memoria usando WriteProcessMemory, luego usa la API QueueUserAPC para poner en cola una llamada a función dentro del hilo principal del proceso suspendido OneDrive.exe . Finalmente, usa ResumeThread que hace que la función APC en cola (que contiene el shellcode) se ejecute, ejecutando efectivamente el código malicioso inyectado dentro del contexto de OneDrive.exe. Ahora, analicemos algunos artefactos clave del shellcode.
Etapa 4: Descripción general del Shellcode.
Al mirar dentro del shellcode malicioso y analizarlo, descubrimos que en realidad es un cargador, que funciona cargando inicialmente una biblioteca wwanmm.dll de Windows.

Una vez cargada la DLL, se elimina la sección .text. Utiliza la API de Windows DllCanUnloadNow, que ayuda a preparar la baliza en memoria. Esto facilita aún más el funcionamiento del shellcode, que es una baliza de Cobalt Strike.



Tras un análisis más detallado, se hace evidente que la baliza se conecta al servidor C2, alojado por el atacante, mediante un agente de usuario específico. Dado que esta herramienta es bastante común, no profundizaremos en el funcionamiento de la baliza maliciosa. La configuración de la baliza se puede extraer de la siguiente manera.
Configuración extraída:
Método: GETHost[Comando y Control]: phpsympfony.comAgente de usuario: “Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) como Gecko”
Caza e Infraestructura.
Tras analizar el inyector de shellcode programado en Golang, encontramos pequeños errores relacionados con OPSEC por parte del atacante, como dejar el ID de compilación de Go junto con el inyector, lo que nos ayudó a buscar cargas útiles similares utilizadas por el mismo atacante. El ID de compilación de Go es el siguiente:
-_APqjT14Rci2qCv58VO/QN6emhFauHgKzaZvDVYE/3lVOVKh9ePO_EDoV_lSN/NL58izAdTGRId20sd3CJ
Ahora, al analizar los artefactos de infraestructura, el servidor de comando y control malicioso, alojado en el dominio phpsymfony[.]com, ha estado rotando el dominio entre múltiples servicios ASN. Además, se ha detectado un título HTTP único que también ha rotado varias veces en el servidor C2.

Si analizamos las respuestas a lo largo del historial, podemos ver que el título Próximamente: pariaturzzphy.makebelievercorp[.]com se ha configurado varias veces.

Al buscar más a fondo el mismo título HTTP, descubrimos que muchos hosts sirven el mismo título y algunos de ellos sirven binarios maliciosos como ASyncRAT y muchos más.

Al analizar los ASN, el servidor C2 ha estado rotando desde la fecha de activación. La lista es la siguiente.
| ASN | Geolocalización | Propietario |
| AS13335 | Estados Unidos | Red de Cloudflare |
| AS35916 | Estados Unidos | MULTA-ASN1 |
| AS135377 | Hong Kong | UCLOUD-HK-AS-AP UCLOUD TECNOLOGÍA DE LA INFORMACIÓN HK LIMITADA |
| AS174 | Estados Unidos | COGENTE-174 |
| AS47846 | Alemania | SEDO-AS |
| AS8560 | 🌍 Desconocido | IONOS-AS |
Conclusión
Hemos descubierto que un actor de amenazas ataca a la Universidad Técnica del Báltico mediante un señuelo de investigación. Ha estado usando un dropper .NET para cargar el código shell, lo que finalmente le permite implantar Cobalt Strike en memoria. Tras analizar la campaña general y las estrategias empleadas por el actor de amenazas, podemos concluir que comenzó a atacar hace unos meses, desde diciembre de 2024.
SEQRITE Proteccion.
- Trojan.Ghanarava.1738100518c73fdb
- Trojan.Ghanarava.1735165667615275

COI.
| MD5 | Nombre del archivo |
| ab310ddf9267ed5d613bcc0e52c71a08 | Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова.rar |
| fad1ddfb40a8786c1dd2b50dc9615275 | SystemsUpdaters.exe |
| cac4db5c6ecfffe984d5d1df1bc73fdb | OneDrives_v2_1.exe |
C2
| phpsymfony[.]com |
| hxxps://phpsymfony[.]com/css3/index2.shtml |
MITRE ATT&CK.
| Táctica | Identificación de la técnica | Nombre |
| Acceso inicial | T1566.001 | Phishing: Archivo adjunto de phishing selectivo
|
| Ejecución | T1204.002
T1053.005 |
Ejecución del usuario: archivo malicioso
Tarea programada. |
| Persistencia | T1547.001 | Claves de ejecución del registro / Carpeta de inicio |
| Evasión de defensa | T1036 T1027.009 T1055.004 T1497.003 |
Disfraces Cargas útiles integradas. Llamada a procedimiento asincrónico Evasión basada en el tiempo |
| Comando y control | T1132.001 | Codificación de datos: codificación estándar |
Escritores
- Subhajeet Singha
- Sathwik Ram Prakki




