Mesa de Contenido
- Introducción
- Hallazgos iniciales.
- Cadena de infección.
- Análisis técnico.
- Infección inicial: documento malicioso.
- Segunda etapa: ejecutable malicioso de PyInstaller.
- Etapa final: scripts de Python maliciosos.
- Características del bot de Discord.
- Características del ransomware.
- Conclusión
- Seqrite Proteccion.
- IOCs
- MITRE ATT&CK.
- Escritores
Introducción
Seqrite El equipo APT de Labs ha descubierto recientemente múltiples campañas que involucran descripciones de trabajo falsas relacionadas con los requisitos de Food Corporations of India (FCI). Estas están dirigidas a personas que aspiran a varios puestos de trabajo técnicos en FCI con una variante de ransomware conocida como Xelera. En este caso, el el malware Está escrito en Python y empaquetado usando PyInstaller que se ejecuta en la máquina de destino.
En este blog, exploraremos los detalles técnicos de la campaña que detectamos durante nuestro análisis de telemetría. Examinaremos las distintas etapas de la campaña, comenzando por la carga útil inicial del documento malicioso y su contenido, luego extraeremos y analizaremos el PyInstaller malicioso y los scripts de Python maliciosos extraídos, y finalmente, revisaremos el archivo de ransomware malicioso.
Hallazgos iniciales
Recientemente, el 18 de enero de 2025, nuestro equipo descubrió un documento malicioso que apareció en VirusTotal , según las reglas de búsqueda que utilizamos para buscar archivos de documentos que contienen contenido malicioso incrustado dentro de flujos OLE.
Tras un análisis inicial, descubrimos que el señuelo malicioso conocido como FCEI-job-notification.doc estaba dirigido a solicitantes de empleo que solicitaban diversos puestos, como ingenieros y otros puestos técnicos y semitécnicos. Tras extraer la carga útil maliciosa de un flujo OLE, descubrimos que se trataba de un ejecutable basado en PyInstaller, llamado jobnotification2025.exe. Este contiene scripts maliciosos de Python que ejecutan ransomware y realizan otras tareas no deseadas en el equipo objetivo mediante un bot de Discord controlado por el autor del ransomware.
PyInstaller, se erige como una de las herramientas favoritas de los desarrolladores de software malicioso que prefieren los scripts de Python como una de sus opciones, anteriormente HolyCrypt y otros bloqueadores y ladrones conocidos han abusado de PyInstaller para implementar malware In-The-Wild.
Cadena de infección

Análisis técnico
Dividiremos el análisis en tres partes diferentes.
Infección inicial: documento malicioso.
La infección inicial es causada por un documento de Word malicioso que se propaga mediante un archivo adjunto de phishing. Antes de analizar los flujos OLE maliciosos del documento, analicemos el señuelo.

El documento contiene tres páginas de información. Comienza con un señuelo que menciona el número de vacantes en Food Corporation of India y el tipo de personal requerido. La segunda página describe el límite de edad y los criterios de elegibilidad para los diferentes puestos, detallando la edad mínima y máxima requerida para cada categoría.

Además, la página ofrece un resumen de las titulaciones académicas necesarias para diversos puestos, como una licenciatura u otro título, según el puesto. La tercera página detalla el proceso de selección, incluyendo el formato del examen.

Se menciona que el examen consta de 100 preguntas que abarcan temas como Habilidad Numérica, Lengua Inglesa, Razonamiento Lógico y Estudios Generales. Los candidatos tienen 60 minutos para completarlo, con una penalización de un cuarto de punto por cada respuesta incorrecta. Las preguntas sin responder no tienen calificación negativa. Revise el contenido malicioso de este documento y extráigalo rápidamente para su posterior análisis.

Tras analizar el documento malicioso, descubrimos que contiene un objeto OLE incrustado (Ole10Native), ubicado dentro de la estructura ObjectPool y con un tamaño de 31.5 MB.
![]()
Al extraer el contenido incrustado de la secuencia OLE maliciosa y cargar el archivo en una herramienta de análisis, descubrimos que se trata de un binario PE64, que es básicamente un binario comprimido de PyInstaller.

Segunda etapa: ejecutable malicioso de PyInstaller
Tras extraer el contenido del ejecutable con pyinstxtractor , encontramos archivos y carpetas interesantes que contenían archivos compilados en Python, como mainscript.pyc, un script de Python compilado que sirve como lógica principal del archivo de malware.

