Desarrollo reciente: El grupo de empresas KMG confirma que se trata de una simulación, no de un ataque real
Afortunadamente, como KMG ha reconocido públicamente, no se trató de un ciberataque real, sino de un ejercicio de simulación interno.
Contenido
- Introducción
- Objetivos clave
- Industrias afectadas.
- Enfoque geográfico.
- Cadena de infección.
- Hallazgos iniciales
- Analizando el correo electrónico malicioso.
- Analizando el documento señuelo.
- Análisis técnico
- Etapa 0 – Archivos ZIP y LNK maliciosos.
- Etapa 1 – Scripts BATCH maliciosos.
- Etapa 2 – Cargadores DOWNSHELL maliciosos.
- Etapa 3 – Implante de DLL maliciosa.
- Infraestructura y Caza.
- Atribución
- Conclusión
- Seqrite Proteccion.
- IOCs
- MITRE ATT&CK.
Autores: Subhajeet Singha y Sathwik Ram Prakki
Introducción
Seqrite Labs APT-Team ha estado rastreando y descubriendo un supuesto nuevo grupo de amenazas desde abril de 2025, al que rastreamos con el nombre de Noisy Bear como Oso ruidosoEste grupo de amenazas ha atacado entidades en Asia Central, como el sector de petróleo y gas o el sector energético de Kazajistán. La campaña está dirigida a empleados de KazMunaiGas o KMG, a quienes la entidad amenazante entregó un documento falso relacionado con el departamento de TI de KMG, simulando una comunicación interna oficial y aprovechando temas como actualizaciones de políticas, procedimientos de certificación interna y ajustes salariales.
En este blog, exploraremos a fondo los detalles técnicos de la campaña que encontramos durante nuestro análisis. Examinaremos las distintas etapas de esta campaña, donde la infección comienza con un correo electrónico de phishing con un archivo ZIP adjunto que contiene un descargador LNK malicioso y un señuelo. Este descarga un script BATCH malicioso, lo que lleva a los cargadores de PowerShell, denominados DOWNSHELL, que cargan de forma refleja un implante DLL malicioso. También analizaremos la infraestructura que abarca toda la campaña.
Objetivos clave
Industrias afectadas
- Sector energético [petróleo y gas]
Enfoque geográfico
- Kazajistán
Cadena de infección

Hallazgos iniciales
Inicialmente, hemos estado rastreando a este actor de amenazas desde abril de 2025, y observamos que esta entidad lanzó una campaña contra los empleados de KazMunaiGas en mayo de 2025 utilizando un método orientado al spear-phishing. Se utilizó un correo electrónico empresarial comprometido para distribuir un archivo ZIP malicioso, que contenía un señuelo junto con un archivo de acceso directo (.LNK) malicioso basado en la infección inicial, conocido como График зарплат.lnk , que se puede traducir como Salary Schedule.lnk. La muestra apareció inicialmente en VirusTotal en la primera quincena de mayo de 2025.
Ahora, veamos el correo electrónico malicioso y el archivo señuelo.
Analizando el correo electrónico malicioso

Inicialmente, al investigar el remitente del correo electrónico, descubrimos que el actor de amenazas usó un correo electrónico empresarial comprometido de una persona que trabaja en el Departamento de Finanzas de KazMunaiGas. El correo electrónico incluía un asunto urgente: "¡URGENTE!". Revisen la escala salarial actualizada; la enviaron por correo electrónico a los empleados de KMG.

Posteriormente, al examinar el contenido del correo electrónico, quedó claro que el mensaje estaba redactado principalmente para simular una comunicación interna de RR. HH. relacionada con discusiones o decisiones sobre salarios. El mensaje básicamente habla de revisar información actualizada sobre diversos temas, como horarios de trabajo, salarios y políticas y decisiones relacionadas con incentivos. El TA también instruye a los destinatarios de KMG a buscar un archivo llamado График.zip, que se traduce como Schedule.zip, y luego abrir un archivo llamado График зарплат , que se traduce como Salary Schedule, que es básicamente el archivo de acceso directo (LNK) que se debe ejecutar para descargar más etapas.

Por último, pero no menos importante, el correo electrónico también menciona completar las instrucciones antes del 15 de mayo de 2025, lo que refuerza la urgencia. Ahora, analicemos el archivo señuelo.
Examinando el documento señuelo

