Introducción
En octubre de 2025, Elastic Security Labs descubrió una puerta trasera de Windows recién observada en telemetría. La puerta trasera completa que llamamos NANOREMOTE comparte características con el malware descrito en REF7707 y es similar al implante FINALDRAFT .
Una de las principales características del malware se centra en enviar datos de ida y vuelta desde el punto final de la víctima usando la API de Google Drive. Esta función acaba proporcionando un canal para el robo de datos y la preparación de cargas útiles que resulta difícil de detectar. El malware incluye un sistema de gestión de tareas empleado para capacidades de transferencia de archivos, que incluyen la creación de tareas de descarga/subida en cola, pausa/reanudación de transferencias de archivos, cancelación de transferencias y generación de tokens de actualización.
Este reporte tiene como objetivo aumentar la concienciación entre defensores y organizaciones sobre los actores amenazantes que estamos monitorizando y sus capacidades en evolución.
Conclusiones clave
- Elastic Security Labs descubre una nueva puerta trasera de Windows
- NANOREMOTE probablemente desarrollado por un actor de amenaza de espionaje vinculado a FINALDRAFT y REF7707
- NANOREMOTE incluye capacidades de ejecución de comandos, descubrimiento/enumeración y transferencia de archivos empleando la API de Google Drive
- La puerta trasera integra funcionalidades de proyectos de código abierto como Microsoft Detours y libPeConv
- Elastic Defend previene la cadena de ataques NANOREMOTE mediante reglas de comportamiento, clasificador de aprendizaje automático y funciones de protección de memoria
Análisis NANOREMOTE
WMLOADER
La cadena de ataque observada consta de dos componentes principales: un cargador (WMLOADER) y una carga útil (NANOREMOTE). Aunque este reporte se centra en NANOREMOTE, describiremos el cargador para proporcionar contexto sobre el flujo total de infección.
WMLOADER se hace pasar por un programa de seguridad de Bitdefender (BDReinit.exe) con una firma digital inválida.
Tras la ejecución, el programa realiza un gran número de llamadas a funciones de Windows (VirtualAlloc / VirtualProtect), preparando el proceso para alojar shellcode incrustado almacenado en el archivo. El shellcode se localiza en RVA (0x193041) y se descifra usando un algoritmo rolling XOR.
Este shellcode busca un archivo llamado wmsetup.log en la misma ruta de carpeta que WMLOADER y luego comienza a descifrarlo usando AES-CBC con una clave ASCII de 16 bytes (3A5AD78097D944AC). Tras el descifrado, el shellcode ejecuta la puerta trasera en memoria, NANOREMOTE.
Basándonos en la rutina previa de descifrado de shellcode, podemos identificar otras muestras relacionadas dirigidas a productos de Bitdefender y Trend Micro al buscar en VirusTotal.
NANOREMOTO
NANOREMOTE es una puerta trasera completa que puede usar para realizar reconocimiento, ejecutar archivos y comandos, y transferir archivos hacia y desde entornos víctimas. El implante es un ejecutable de Windows de 64 bits escrito en C++ sin ofuscación.
Configuración de NANOREMOTE
La muestra NANOREMOTE que observamos estaba preconfigurada para comunicar con una dirección IP no enrutable codificada en duro. Creemos que el programa se generó a partir de un constructor, ya que no vemos referencias cruzadas que apunten a una configuración de configuración.
Para la autenticación de la API de Google Drive, NANOREMOTE emplea una configuración separada por tubería que puede emplear varios clientes. El separador |*| divide los campos usados por un solo cliente y el |-| se emplea como marcador para separar los clientes. Hay tres campos por estructura de cliente:
- ID de cliente
- Secreto del cliente
- Token de actualización
A continuación, un ejemplo del formato:
Client_ID_1|*|Client_Secret_1|*|Refresh_Token_1|-|Client_ID_2|*|Client_Secret_2|*|Refresh_Token_2
El desarrollador dispone de un mecanismo de respaldo para aceptar esta configuración mediante una variable de entorno llamada NR_GOOGLE_ACCOUNTS.
Interfaz/Registro
NANOREMOTE proporciona una consola detallada que muestra la actividad en tiempo real de la aplicación, incluyendo marcas de tiempo, ubicaciones del código fuente y descripciones de sus comportamientos.
Se crea un nuevo directorio de Windows en la misma ubicación donde se ejecutó NANOREMOTE, la carpeta se llama Log.
Un archivo de registro recién creado (pe_exe_run.log) se coloca en esta carpeta que contiene la misma salida impresa desde la consola.
Arreglo
Hay una rutina inicial de configuración por parte de NANOREMOTE antes de que comience el bucle principal de trabajo. El malware genera un GUID único mediante CoCreateGuid luego hace hash del GUID usando la función Fowler-Noll-Vo (FNV). Este GUID es empleado por el operador para identificar máquinas individuales durante cada solicitud.
El desarrollador de malware tiene un gestor de fallos a nivel de proceso para crear un minivolcado de Windows del proceso en ejecución cuando ocurre una excepción no gestionada; lo más probable es que se esté empleando para triar los fallos del programa.
La excepción producirá el volcado antes de terminar el proceso. Esta es una práctica bastante habitual, aunque el MiniDumpWithFullMemory podría considerar menos común en software legítimo, ya que podría acabar produciendo volcados de mayor tamaño y contener datos sensibles.
Una búsqueda rápida en Google usando la misma sombra de cadena para el archivo volcado (%d%02d%02d%02d%02d%02d_sv.dmp) que aparece solo 1 resultado de una sitio web china de desarrollo de software.
Comunicación en red
Como se mencionó anteriormente, el C2 de NANOREMOTE se comunica con una dirección IP codificada de forma fija. Estas solicitudes ocurren por HTTP, donde los datos JSON se envían mediante peticiones POST comprimidas y cifradas con AES-CBC usando una clave de 16 bytes (558bec83ec40535657833d7440001c00). El URI de todas las peticiones /api/client emplea con User-Agent (NanoRemote/1.0).
A continuación se muestra la receta de CyberChef empleada para el cifrado/compresión de C2:
Cada petición anterior al cifrado sigue un esquema que consiste en:
- ID de comando: ID de manejador de comandos asociado
- Datos: Objeto específico de un comando que contiene pares clave/valor requeridos por el manejador correspondiente
- ID: Identificador de máquina único asignado al host infectado
A continuación se muestra un ejemplo de una solicitud que activa la ejecución de whoami mediante la clave de comando dentro del objeto de datos:
{
"cmd": 21,
"data": {
"command": "whoami"
},
"id": 15100174208042555000
}
Cada respuesta sigue un formato similar usando los campos anteriores junto con dos campos adicionales.
- Salida: Contiene cualquier salida del manejador de comandos aplicar previamente
- Éxito: Bandera booleana usada para determinar si el mando fue exitoso o no
A continuación se muestra un ejemplo de la respuesta del comando whoami anterior:
{
"cmd": 21,
"data": 0,
"id": 17235741656643013000,
"output": "desktop-2c3iqho\\rem\r\n",
"success": true
}
Manejadores de mando
La funcionalidad principal de NANOREMOTE se impulsa a través de sus 22 manejadores de comandos. A continuación se muestra un diagrama de gráfico de control y flujo (CFG) que muestra la instrucción switch empleada para despachar a los diferentes manejadores.
A continuación se muestra la tabla de manejadores de comandos:
| ID de comando | Descripción |
|---|---|
| #1 | Recopilar información basada en el host |
| #2 | Modificar el tiempo de espera de la baliza |
| #3 | Auto-terminación |
| #4 | Listar el contenido de las carpetas por ruta |
| #5 | Lista el contenido de la carpeta por ruta y establece el directorio de trabajo |
| #6 | Obtener detalles del disco de almacenamiento |
| #7 | Crear un nuevo directorio |
| #8 #9 | Eliminar directorios/archivos |
| #10 #11 | Desmontar (Borrar caché, limpiar) |
| #12 | PE loader - Ejecutar PE desde disco |
| #13 | Establecer directorio de trabajo |
| #14 | Conseguir directorio de funcionamiento |
| #15 | Archivo de movimiento |
| #16 | Poner en cola la tarea de descarga a través de Google Drive |
| #17 | Tarea de subida de cola a través de Google Drive |
| #18 | Pausar la transferencia de descarga/subida |
| #19 | Transferencia de descarga/subida de currículum |
| #20 | Cancelar transferencia de archivos |
| #21 | Ejecución de mandos |
| #22 | PE loader - Ejecutar PE desde la memoria |
Manejador #1 - Recopilar información basada en el host
Este gestor enumera los datos del sistema y del usuario para perfilar el entorno de la víctima:
- Emplea
WSAIoctlconSIO_GET_INTERFACE_LISTpara recuperar direcciones IP internas y externas - Toma el nombre de usuario a través de
GetUserNameW - Recupera el nombre de host mediante
GetComputerNameW - Comprueba si el usuario actual es miembro del grupo de administradores mediante
IsUserAnAdmin - Recupera la ruta de proceso empleada por el malware usando
GetModuleFileNameW - Recupera información del sistema operativo (construcción del producto) del registro usando los nombres de valores
WinREVersionyProductName - Obtiene el ID del proceso del programa en ejecución mediante
GetCurrentProcessID
A continuación, un ejemplo de los datos enviados al servidor C2:
{
"cmd": 1,
"data": {
"Arch": "x64",
"ExternalIp": "",
"HostName": "DESKTOP-2C3IQHO",
"ID": 8580477787937977000,
"InternalIp": "192.168.1.1",
"OsName": "Windows 10 Enterprise ",
"ProcessID": 304,
"ProcessName": "pe.exe",
"SleepTimeSeconds": 0,
"UID": 0,
"UserName": "REM *"
},
"id": 8580477787937977000
}
Manejador #2 - Modificar el tiempo de espera de la baliza
Este manejador modifica el intervalo de tiempo de espera de la baliza para la comunicación C2 de NANOREMOTE, el malware entrará en suspensión según el número de segundos proporcionados por el operador.
A continuación se muestra un ejemplo de esta petición donde NANOREMOTE emplea la clave (interval) con un valor (5) para modificar el tiempo de espera de la baliza a 5 segundos.
{
"cmd": 2,
"data": {
"interval": 5
},
"id": 15100174208042555000
}
Manejador #3 - Auto-terminación
Este manejador es responsable de establecer una variable global para 0 señalar efectivamente el desmontaje y la salida del proceso para NANOREMOTE.
Manejador #4 - Listar el contenido de la carpeta por ruta
Este manejador lista el contenido de la carpeta usando una ruta de archivo proporcionada por el operador. La lista de cada artículo incluye:
- Independientemente de si el elemento es un directorio o no
- Si el objeto está marcado como oculto
- Fecha de última modificación
- Nombre de archivo
- Tamaño
Manejador #5 - Listar el contenido de la carpeta y establecer el directorio de trabajo
Este manejador emplea el mismo código que el anterior (#4), la única diferencia es que establece el directorio de trabajo actual del proceso en la ruta proporcionada también.
Manejador #6 - Obtener información del disco de almacenamiento
Este gestor emplea las siguientes funciones de la API de Windows para recopilar información de almacenamiento en disco de la máquina:
- GetLogicalDrives
- GetDiskFreeSpaceExW
- GetDriveTypeW
- GetVolumeInformationW
A continuación se muestra un ejemplo de la solicitud en JSON que muestra los datos devueltos:
{
"cmd": 6,
"data": {
"items": [
{
"free": 26342813696,
"name": "C:",
"total": 85405782016,
"type": "Fixed"
}
]
},
"id": 16873875158734957000,
"output": "",
"success": true
}
Manejador #7 - Crear un nuevo directorio de carpetas
Este gestor de comandos crea un nuevo directorio basado en una ruta proporcionada.
Manejador #8, #9 - Eliminar archivo, directorio
Este manejador soporta tanto los IDs de comandos #8 como #9, y la ramificación se elige dinámicamente en función de la ruta de archivo proporcionada. Tiene la capacidad de eliminar archivos o una carpeta específica.
Manejador #10, #11 - Desmontaje/limpieza
Estos dos manejadores llaman a la misma función de descompresión usando argumentos diferentes para liberar recursivamente asignaciones de heap, objetos internos en C++ y datos en caché asociados al tiempo de ejecución del malware. Este propósito es limpiar las estructuras de mando y prevenir fugas de memoria o inestabilidad.
Manejador #12 - Cargador PE personalizado - Ejecutar PE desde disco
Este manejador incluye una capacidad de carga PE personalizada para archivos que existen en disco. Esta funcionalidad aprovecha las APIs estándar de Windows junto con el código auxiliar de la biblioteca libPeConv para cargar archivos PE desde el disco sin usar el cargador tradicional de Windows.
En resumen, leerá un archivo PE desde el disco, lo copiará a la memoria, mapeará manualmente las secciones/cabeceras, preparará el archivo antes de ejecutarlo finalmente en memoria. Esta implementación es una técnica deliberada para el sigilo y la evasión, evitando el enganche en modo usuario y la visibilidad tradicional. Por ejemplo, cuando un archivo se ejecuta mediante esta técnica, no hay rastro de que este ejecutable se lanzó usando procmon.
A continuación se muestra la siguiente entrada para este manejador donde se proporciona la ruta local del archivo bajo la clave (args):
{
"cmd": 12,
"data": {
"args": "C:\\tmp\\mare_test.exe"
},
"id": 15100174208042555000
}
La siguiente captura de pantalla muestra la ejecución exitosa de nuestro ejecutable de prueba usando esta técnica:
Durante este análisis, una nota interesante es la adopción de la biblioteca libPeConv, un proyecto excelente y útil que nosotros mismos empleamos internamente para diversas tareas relacionadas con malware. El desarrollador de NANOREMOTE emplea varias funciones de esta biblioteca para simplificar tareas comunes relacionadas con la carga y ejecución manual de archivos PE en memoria. A continuación se muestran las funciones empleadas por la biblioteca que se encuentran en NANOREMOTE:
-
default_func_resolver: Resuelve funciones en un archivo PE cargando dinámicamente DLLs y recuperando las direcciones de las funciones exportadas.
-
hooking_func_resolver: Recuperar la dirección virtual de una función por nombre de una DLL cargada.
-
FillImportThunks: Llena la tabla de importación resolviendo cada función importada a su dirección real en la memoria.
-
ApplyRelocCallback: Aplica reubicaciones de base cuando un archivo PE se carga en una dirección diferente a su base preferida.
Otra observación notable en este manejador es el uso de la biblioteca de hooking de código abierto, Microsoft Detours. Esta biblioteca se emplea para interceptar las siguientes funciones de Windows:
- GetStdHandle
- RtlExitUserThread
- RtlExitUserProcess
- FatalExit
- ExitProcess
Esta rutina de enganche en tiempo de ejecución intercepta funciones relacionadas con la terminación para reforzar un comportamiento controlado y mejorar la resiliencia. Por ejemplo, NANOREMOTE evita que un fallo en un solo hilo de trabajo termine todo el proceso NANOREMOTE.
Manejador #13 - Establecer directorio de trabajo
Este manejador establece el directorio de trabajo en un directorio específico usando la clave (ruta). A continuación, un ejemplo de solicitud:
{
"cmd": 13,
"data": {
"path": "C:\\tmp\\Log"
},
"id": 15100174208042555000
}
Gestor #14 - Conseguir el directorio funcional
Este manejador recupera el directorio de trabajo actual; a continuación se muestra un ejemplo de respuesta tras establecer el directorio con el gestor anterior (#13).
{
"cmd": 14,
"data": 0,
"id": 11010639976590963000,
"output": "[+] pwd output:\r\nC:\\tmp\\Log\r\n",
"success": true
}
Manejador #15 - Archivo de Mover
Este manejador permite al operador mover archivos por la máquina víctima usando MoveFileExW con dos argumentos (old_path, new_path) que mueven el archivo a otra carpeta mediante una operación de copiar y eliminar archivos.
Manejador #16 - Tarea de descarga de cola
Este manejador crea un objeto de tarea de descarga con un task_id proporcionado y luego coloca la tarea en la cola de descarga. Esta implementación emplea tokens OAuth 2.0 para autenticar solicitudes a la API de Google Drive. Esta funcionalidad la emplea el actor de amenaza para descargar archivos a la máquina víctima. La comunicación cifrada con los servidores de Google hace que este tráfico parezca legítimo, dejando a las organizaciones incapaces de inspeccionarlo o diferenciarlo del uso normal.
Dentro del hilo principal de trabajadores, hay una variable global que se emplea para rastrear los objetos de la cola y procesar las tareas pendientes por el malware.
Una tarea se procesa empleando varios campos proporcionados por el servidor C2:
- type
- task_id
- file_id
- target_path
- file_size
- MD5
Cuando se procesa una tarea de descarga, NANOREMOTE recuperará el tamaño del archivo alojado en Google Drive usando el ID del archivo (1BwdUSIyA3WTUrpAEEDhG0U48U9hYPcy7). A continuación, el malware descargará el archivo a través de WinHttpSendRequest y luego usará WinHttpWriteData para escribir el archivo en la máquina.
A continuación se muestra la salida de la consola que muestra este proceso de descarga:
Esta función de malware supone un desafío único para las organizaciones, ya que los grupos de amenaza continúan abusando de plataformas de nube de confianza para la exfiltración de datos y el alojamiento de cargas útiles. Este tráfico sin ningún contexto puede mezclar fácilmente con tráfico legítimo, dificultando la detección para los defensores que dependen de la visibilidad de la red.
Manejador #17 - Tarea de carga de cola
Este manejador funciona de forma similar al anterior (#16), pero en su lugar crea una tarea de cola de subidas y coloca la tarea en cola en la cola de subida. Este manejador es empleado por el actor de la amenaza para subir archivos desde la máquina víctima a la cuenta de Google Drive controlada por el adversario.
Los siguientes campos son proporcionados por el operador a través del servidor C2:
typetask_idupload_namesource_pathfile_sizemd5
A continuación se muestra el tráfico de red generado por el malware al subir un archivo de prueba a través de la API de Google Drive (/upload/drive/v3/files).
La figura siguiente muestra la consola durante este proceso de subida.
A continuación hay una captura de pantalla de la demostración anterior usando la función de subida de archivos con nuestra propia cuenta de prueba de Google Drive.
A continuación, la respuesta de este manejador:
{
"cmd": 17,
"data": {
"file_id": "1qmP4TcGfE2xbjYSlV-AVCRA96f6Kp-V7",
"file_name": "meow.txt",
"file_size": 16,
"md5": "1e28c01387e0f0229a3fb3df931eaf80",
"progress": 100,
"status": "uploaded",
"task_id": "124"
},
"id": 4079875446683087000,
"output": "",
"success": true
}
Manejador #18 - Pausar transferencia de descarga/subida
Este manejador permite al operador pausar cualquier tarea de descarga y subida gestionada por NANOREMOTE pasando el task_id.
Manejador #19 - Reanudar transferencia de descarga/subida
Este gestor permite al operador reanudar cualquier tarea de descarga o subida pausada gestionada por NANOREMOTE usando el task_id.
Manejador #20 - Cancelar transferencia de archivos
Este manejador permite al operador cancelar cualquier tarea de descarga/subida gestionada por NANOREMOTE a través del task_id.
Manejador #21 - Ejecución de comandos
Este es el manejador principal empleado por el adversario para la ejecución de comandos en la máquina víctima. Funciona generando nuevos procesos y devolviendo la salida a través de los canales de Windows. Esta es una característica central que se encuentra en la mayoría de las puertas traseras empleadas por adversarios para acceder directamente a enumerar el entorno, realizar movimientos laterales y ejecutar cargas útiles adicionales.
La figura siguiente muestra el árbol de procesos de NANOREMOTE cuando se invoca este manejador. El malware genera cmd.exe, que a su vez ejecuta el comando especificado—en este caso, whoami.exe.
Manejador #22 - Ejecutar PE codificado desde la memoria
Este manejador carga y ejecuta un archivo PE codificado en Base64 dentro del proceso NANOREMOTE existente. El archivo PE codificado es proporcionado por el servidor C2 usando el campo pe_data. Si el programa requiere argumentos de línea de comandos, se emplea la clave (argumentos).
A continuación se muestra un ejemplo que muestra la salida de la consola usando el programa de prueba:
Similitud con FinalDraft
Existe solapamiento entre FINALDRAFT y NANOREMOTE tanto desde la similitud de código como desde la perspectiva del comportamiento.
Muchas funciones muestran una reutilización clara del código entre ambos implantes. Por ejemplo, ambos siguen la misma secuencia de generación de un GUID mediante CoCreateGuid, hasheando con la función Fowler-Noll-Vo (FNV) y realizando comprobaciones idénticas de validación de heaps antes de liberar el búfer.
Una buena parte del código relacionado con HTTP empleado para enviar y recibir solicitudes sugiere también similitud. A continuación se muestra un ejemplo de un gráfico de flujo de control que muestra la configuración/configuración de una solicitud HTTP empleada por ambas familias de malware.
Durante nuestro análisis, observamos que WMLOADER descifra la carga útil correspondiente de un archivo codificado en fija llamado wmsetup.log – el mismo nombre de archivo que empleó PATHLOADER para desplegar FINALDRAFT, que publicamos a principios de año.
Otro hallazgo interesante es que descubrimos una muestra (wmsetup.log) de VirusTotal que fue subido recientemente desde Filipinas el 03-10-2025.
Descargamos el archivo, lo pusimos junto a WMLOADER y luego ejecutamos el cargador. Descifró con éxito el archivo wmsetup.log , revelando un implante FINALDRAFT.
A continuación se muestra un gráfico lado a lado que muestra que la misma clave AES se emplea para descifrar con éxito tanto FINALDRAFT como NANOREMOTE.
Nuestra hipótesis es que WMLOADER emplea la misma clave codificada de forma fija debido a que forma parte del mismo proceso de construcción/desarrollo que le permite trabajar con diversas cargas útiles. No está claro por qué el grupo de amenaza detrás de estos implantes no está volteando la llave, posiblemente sea por conveniencia o pruebas. Esto parece ser otra señal clara que sugiere una base de código y un entorno de desarrollo compartidos entre FINALDRAFT y NANOREMOTE.
NANOREMOTE a través de MITRE ATT&CK
Elastic usa el marco MITRE ATT&CK para documentar tácticas, técnicas y procedimientos comunes que las amenazas emplean contra las redes empresariales.
Táctica
La táctica representa el porqué de una técnica o subtécnica. Es el objetivo táctico del adversario: la razón para realizar una acción.
Técnicas
Las técnicas representan cómo un adversario logra un objetivo táctico mediante la realización de una acción.
- Account Discovery
- Descubrimiento de almacenamiento local
- Exfiltración a través de servicios sitio web: Exfiltración al espacio en la nube
- Enmascaramiento: Firma de código inválida
- Intérprete de comandos y scripting: Shell de comandos de Windows
Mitigación de NANOREMOTE
Dentro de un entorno de laboratorio ejecutando NANOREMOTE, se activaban muchas alertas diferentes usando Elastic Defend.
Uno de los principales comportamientos a validar para los defensores es el abuso de usar servicios legítimos como la API de Google Drive. A continuación se muestra una alerta de ejemplo que se activa con la regla de Conexión a Servicios Sitio web Comúnmente Abusados al interactuar con la API de Google tanto para la descarga como para la subida de archivos usando NANOREMOTE.
La técnica de carga PE empleando el archivo codificado en Base64 del servidor C2 también fue detectada mediante alerta Memory Threat Detection Alert: Shellcode Injection .
Detección/Prevención
- Posible evasión con puntos de interrupción de hardware
- Posible evasión mediante firma de código no válida
- Shellcode sin respaldo de un módulo sin firmar
- Ejecución de shellcode desde el módulo de baja reputación
- Imagen Hollow de Unusual Stack
- Conexión a servicios sitio web comúnmente abusados
- Alerta de detección de amenazas de memoria: Inyección de shellcode
YARA
Elastic Security creó reglas YARA para identificar esta actividad.
rule Windows_Trojan_NanoRemote_7974c813 {
meta:
author = "Elastic Security"
creation_date = "2025-11-17"
last_modified = "2025-11-19"
license = "Elastic License v2"
os = "Windows"
arch = "x86"
threat_name = "Windows.Trojan.NanoRemote"
strings:
$str1 = "/drive/v3/files/%s?alt=media" ascii fullword
$str2 = "08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X" ascii fullword
$str3 = "NanoRemote/" wide
$str4 = "[+] pwd output:" wide
$str5 = "Download task %s failed: write error (wrote %llu/%zu bytes)"
$seq1 = { 48 83 7C 24 28 00 74 ?? 4C 8D 4C 24 20 41 B8 40 00 00 00 BA 00 00 01 00 48 8B 4C 24 28 FF 15 ?? ?? ?? ?? 85 C0 }
$seq2 = { BF 06 00 00 00 89 78 48 8B 0D ?? ?? ?? ?? 89 48 ?? FF D3 89 78 78 8B 0D ?? ?? ?? ?? 89 48 7C FF D3 89 78 18 8B 0D }
condition:
4 of them
}
rule Windows_Trojan_WMLoader_d2c7b963 {
meta:
author = "Elastic Security"
creation_date = "2025-12-03"
last_modified = "2025-12-03"
license = "Elastic License v2"
os = "Windows"
arch = "x86"
threat_name = "Windows.Trojan.WMLoader"
reference_sample = "fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902"
strings:
$seq1 = { 8B 44 24 20 FF C0 89 44 24 20 81 7C 24 20 01 30 00 00 }
$seq2 = { 41 B8 20 00 00 00 BA 01 30 00 00 48 8B 4C C4 50 FF 15 }
condition:
all of them
}
Observaciones
En esta investigación se discutieron los siguientes observables.
| Observable | Tipo | Nombre | Referencia |
|---|---|---|---|
| FFF31726d253458F2C29233D37EE4CAF43C5252F58DF76C0dCED71C4014d6902 | SHA-256 | BDReinit.exe | WMLOADER |
| 999648bd814ea5b1e97918366c6bd0f82b88f5675da1d4133257b9e6f4121475 | SHA-256 | ASDTool.exe | WMLOADER |
| 35593a51ecc14e68181b2de8f82dde8c18f27f16fcebedbbdac78371ff4f8d41 | SHA-256 | mitm_install_tool.exe | WMLOADER |
| b26927CA4342A19E9314CF05ee9D9A4BDDF7B848Def2Db941Dd281D692EA73C | SHA-256 | BDReinit.exe | WMLOADER |
| 57e0e560801687a8691c704f79da0c1dbdd0f7d5cc671a6ce07ec0040205d728 | SHA-256 | NANOREMOTO |