También estaban presentes directorios y bibliotecas de apoyo, como psutil, aiohttp y asyncio, lo que sugiere capacidades para el monitoreo del sistema y operaciones de red asincrónicas, comúnmente utilizadas en malware para la recopilación de datos o la comunicación de comando y control (C2).

También encontramos algunas carpetas interesantes que contienen archivos compilados de Python, como notoken887, command y muchos más, lo que nos indica que la campaña no solo está relacionada con la implementación del ransomware XELERA, sino con mucho más. En la siguiente sección, analizaremos los archivos descompilados de Python.

Etapa final: scripts maliciosos de Python
Al descompilar el archivo main.pyc, descubrimos que importa numerosas bibliotecas interesantes, como notoken887, start, command y muchas más. Tras un análisis minucioso, también descubrimos que el actor de amenazas usa Discord como sistema de comando y control para ejecutar comandos remotos y, finalmente, distribuir el ransomware XELERA.

Características del bot de Discord
Ahora, veamos algunos de los comandos interesantes que el bot de Discord puede ejecutar en la máquina de destino y el funcionamiento del ransomware.

Una vez que una víctima se ve afectada después de ejecutar el documento malicioso, el actor de amenazas usa el bot de Discord para realizar ciertas tareas nefastas, como robar credenciales del navegador, enviar spam al objetivo con ciertos mensajes despectivos y mucho más.
Escalada de privilegios y control del sistema
- Solicitud de ejecución del administrador:El bot incluye un comando (admin) que verifica si el proceso del bot se está ejecutando como administrador usando la API IsUserAdmin y, en caso de que no lo esté, utiliza la API ShellExecuteW con el formulario runas para realizar la operación.

- Controles de bloqueo y apagado:El bot puede bloquear el sistema (🔒 lockpc) o forzar el apagado/reinicio (📤 shutdown, 🔄 restartpc), creando inconvenientes en la máquina objetivo.


Robo de credenciales del navegador y archivos
- Robo de archivos: El bot de Discord puede extraer archivos de la máquina objetivo.

- Robo de credenciales del navegador: El bot de Discord puede robar información confidencial como cookies, nombres de usuario y contraseñas de varios navegadores como Google Chrome, Microsoft Edge y mucho más de la máquina de destino.


Actividades nefastas: interrupción y envío de contenido ofensivo.
- Alteración visual: El atacante crea una alteración visual al provocar efectos de distorsión, cambios en el fondo de pantalla y otras alteraciones visuales que causan problemas en la máquina objetivo.



- Alteración sensorial: El atacante crea una alteración sensorial al bloquear las entradas del mouse y reproducir audio en la máquina de destino, lo que provoca problemas en dicha máquina.