Al examinar el documento señuelo, observamos que incluye el logotipo oficial de la entidad objetivo, KazMunaiGas, junto con instrucciones en ruso y kazajo que indican a los empleados una serie de sencillos pasos: abrir la carpeta de Descargas del navegador, extraer un archivo ZIP llamado KazMunayGaz_Viewer.zip y ejecutar el archivo KazMunayGaz_Viewer. Aunque el nombre del archivo es irrelevante, creemos que es el archivo exacto que se descargó del correo electrónico malicioso. El señuelo también indica a los usuarios que esperen a que aparezca una ventana de consola y les recomienda específicamente no cerrarla ni interactuar con ella para evitar sospechas. Por último, y no menos importante, menciona al equipo de soporte técnico en los saludos para que parezca completamente legítimo, con los artefactos mencionados anteriormente presentes en el señuelo.
Análisis técnico
Hemos dividido el análisis técnico en cuatro partes. Inicialmente, analizaremos el ZIP malicioso que contiene el archivo LNK, que luego descarga el script Batch malicioso y luego continuaremos con la descarga del cargador basado en script seguido del DLL malicioso.
Etapa 0 – Archivos ZIP y LNK maliciosos.

Inicialmente, al mirar el archivo ZIP, encontramos tres archivos, de los cuales uno de ellos resulta ser el documento señuelo, que vimos inicialmente, el segundo resulta ser README.txt, que una vez más se asegura de que las instrucciones estén presentes, por lo que no parece sospechoso y el último resulta ser un archivo LNK malicioso.
![]()
Ahora, al analizar el archivo de acceso directo malicioso (.LNK), llamado График зарплат, descubrimos que utiliza powershell.exe LOLBIN para ejecutar un comportamiento basado en el descargador.