Lista de comandos
| Comando | Propósito | |
| 1 | 🔧 administrador | Solicitar ejecutar el malware como administrador |
| 2 | 🚫 nomouse (iniciar/detener) | Negar al usuario privilegios de ratón y teclado |
| 3 | archivo de comprobación | Buscar un archivo específico y, opcionalmente, eliminarlo |
| 4 | BSOD | Activar una pantalla azul de la muerte (BSOD) |
| 5 | 🌊 desenfoque | Aplicar un efecto de desenfoque GDI extremo |
| 6 | 🔥 derretirse | Crear un efecto de fusión de pantalla |
| 7 | 🌎 deslizar la pantalla | Desliza y dobla toda la pantalla |
| 8 | ⚡ convulsión | Destellar la pantalla para inducir convulsiones |
| 9 | 🌪 tornado | Crea un efecto tornado en la pantalla |
| 10 | 👴 blanquear | Poner la pantalla en blanco |
| 11 | 🚫 pantalla de bloqueo | Mostrar una imagen de Hitler como un bloque de pantalla |
| 12 | 🥏 ultraconvulsión | Versión más intensa de la convulsión, con argumentos de inicio/parada |
| 13 | 📂 árbol | Obtenga el árbol de archivos del sistema de la víctima |
| 14 | 📤 compartir | Subir y ejecutar un archivo en la PC de la víctima |
| 15 | 🔗 compartir enlaces | Descargue y ejecute un archivo basado en URL en la PC de la víctima |
| 16 | 📊 lp | Listar procesos activos |
| 17 | 🔨 kp | Matar un proceso específico |
| 18 | 📂 obtener archivos | Robar archivos del sistema de la víctima |
| 19 | 📁 disco compacto | Navegar por el sistema de archivos de la víctima |
| 20 | 📸 ss | Capture una captura de pantalla |
| 21 | 📷 foto de cámara web | Capturar una imagen de la cámara web de la víctima |
| 22 | 📥 archivos de matones | Cambiar el nombre y corromper todos los archivos en Descargas/Documentos de forma permanente |
| 23 | 🌍 abrir URL | Abrir un sitio web en el navegador de la víctima |
| 24 | 🔎 buscar | Realizar una búsqueda web |
| 25 | 🔐 obtener contraseñas | Extraer contraseñas guardadas de Microsoft Edge |
| 26 | 📜 obtener el historial del navegador | Obtener el historial del navegador del sistema de la víctima |
| 27 | 😂 kkk | Mostrar memes relacionados con el KKK en la pantalla de la víctima |
| 28 | 🔔 Notificación de spam | Enviar notificaciones de spam repetidas |
| 29 | 🔊 refuerzo de graves | Forzar el volumen al 100% |
| 30 | 😈 joderbrowser | Chrome corrupto si está instalado en la PC de la víctima |
| 31 | 🛑 esvástica | Establecer una esvástica giratoria como fondo de pantalla (iniciar/detener) |
| 32 | 🤯 nukepc | Realizar un ataque severo en la PC de la víctima |
| 33 | 🔄 reiniciar pc | Reinicie la PC de la víctima |
| 34 | 📤 apagado | Apague la PC de la víctima |
| 35 | ❌ cerrar | Cerrar la aplicación de Thugware |
| 36 | 🧹 limpio | Eliminar todos los canales de Discord excepto el actual |
| 37 | ❌ errorespamz | Mensajes de error divertidos de spam |
| 38 | 🌐 ip | Recuperar la dirección IP de la víctima |
| 39 | 🎵 reproducir sonido | Reproducir audio de fondo desde un archivo cargado |
| 40 | 💻 información del sistema | Extraer información del sistema |
| 41 | 🖼 fondo de pantalla | Cambiar el fondo de pantalla del escritorio de la víctima |
| 42 | ℹ ayuda | Mostrar el mensaje de ayuda con todos los comandos |
| 43 | 🔄 recargar | Reiniciar el bot de Thugware |
| 44 | 🔒 lockpc | Bloquear la PC de la víctima (fuerza la pantalla de inicio de sesión) |
Características del ransomware.
Además del programa malicioso de robo de datos basado en Discord, el atacante también implementa un ransomware conocido como XELERA . Al examinar la función de advertencia, podemos observar que existen un total de 6 funciones importantes relacionadas con diversos aspectos del ransomware.

Se puede ver el mensaje del ransomware, con una dirección de Litecoin para enviar el monto del rescate. Analicemos las demás funciones.

En cuanto a la primera función, `kill_explorer` itera sobre los procesos en ejecución en un bucle continuo, comprobando la presencia de `memz.exe`. Si no encuentra `memz.exe` , busca `explorer.exe` e intenta finalizarlo . Este ciclo se repite indefinidamente, garantizando que el Explorador de Windows no se ejecute a menos que `memz.exe` esté activo.

Por otro lado, el archivo create_memz_in_startup, al que se hace referencia en este ransomware, básicamente descarga un ejecutable basado en MBR Corruption.

Ahora, antes de analizar las siguientes funciones, veamos el funcionamiento de la herramienta de corrupción de MBR que se descarga como MEMZ.exe aquí.

El malware MEMZ.exe inicia su ejecución analizando los argumentos de la línea de comandos para determinar su modo de funcionamiento. Si el argumento /watchdog está presente, activa un modo de vigilancia que crea un hilo de monitorización y registra una ventana oculta. Esto garantiza que el malware permanezca en ejecución y resista la terminación mediante un bucle de mensajes de Windows.

En esta parte del MBR, se sobrescribe el Registro de Arranque Maestro (MBR) del disco, lo que impide el arranque del sistema. El malware abre \\.\PhysicalDrive0 para obtener acceso directo al disco principal y asigna un búfer de 64 KB para preparar la carga maliciosa.

A continuación, el corruptor del MBR crea un archivo de texto llamado note.txt que contiene un mensaje provocativo. Este archivo contiene texto que informa al usuario que su sistema ha sido infectado por el troyano MEMZ. El mensaje también advierte contra intentar detener el malware, afirmando que esto provocará la destrucción inmediata del sistema.
Ahora, una vez que hayamos terminado de comprender el malware MBR Corruption, avanzaremos para analizar el otro conjunto de funciones.
Si analizamos la segunda función, change_wallpaper básicamente cambia el fondo de pantalla del escritorio a la imagen de un candado.

La tercera y cuarta función de este ransomware es básicamente saturar todos los títulos de las ventanas con un mensaje de que la computadora de la víctima ha sido afectada, eliminar todos los archivos y carpetas posibles del escritorio e inundar la misma carpeta con imágenes de rescate.

La quinta función se centra en ejecutar el malware basado en corrupción del MBR. Para ello, primero enumera la carpeta de inicio de Windows y, si se encuentra el software malicioso, lo ejecuta. La sexta función, por su parte, descarga un fondo de pantalla y cambia el escritorio actual por el descargado. A continuación, utiliza la conversión de texto a voz (TTS) en un bucle infinito para reproducir el mensaje en audio en un bucle infinito.


Una vez ejecutado el ransomware, este es el mensaje que se muestra en pantalla. A continuación, al revisar la dirección de la billetera de criptomonedas mencionada, podemos ver que se han realizado un total de 16 transacciones con la misma dirección.

Conclusión
Se ha identificado el ransomware XELERA, un malware basado en Python. Se trata de una operación muy reciente que implica el robo de datos y credenciales, además de la implementación de un ransomware que no realiza ningún tipo de cifrado criptográfico. Se está propagando activamente y, actualmente, el modus operandi descrito anteriormente es el principal, utilizado para instalar el ransomware en diversos equipos objetivo.
Seqrite Protección:
- OLE.Rescate.49280.GC
- Rescate.Xelera
IOCs
| Nombre del archivo | SHA-256 |
| FCEI-notificación-de-trabajo.doc | ff06ce3fd6fe994aeaa0edc5162989d08f34440e9cacbc9e49e5db8ef98a74e3 |
| mainscript.exe (notificación de trabajo2025.exe) | 519401c998fe5d6eb143415f7c17ad5f8e5ef5ebae57ac91e9fa89a0bfcf0c7f |
| URL |
| hxxps[:]//github[.]com/Sam-cpu999/cosas/raw/main/MEMZ[.]exe |
| hxxps[:]//th[.]bing[.]com/th/id/OIP.nQu9CQ9gM84Pblh6AgykIgHaHa?rs=1&pid=ImgDetMain |
| hxxps[:]//pghnetworks[.]com/wp-content/uploads/2018/06/Blog-pic[.]jpg |
| hxxps[:]//thugging[.]org/static/kkk[.]png |
| hxxps[:]//thugging[.]org/static/3[.]mp4 |
| hxxps[.]//chochox[.]com/wp-content/uploads/2016/10/Geto 29[.]jpg |
LTC Address: LaHL1jGMk2VUgn6c4QtFVLi7BjycWrQorB
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
T1059.006 |
Ejecución del usuario: archivo malicioso.
Python. |
| Persistencia | T1547.001 | Claves de ejecución del registro / Carpeta de inicio. |
| Evasión de defensa | T1562.001 | Debilitar defensas: deshabilitar o modificar herramientas. |
| Acceso a credenciales | T1555.003 | Credenciales del navegador web. |
| Descubrimiento: | T1033
T1217
T1010
T1083
T1016 |
Descubrimiento de usuarios/propietarios del sistema.
Descubrimiento de información del navegador.
Descubrimiento de ventana de aplicación.
Descubrimiento de archivos y directorios.
Descubrimiento de configuración de red del sistema. |
| Colección | T1560.002
T1056.001 T1113
|
Archivar vía Biblioteca.
Registro de teclas. Captura de pantalla.
|
| Comando y control | T1102.002 | Comunicación bidireccional. |
| Generar impacto | T1531
T1486 T1657 T1491.001 T1561.001 T1489 T1529
|
Eliminación de acceso a la cuenta.
Datos cifrados para mayor impacto. Robo financiero. Desfiguración interna. Borrado del contenido del disco. Parada de servicio. Apagado/reinicio del sistema.
|
Escritores
- Subhajeet Singha
- Kartikkumar Ishvarbhai Jivani