Descarga un script por lotes malicioso conocido como 123.bat, desde un servidor remoto, que es hxxps[://]77[.]239[.]125[.]41[:]8443 y una vez descargado, almacena el script por lotes en la ruta C:\Users\Public, luego ejecuta el script por lotes usando el cmdlet Start-Process desde la ruta.
De manera similar, al buscar un archivo LNK similar, encontramos otro LNK que pertenece a la misma campaña y que se ve ligeramente diferente.

Este archivo LNK malicioso utiliza una pequeña maniobra de operandos para evitar la detección de firmas estáticas, pero concatena los literales de cadena y descarga un script por lotes desde el mismo servidor remoto, lo guarda en la carpeta pública y lo ejecuta posteriormente a través de un cmdlet.
En la siguiente sección, examinaremos los scripts BATCH maliciosos.
Etapa 1: Scripts BATCH maliciosos

Ahora, al observar uno de los scripts BATCH, es decir, it.bat, podemos ver que está descargando cargadores de PowerShell, que hemos denominado DOWNSHELL, desde un servidor remoto conocido como support.ps1 y a.ps1; una vez que se descargan, se suspende por un total de 11 segundos.

Ahora, al observar el segundo lote de script, es decir, el archivo 123.bat, también hace lo mismo, es decir, descarga los cargadores de PowerShell, seguido de un período de suspensión de 10 segundos.
En la siguiente sección, avanzaremos para comprender el funcionamiento de los cargadores DOWNSHELL escritos en PowerShell.
Etapa 2: Cargadores DOWNSHELL maliciosos
En esta sección, analizaremos el conjunto de scripts maliciosos de PowerShell, que hemos denominado DOWNSHELL. El primer archivo de PowerShell, también conocido como support.ps1, es básicamente un script que se encarga de perjudicar la defensa en la máquina de destino y este último es responsable de realizar una función orientada al cargador.

Al examinar el código, descubrimos que el script básicamente ofusca el espacio de nombres de destino mediante la construcción de "System.Management.Automation" a través de la concatenación de cadenas, luego enumera todos los ensamblados .NET cargados en el AppDomain actual y filtra el que tiene FullName que coincide con ese espacio de nombres.
Luego, mediante la técnica de reflexión, resuelve el tipo interno System.Management.Automation.AmsiUtils, que básicamente recupera el campo estático privado amsiInitiFailed. Por lo tanto, al cambiar o invertir este indicador, PowerShell se convence de que AMSI no se ha inicializado correctamente. Por lo tanto, el otro script malicioso, perteneciente a la familia DOWNSHELL, no se analiza y se ejecuta sin problemas ni interrupciones. Ahora, analicemos el segundo script de PowerShell.

Al examinar la primera parte del código, parece una copia de PowerSploit, la famosa herramienta de emulación de Red Team. La función LookUpFunc recupera dinámicamente la dirección de memoria de cualquier función exportada desde una DLL específica sin usar las llamadas tradicionales DllImport o Add-Type. Para ello, localiza el tipo Microsoft.Win32.UnsafeNativeMethods en el ensamblado System.dll ya cargado y, a continuación, extrae e invoca los wrappers .NET ocultos para GetModuleHandle y GetProcAddress. Al resolver primero la dirección base del módulo de destino ($moduleName) y pasarla junto con el nombre de la función de destino ($functionName), devuelve un puntero de función sin formato a esa API, que es necesaria.
Luego, al examinar la segunda parte del código, la función getDelegateType crea un delegado .NET personalizado sobre la marcha, completamente en memoria. Toma los tipos de parámetros y devuelve un tipo específico, crea una nueva clase de delegado con ellos y le asigna un método Invoke para que pueda usarse como una función normal. Esto permite que todo el script envuelva los punteros de función sin procesar (de LookupFunc) en algo que PowerShell puede llamar directamente, lo que facilita la ejecución de funciones WinAPI sin tener que importarlas de la forma habitual. Posteriormente, consulta el ID del proceso explorer.exe y lo almacena en una variable.

La última parte del script va seguida de una matriz de bytes que contiene el shellcode reverso_tcp de meterpreter , que básicamente utiliza la técnica clásica de inyección Create-RemoteThread mediante OpenProcess, VirtualAllocEx, WriteProcessMemory y CreateRemoteThread para inyectar el shellcode dentro del proceso objetivo, que es explorer.exe, seguido de un mensaje ¡Inyectado! ¡Comprueba tu oyente!.

Bueno, una parte interesante de este script es que algunas partes están comentadas y realizan una inyección reflectiva de DLL en un proceso remoto, que en este caso es el Bloc de notas, utilizando una herramienta conocida como PowerSploit , alojada en el servidor remoto, que se descarga, y se utiliza la DLL basada en Meterpreter. Otro detalle interesante son los comentarios en ruso. En el siguiente caso, examinaremos la DLL.
Etapa 3: Implante de DLL maliciosa

Inicialmente, verificamos el implante DLL en una herramienta de análisis PE y se confirmó que el implante DLL o cargador de shellcode es un binario de 64 bits.

A continuación, siguiendo con el código, vimos que el implante usa semáforos como una especie de controlador para garantizar que solo se ejecute una copia de sí mismo a la vez. En este caso, el implante usa un objeto con nombre Local\doSZQmSnP12lu4Pb5FRD. Al iniciarse, intenta crear este semáforo; si ya existe, significa que hay otra instancia activa. Para comprobarlo, usa WaitForSingleObject en el semáforo y busca un evento con nombre específico. Si el evento existe, sabe que otra instancia ya ha completado su configuración. Si no existe, crea el evento.

Ahora, dependiendo de la función anterior, que es responsable de verificar el número de instancias, el siguiente paso es generar un proceso rundll32.exe de manera suspendida.

Tras crear el proceso en estado suspendido, el implante realiza un secuestro clásico del contexto del hilo: llama a GetThreadContext en el hilo principal, usa VirtualAllocEx para reservar memoria RWX en el destino, WriteProcessMemory para eliminar el shellcode, actualiza el RIP del hilo para que apunte a ese búfer mediante SetThreadContext y, finalmente, llama a ResumeThread para que la ejecución continúe en el shellcode inyectado. En este caso, el shellcode es básicamente un shell inverso.
Infraestructura y caza
Al analizar la infraestructura que la entidad amenaza había estado utilizando, encontramos algunos detalles ligeramente interesantes al respecto.
Arsenal de herramientas

Junto con las herramientas que vimos que habían sido utilizadas por el actor de amenazas, también descubrimos que hay más herramientas de código abierto orientadas al equipo rojo, que habían sido alojadas por el actor de amenazas para su uso posterior.
Pivotando

Utilizando una huella digital similar, buscamos una infraestructura similar, que pertenece a un actor de amenazas similar.
Una de las partes más interesantes es que la infraestructura está alojada en una empresa de alojamiento autorizada conocida como Aeza Group LLC.

Otra parte interesante es que también descubrimos que se alojan muchas aplicaciones web sospechosas relacionadas con el bienestar, la actividad física y la asistencia sanitaria para personas rusas.
Atribución
La atribución es una métrica fundamental para describir una entidad amenazante. Implica analizar y correlacionar diversos dominios, como tácticas, técnicas y procedimientos (TTP), errores operativos, rotación y reutilización de artefactos de infraestructura similares, errores operativos que podrían dar lugar a la atribución, y mucho más.
En nuestro seguimiento continuo de Noisy Bear, tenemos muchos artefactos, como idiomas presentes dentro de las herramientas, uso de servicios de alojamiento web sancionados y artefactos de comportamiento similares relacionados con entidades de amenazas rusas que anteriormente han atacado naciones similares de Asia Central, atribuimos que el actor de amenazas posiblemente podría ser de origen ruso.
Conclusión
Descubrimos que una entidad de amenaza, denominada NoisyBear, tiene como objetivo el sector energético de Kazajstán utilizando un señuelo específico de la empresa mientras depende en gran medida de PowerShell y herramientas de postexplotación de código abierto como Metasploit, alojándolas en un proveedor de alojamiento web autorizado. También podemos concluir que el actor de amenazas ha estado activo desde el mes de abril de 2025.
SEQRITE Protección:
Por determinar
IOCs
| Tipo de archivo | SHA-256 | |
| Outlook | 5168a1e22ee969db7cea0d3e9eb64db4a0c648eee43da8bacf4c7126f58f0386 | |
| Código postal | 021b3d53fe113d014a9700488e31a6fb5e16cb02227de5309f6f93affa4515a6 | |
| Código postal | f5e7dc5149c453b98d05b73cad7ac1c42b381f72b6f7203546c789f4e750eb26 | |
| LNK | a40e7eb0cb176d2278c4ab02c4657f9034573ac83cee4cde38096028f243119c | |
| LNK | 26f009351f4c645ad4df3c1708f74ae2e5f8d22f3b0bbb4568347a2a72651bee | |
| Script por lotes | d48aeb6afcc5a3834b3e4ca9e0672b61f9d945dd41046c9aaf782382a6044f97 | |
| Script por lotes | 1eecfc1c607be3891e955846c7da70b0109db9f9fdf01de45916d3727bff96e0 | |
| PowerShell | da98b0cbcd784879ba38503946898d747ade08ace1d4f38d0fb966703e078bbf | |
| PowerShell | 6d6006eb2baa75712bfe867bf5e4f09288a7d860a4623a4176338993b9ddfb4b | |
| PowerShell | fb0f7c35a58a02473f26aabea4f682e2e483db84b606db2eca36aa6c7e7d9cf8 | |
| DLL | 1bfe65acbb9e509f80efcfe04b23daf31381e8b95a98112b81c9a080bdd65a2d | |
| Dominios/IP | ||
| 77 [.] 239 [.] 125 [.] 41 | ||
| wellfitplan[.]ru | ||
| 178 [.] 159 [.] 94 [.] 8 | ||
MITRE ATT & CK
| Táctica | Identificación de la técnica | Nombre |
| Reconocimiento | T1589.002 | Recopilar información de identidad de la víctima: direcciones de correo electrónico |
| Acceso inicial | T1204.002
T1078.002 |
Ejecución del usuario: archivo malicioso Cuentas válidas: cuentas de dominio |
| Ejecución | T1059.001
T1059.00 |
Intérprete de comandos y secuencias de comandos: PowerShell |
| Evasión de defensa | T1562
T1027.007 T1027.013 T1055.003 T1620 T1218.011 |
Debilitar las defensas
Resolución de API dinámica Archivo cifrado/codificado Secuestro de ejecución de subprocesos Carga de código reflectante Ejecución de proxy binario del sistema: Rundll32 |
| Comando y control | T1105 | Transferencia de herramientas de ingreso |
| exfiltración | T1567.002 | Exfiltración al almacenamiento en la nube |
Nota de pie de página:
Aclaración
Algunos medios de ciberseguridad representados SeqriteLos hallazgos de una manera que sugería “NoisyBear vulneró el buzón de correo de un empleado de finanzas de KazMunayGas en mayo y lo utilizó para enviar correos electrónicos de phishing”. Uno de los medios de comunicación también afirmó habernos contactado para pedirnos comentarios, pero no recibimos ninguna solicitud en ese sentido.
SeqriteLa posición
Como se detalla en nuestro blog original anterior, nuestra investigación afirmó claramente que “El mensaje fue elaborado principalmente para que pareciera una comunicación interna de RR.HH.” Destacando que probablemente se trataba de un correo electrónico falsificado y no del resultado de una vulnerabilidad de correo. Nuestros hallazgos, derivados de muestras de un repositorio público de malware, indicaron el uso constante del ruso en el correo electrónico, el manual de instrucciones y los comentarios de la carga útil. También observamos que la infraestructura de C&C vinculada a esta campaña estaba alojada en Aeza Group LLC, una empresa sancionada por EE. UU. en julio de 2025 por facilitar actividades cibercriminales.
Es importante destacar que los identificadores de prueba y las herramientas de equipos rojos se utilizan habitualmente tanto en ejercicios de simulación como por adversarios conocidos en operaciones cibernéticas reales. En este caso, reconocemos que los indicadores identificados se generaron como parte de un ejercicio interno de phishing de KMG, y no por un grupo de amenazas externo. Continuamos monitorizando esta actividad bajo el nombre de Operación BarrelFire.



