{
	"id": "f5fb2aa3-b684-4be4-bab5-fc4d39d4436e",
	"created_at": "2026-04-06T00:11:45.196833Z",
	"updated_at": "2026-04-10T13:12:46.285124Z",
	"deleted_at": null,
	"sha1_hash": "6fa3223ffa21c9ab83c29aebfc8b96de05bff9a0",
	"title": "MaaS Appeal: An Infostealer Rises From The Ashes",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 12550414,
	"plain_text": "MaaS Appeal: An Infostealer Rises From The Ashes\r\nBy Jia Yu Chan, Elastic Security Labs\r\nPublished: 2025-07-29 · Archived: 2026-04-05 22:40:48 UTC\r\nNOVABLIGHT de un vistazo\r\nNOVABLIGHT es un ladrón de información Malware-as-a-Service (MaaS) basado en NodeJS, desarrollado y vendido\r\npor un grupo de amenazas que demuestra dominio del idioma francés. Esto es evidente en sus discusiones y\r\ncomunicaciones operativas en sus principales plataformas de ventas y soporte, Telegram y Discord.\r\nSegún nuestro análisis de la última versión lanzada de NOVABLIGHT, el siguiente fragmento de código sugiere que\r\nSordeal Group, el grupo detrás de Nova Sentinel y MALICORD, también es responsable de NOVABLIGHT.\r\nSe menciona a Sordeal Group, seguido de un enlace al canal de Telegram\r\nConclusiones clave\r\nNOVABLIGHT es un ladrón de información descrito como una herramienta educativa, aunque los mensajes del\r\ncanal de Telegram revelan información confidencial y capturas de pantalla sin redactar.\r\nLas licencias de NOVABLIGHT son válidas por hasta un año y los binarios se pueden generar a través de\r\nTelegram o Discord.\r\nCódigo muy ofuscado con muchas capacidades.\r\nDescubrimiento\r\nElastic Security Labs identificó múltiples campañas que aprovechan descargas de instaladores de juegos de video\r\nfalsos como señuelo de acceso inicial para infecciones MaaS de usuarios de Internet. En un ejemplo, la URL\r\nhttp://gonefishe[.]com aplicar al usuario descargar un binario e instalar una versión en francés de un juego con un\r\nnombre y una descripción comparables a uno lanzado recientemente en Steam.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 1 of 26\n\nPágina de destino para http://gonefishe . con\r\nDistribución, monetización y comunidad\r\nEl grupo publicitó y vendió su producto en varias plataformas en línea, anteriormente Sellix y Sellpass y actualmente\r\nBillgang.\r\nPágina de productos de NOVABLIGHT en Billgang\r\nEl grupo vende una clave API, que caduca entre 1 y 12 meses. Esta clave se puede usar luego para crear una instancia\r\nde NOVABLIGHT a través de un bot de Telegram o mediante Discord.\r\nEl grupo promueve un programa de referencia en su canal de Discord con claves API como recompensa.\r\nLos usuarios obtienen acceso a un panel alojado por el grupo que presenta la información recopilada de las víctimas.\r\nSe identificaron los siguientes dominios, aunque pueden existir otros:\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 2 of 26\n\napi.nova-blight[.]top\r\nshadow.nova-blight[.]top\r\nnova-blight[.]site\r\nnova-blight[.]xyz\r\nbamboulacity.nova-blight[.]xyz\r\nAlgunas de las imágenes empleadas en el panel del tablero están alojadas en repositorios de GitHub asociados a\r\ndiferentes cuentas, lo que ayudó a exponer más detalles sobre el grupo.\r\nRespuesta HTTP de https://shadow.nova-blight .arriba encontrado en VirusTotal\r\nLa cuenta de GitHub KSCHcuck1 es un pseudónimo similar al del autor anterior de MALICORD, una versión gratis de\r\nla primera versión del ladrón que estaba alojada en GitHub bajo la cuenta KSCH-58 (ENLACE AL ARCHIVO SITIO\r\nWEB). La cuenta X @KSCH_dsc también tenía similitudes y estaba promocionando activamente su \"mejor ladrón\r\njamás lanzado\" tan recientemente como en 2023.\r\nSe identificaron las siguientes cuentas de GitHub en relación con el grupo:\r\nhttps:\\/\\/github.com\\/KSCHcuck1\r\nhttps:\\/\\/github.com\\/CrackedProgramer412\\/caca\r\nhttps:\\/\\/github.com\\/MYnva\r\nhttps:\\/\\/github.com\\/404log (muerto)\r\nSu canal público de Telegram alberga tutoriales y una comunidad de usuarios. En la siguiente captura de imagen, los\r\nusuarios comparten capturas de pantalla del proceso de compilación.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 3 of 26\n\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 4 of 26\n\nCapturas de pantalla de usuarios de la construcción de NOVABLIGHT\r\nLos usuarios del infostealer comparten abiertamente imágenes de artículos de lujo y transferencias de dinero, lo que es\r\nnotable porque se describe que NOVABLIGHT tiene únicamente fines educativos.\r\nImagen de teléfonos que un usuario de NOVABLIGHT afirma comprar, compartida a través de Telegram\r\nel 15 de mayo de 2025\r\nAnálisis NOVABLIGHT\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 5 of 26\n\nNOVABLIGHT es un ladrón de información modular y rico en funciones creado en NodeJS con el marco Electron.\r\nSus capacidades van más allá del simple robo de credenciales e incorporan métodos de recopilación y exfiltración de\r\ndatos, detección en entornos sandbox y ofuscación intensa.\r\nVirusTotal muestra una baja tasa de detección de NOVABLIGHT\r\nUn aspecto notable del proceso de construcción del malware es su configuración modular. Si bien un cliente puede\r\nelegir deshabilitar funciones específicas, el código subyacente para esas funciones permanece dentro de la carga útil\r\nfinal; está inactivo y no se ejecutará según los indicadores de configuración de la compilación.\r\nLa lógica del recortador de billetera se puede ejecutar o no, según el campo de configuración\r\nswapWallet.active\r\nLos fragmentos de código de este reporte provienen de una muestra de la versión 2.0 no ofuscada, cuando los detalles\r\nde implementación coinciden con los de las muestras de la versión 2.2, o de nuestro código desofuscado manualmente\r\nde una muestra de la versión 2.2 cuando difieren.\r\nEstructura del código\r\nDesde la configuración inicial hasta el robo de datos, el ladrón de información está organizado en un proceso claro y de\r\nmúltiples etapas gestionado por controladores de \"flujo\" de alto nivel. Las etapas principales son:\r\nflujo/inicio: Comprobaciones previas al vuelo (instancias en ejecución, privilegios de administrador,\r\nconectividad a Internet), comprobaciones de antianálisis, enumeración de información del sistema,\r\nestablecimiento de persistencia, etc.\r\nflujo/inyección: Inyección y parcheo de aplicaciones (Atomic, Mullvad, Discord, …)\r\nfluir/agarrar: Recopilación de datos\r\nflujo/Portapapeles:Secuestro del portapapeles\r\nflujo/envío:Exfiltración de datos\r\nflujo/deshabilitar:Sabotaje del sistema (desactivar Windows Defender, anti-resetear del sistema, conectividad a\r\nInternet rota, …)\r\nflujo/limpieza: Limpieza posterior a la exfiltración\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 6 of 26\n\nPara obtener más información sobre la estructura del código, consulte este GitHub Gist, que enumera las dependencias\r\ndirectas de cada uno de los módulos principales y los flujos de ejecución de NOVABLIGHT.\r\nDetección anti-depuración y sandbox\r\nNOVABLIGHT incorpora múltiples técnicas para detectar y evadir entornos de análisis, combinando la toma de\r\nhuellas ambientales con contramedidas activas. Estos controles incluyen:\r\nDetección de nombres de GPU relacionados con VM (vmware, virtualbox, qemu)\r\nComprobación de nombres de usuario incluidos en la lista negra (sandbox, prueba, malware)\r\nIdentificación de archivos de controlador específicos de la máquina virtual (balloon.sys, qemu-ga)\r\nComprobación de baja resolución de pantalla y falta de dispositivos USB\r\nConsultar GitHub para obtener listas negras de IP, HWID, nombres de usuario, programas, organizaciones,\r\nnombres de GPU, nombres de PC y sistemas operativos\r\nMatar activamente herramientas de análisis y depuración conocidas que se encuentran en una lista remota\r\nComprobaciones anti-depuración y anti-VM\r\nLas listas negras están alojadas en GitHub:\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/blocked_ips.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/blocked_progr.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/refs\\/heads\\/main\\/json\\/blockedorg.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/blocked_GPUTYPE.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/nope.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/blocked_hwid.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/Mynva\\/sub\\/main\\/json\\/blockedpcname.json\r\nhttps:\\/\\/raw.githubusercontent.com\\/MYnva\\/sub\\/refs\\/heads\\/main\\/json\\/blockedOS.json\r\nDeshabilitar Defender e intentos de deshabilitar el Administrador de tareas\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 7 of 26\n\nNOVABLIGHT intenta deshabilitar Windows Defender y las funciones de seguridad de Windows relacionadas\r\ndescargando y ejecutando un script por lotes, DisableWD.bat. de un repositorio público de GitHub.\r\nEl malware afirma ser capaz de deshabilitar el Administrador de tareas, lo que dificulta que un usuario sin\r\nconocimientos técnicos identifique y finalice el programa malicioso. Emplea setValues del paquete regedit-rs\r\npara establecer el valor DisableTaskMgr en 1 bajo\r\nHKCU\\\\\\\\Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Policies\\\\\\\\System .\r\nDeshabilitar el Administrador de tareas a través del registro\r\nSin embargo, al observar el regedit-rs repositorio (v1.0.3 para que coincida), no hay funciones exportadas llamadas\r\nsetValues , solo putValue . Es posible que esta funcionalidad no funcione como se espera.\r\nFragmento de js-binding.js del repositorio de GitHub regedit-rs\r\nDeshabilitar el acceso a Internet\r\nPara interrumpir la conexión a Internet de la víctima, el malware emplea dos métodos distintos. El primero implica\r\ndeshabilitar de forma persistente el adaptador Wi-Fi resetear repetidamente en un bucle rápido, empleando el paquete\r\nnpm externo wifi-control y su función resetWiFi .\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 8 of 26\n\nDesactivar el adaptador Wi-Fi\r\nEl segundo método deshabilita el adaptador de red principal “Ethernet” mediante el comando netsh , ejecutándolo\r\ncada 5 segundos para deshabilitar los intentos de reactivación.\r\nDeshabilitar el adaptador de red llamado “Ethernet”\r\nDerrotar la recuperación del sistema\r\nEl malware puede sabotear la recuperación del sistema al deshabilitar el entorno de recuperación de Windows\r\n( reagentc /disable ) y eliminar todas las instantáneas de volumen ( vssadmin delete shadows /all ) cuando la\r\nmarca antireset está habilitada en la configuración.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 9 of 26\n\nDeshabilitar la restauración del sistema\r\nBloqueo de la eliminación de archivos\r\nOtra función de sabotaje del sistema que puede ser evidente para la víctima implica hacer que el archivo ejecutable del\r\nmalware no se pueda eliminar modificando sus licencias de seguridad a través de icacls “${filePath}” /deny\r\n${currentUser}:(DE,DC) , donde DE niega los derechos de eliminación y DC impide la eliminación a través de la\r\ncarpeta principal y, opcionalmente, creando un cuadro de mensaje emergente que contiene un mensaje \"troll\".\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 10 of 26\n\nImpedir que el usuario actual elimine el ejecutable de malware\r\nAntes de bloquear, también ejecuta un comando de PowerShell para eliminar la cuenta de la víctima de los siguientes\r\ngrupos del sistema: Administrators , Power Users , Remote Desktop Users , Administrateurs .\r\nEliminar el usuario actual de los grupos de administradores\r\nSustitución de la dirección del portapapeles\r\nEl malware implementa un módulo \"clipper\" que monitorea activamente el portapapeles de la máquina en busca de\r\ndirecciones Crypto o Paypal y las reemplaza con direcciones definidas en la configuración. Si el usuario que creó la\r\ncarga útil no proporcionó sus propias direcciones, el malware emplea de forma predeterminada un conjunto codificado,\r\npresumiblemente controlado por los desarrolladores para capturar fondos de sus usuarios menos experimentados.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 11 of 26\n\nSe emplean direcciones de respaldo si no se especifican en la configuración.\r\nInyecciones de aplicación de electrones\r\nNOVABLIGHT puede inyectar código malicioso en varias aplicaciones populares basadas en Electron. Las cargas\r\nútiles se obtienen dinámicamente desde el punto final https://api.nova-blight[.]top/injections/*targeted_application*/*some_key* y están dirigidas a aplicaciones como:\r\nCliente de Discord\r\nCartera Exodus\r\nCliente VPN de Mullvad\r\nMonedero atómico\r\nCliente de email Mailspring\r\nPudimos recuperar todos los módulos de un repositorio público de GitHub.\r\nLa implementación de la inyección es un ejemplo tradicional de reempaquetado de Electron App: descomprimir el\r\narchivo ASAR, reescribir cualquier archivo fuente de destino y luego reempaquetarlo. Si observamos un ejemplo que\r\ninvolucra al cliente Mullvad, primero descomprime Program Files\\\\Mullvad VPN\\\\resources\\\\app.asar en un\r\ndirectorio temporal, obtiene una versión con puerta trasera de account.js desde https://api.nova-blight[.]top/injections/mullvad/dVukBEtL8rW2PDgkwdwfbNSdG3imwU8bZhYUygzthir66sXXUuyURunOin9s , sobreescribir\r\nel archivo fuente account.js y, finalmente, lo vuelve a empaquetar. Si bien aún podría funcionar para versiones\r\nanteriores de Mullvad, como 2025.4, Esto no parece funcionar en la última versión de Mullvad.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 12 of 26\n\nReempaquetado del cliente Mullvad\r\nEn un caso similar para el cliente Exodus, los desarrolladores de NOVABLIGHT modificaron la función setPassphrase\r\nen el módulo principal de la aplicación Exodus, con funcionalidades adicionales de robo de credenciales.\r\nAsí es como se ve main/index.js en una publicación legítima de Éxodo 25.28.4:\r\nLógica original de main/index.js en el cliente Exodus\r\nEn el index.js troyanizado, las contraseñas ingresadas por el usuario se filtran a través de webhooks de Discord\r\nconfigurables y Telegram, empleando la API oficial de Telegram o un proxy de API de Telegram personalizado.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 13 of 26\n\nindex.js troyanizado\r\nExtracción de datos confidenciales de Chrome\r\nPara atacar a los navegadores basados en Chromium (Brave, Chrome, Edge) que se ejecutan en la versión 137, el\r\nmalware descarga un archivo zip que contiene una herramienta de descifrado de datos de Chrome desde\r\nhttps:\\/\\/github.com\\/Hyutop\\/pandakmc-auto-vote\\/blob\\/main\\/bin.zip.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 14 of 26\n\nRecuperación dinámica de la herramienta de descifrado de datos de Chrome\r\nEl repositorio de GitHub intenta hacer pasar por una herramienta de gestión de votaciones de Minecraft.\r\nRepositorio de GitHub con un README falso\r\nSin embargo, el archivo zip bin.zip contiene el código compilado (decrypt.exe y chrome_decrypt.dll) de la versión\r\n0.11.0 del proyecto PoC del descifrador vinculado a la aplicación Chrome de xaitax.\r\nHerramienta de descifrado de aplicaciones de Chrome de xaitax\r\nEnumeración del sistema\r\nUna vez activo, NOVABLIGHT ejecuta un conjunto integral de funciones de enumeración del sistema diseñadas para\r\ncrear un perfil completo de la máquina de la víctima y de la actividad del usuario. Cada módulo apunta a una pieza\r\nespecífica de información, que luego se almacena en un directorio local antes de cargar al servidor de comando y\r\ncontrol. Los ingenieros de detección deben tener en cuenta las implementaciones específicas de cada técnica y qué\r\nfuentes de datos proporcionan suficiente visibilidad.\r\ncaptureSystemInfo() :Recopila especificaciones extensas de hardware y software para identificar el\r\ndispositivo. Esto incluye el ID de hardware (HWID), los modelos de CPU y GPU, el tamaño de RAM, la\r\ninformación del disco, la versión del sistema operativo Windows y una lista de todos los dispositivos USB\r\nconectados.\r\nSalida: *configured_path*/System Info.txt\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 15 of 26\n\nRecopilación de información del sistema\r\ncaptureScreen() :Captura una captura de pantalla completa del escritorio de la víctima, lo que proporciona\r\ninformación inmediata sobre la actividad actual del usuario.\r\nMétodo: emplea la biblioteca de captura de pantalla de escritorio .\r\nSalida: Un archivo de imagen con marca de tiempo (por ejemplo, `configured_path/hostname_2025-10-\r\n26_14-30-00.png`).\r\ncaptureTaskList() :Obtiene una lista de todos los procesos que se están ejecutando actualmente para conocer\r\nla situación, lo que permite al atacante ver qué aplicaciones y herramientas de seguridad están activas.\r\nMétodo: ejecuta el comando tasklist /FO CSV /NH .\r\nSalida: *configured_path*/TaskManagerInfo.txt\r\ncaptureAVDetails() :Identifica el producto antivirus o de protección de puntos finales instalado consultando\r\nel Centro de seguridad de Windows.\r\nMétodo: ejecuta el comando de PowerShell Get-CimInstance -Namespace root/SecurityCenter2 -\r\nClassName AntiVirusProduct | Format-List\r\nSalida: *configured_path*/Avdetails.txt\r\ncaptureClipboardContent() : Vuelca el contenido actual del portapapeles del usuario, que puede contener\r\ninformación transitoria y confidencial, como contraseñas o mensajes copiados.\r\nMétodo: ejecuta el comando de PowerShell Get-Clipboard .\r\nSalida: *configured_path*/Clipboard.txt\r\ncaptureWebcamVideo() :Graba de forma encubierta un video empleando la cámara sitio web principal del\r\nsistema, proporcionando información visual sobre la víctima y su entorno.\r\nMétodo: aprovecha la biblioteca direct-synch-show para la captura de video.\r\nSalida: *configured_path*/Bighead.avi\r\ncaptureWifiPasswords() :Exfiltra las contraseñas de todas las redes Wi-Fi almacenadas en el dispositivo, lo\r\nque permite un posible movimiento lateral o acceso a otras redes que emplea la víctima.\r\nMétodo: ejecuta el comando netsh wlan show profile *wifi_ssid* key=clear para cada perfil.\r\nSalida: *configured_path*/WifiPasswords.txt\r\ngetFilesUrgents : Esta funcionalidad extrae archivos del disco según un conjunto de palabras clave como las\r\nsiguientes: copia de seguridad, default, code, discord, token, passw, mdp, motdepasse, mot_de_passe,\r\nlogin, secret, account, acount, apacht, banque, bank, matamask, wallet, crypto, exdous, 2fa, a1f, memo,\r\ncompone, finance, seecret, credit, cni, estos archivos se archivan como files.zip y luego se envían al C2.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 16 of 26\n\nRecopilación de archivos importantes\r\nExfiltración de datos\r\nHay 3 canales para los datos robados: el panel sitio web oficial propiedad del grupo NOVABLIGHT, la API de\r\nwebhook de Discord y la API de Telegram. El estado de estos canales es incierto, ya que la API de proxy principal y el\r\npanel sitio web están actualmente inactivos, lo que puede interrumpir la funcionalidad de los canales de Discord y\r\nTelegram si dependen de la misma infraestructura de proxy.\r\nEl panel sitio web alguna vez fue el canal oficial de exfiltración, ya que se publicitaba como su principal plataforma de\r\ngestión de datos.\r\nPanel de control en el panel sitio web de NOVABLIGHT\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 17 of 26\n\nLa implementación de Telegram primero intenta enviar los datos a una URL proxy configurada, el código verifica si la\r\nURL contiene la cadena req en este caso https://bamboulacity.nova-blight[.]xyz/req/dVukBEtL8rW2PDgkwdwfbNSdG3imwU8bZhYUygzthir66sXXUuyURunOin9s .\r\nSi la URL del proxy no está configurada o no cumple la condición, el módulo recurre a la comunicación directa con la\r\nAPI oficial de Telegram (en https://api.telegram[.]org/bot*token*/sendMessage ) empleando un userId, chatId y\r\nbotToken configurados para enviar los datos robados.\r\nCanal de exfiltración de datos: Telegram\r\nA diferencia del módulo Telegram, la implementación del webhook de Discord es mucho más simple. Emplea una\r\núnica URL para la exfiltración sin ningún mecanismo de respaldo. Las muestras analizadas emplearon\r\nconsistentemente la URL de proxy personalizada para este propósito.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 18 of 26\n\nCanal de exfiltración de datos: Discord\r\nNOVABLIGHT emplea una infraestructura redundante y de múltiples niveles. En lugar de depender de un único host\r\nde carga, lo que crearía un único punto de falla, el malware aprovecha una combinación de servicios legítimos de\r\nalojamiento de archivos de terceros y su propio backend dedicado. La siguiente es la lista extraída de dominios y\r\npuntos finales:\r\nhttps://bashupload[.]com\r\nhttps://litterbox.catbox[.]moe/resources/internals/api.php\r\nhttps://tmpfiles[.]org/api/v1/upload\r\nhttps://oshi[.]at/\r\nhttp://sendfile[.]su/\r\nhttps://wsend[.]net\r\nhttps://api.gofile[.]io/servers\r\nhttps://gofile[.]io/uploadFiles\r\nhttps://rdmfile[.]eu/api/upload\r\nhttps://bamboulacity.nova-blight[.]xyz/file/\r\nDatos específicos\r\nNOVABLIGHT ejecuta rutinas específicas diseñadas para robar credenciales y archivos de sesión de una lista\r\nespecífica de software instalado. La lista seleccionada está disponible en este GitHub Gist.\r\nTécnicas de ofuscación\r\nMapeo de matrices\r\nLa primera técnica que hay que abordar es el uso del mapeo de matrices por parte del malware. El script inicializa una\r\núnica matriz global grande __p_6Aeb_dlrArray con valores de diferentes tipos y codificaciones, lo que representa casi\r\ntodos los valores literales empleados en el script.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 19 of 26\n\nMatriz global principal empleada para búsquedas de valores\r\nLuego de sustituir las referencias del índice de la matriz, muchos fragmentos pequeños de cadenas que forman una\r\ncadena completa se dividen y concatenan en el tiempo de ejecución, pero en esta etapa, el número de versión de\r\nNOVABLIGHT se puede identificar fácilmente.\r\nResultados luego de corregir la asignación de matriz para __p_6Aeb_dlrArray\r\nCodificación de cadenas\r\nLa segunda técnica empleada para ocultar cadenas es el uso de la codificación base91. La función contenedora\r\n__p_xIFu_MAIN_STR se llama con un argumento entero.\r\nCadenas ofuscadas\r\nEl entero es un índice de una matriz secundaria que asigna __p_9sMm_array y que contiene cadenas codificadas.\r\nRecupera la cadena codificada y la pasa a la rutina de decodificación. __p_xIFu_MAIN_STR_decode .\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 20 of 26\n\nMatriz global empleada para la búsqueda por __p_xIFu_MAIN_STR\r\n__p_xIFu_MAIN_STR_decode Luego,\r\nlo decodificará empleando un alfabeto personalizado: vFAjbQox\\\u003e5?4K$m=83GYu.nBIh\\\u003cdrPaN\\^@%Hk:D_sSyz\"ER9/p,\r\n(*JwtfO)iUl\u0026C\\[~\\}\\{|Z+gX1MqL;60!e]T#2cVW7 y devolverá la cadena decodificada.\r\nLógica principal para la decodificación de cadenas\r\nOfuscación de patrones de acceso\r\nEn lugar de acceder directamente a los objetos y funciones, el código emplea objetos “proxy” intermedios aplanados\r\ncon claves destrozadas, envolviendo los objetos en otra capa de objetos para ocultar los patrones de acceso originales.\r\nPor ejemplo, a la función __p_LQ1f_flat_… se le pasa un objeto plano __p_w3Th_flat_object . Este objeto contiene\r\n3 descriptores de acceso para propiedades, uno de los cuales devuelve el indicador disabledNetwork recuperado de la\r\nconfiguración, y un contenedor para una llamada del despachador ( __p_jGTR_dispatcher_26 ). A lo largo del código,\r\nhay un patrón donde los nombres de propiedad comienzan con empretecerian.js , que también es el nombre del\r\narchivo de script. La función llamada puede entonces acceder a los objetos y funciones reales a través de este objeto\r\nplano rellenado por el llamador.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 21 of 26\n\nPatrón de ejemplo para objeto aplanado\r\nOfuscación del flujo de control\r\nParte de la ruta de ejecución del código se enruta a través de un despachador central, __p_jGTR_dispatcher_26 , en el\r\nque el primer nombre del argumento toma una cadena de identificación corta.\r\nLa firma de la función del despachador principal\r\nCada ID está asignado a una función distinta. Por ejemplo, el ID jgqatJ es referenciado por el módulo\r\nmodules/init/Troll.js y es responsable de un cuadro de mensaje emergente “troll”.\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 22 of 26\n\nAsignación del ID de función a la función real\r\nVariables proxy\r\nEn primer lugar, la ofuscación transforma la sintaxis de la función en “sintaxis de parámetros restantes”, que reemplaza\r\nlos parámetros con una matriz que almacena valores de variables en lugar de variables directas; luego, el código hace\r\nreferencia a la matriz con valores numéricos. Por ejemplo, la función __p_xIFu_MAIN_STR_decode no se llama con\r\nparámetros directos. En cambio, sus argumentos se colocan primero en la matriz __p_A5wG_varMask (línea 22) y la\r\nfunción está programada para recuperarlos de índices predefinidos. Por ejemplo, en la línea 25, el índice -36 de la\r\nmatriz almacena el índice del carácter \"c\" en una cadena almacenada en __p_A5wG_varMask[171] .\r\nFunción que emplea parámetros de reposo\r\nNOVABLIGHT y MITRE ATT\u0026CK\r\nElastic usa el framework MITRE ATT\u0026CK para documentar tácticas, técnicas y procedimientos comunes que las\r\namenazas persistentes avanzadas emplean contra las redes empresariales.\r\nTáctica\r\nEjecución\r\nPersistencia\r\nEvasión de defensa\r\nAcceso a credenciales\r\nDescubrimiento\r\nColección\r\nComando y control\r\nExfiltración\r\nTécnicas\r\nInformación o archivos ofuscados\r\nDescubrimiento de procesos\r\nIntérprete de comandos y scripting: PowerShell\r\nIntérprete de comandos y secuencias de comandos: JavaScript\r\nDatos en etapa de preparación: preparación de datos locales\r\nDetección de información del sistema\r\nDescubrimiento de archivos y directorios\r\nCaptura de pantalla\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 23 of 26\n\nDatos del portapapeles\r\nCaptura de video\r\nEvasión de virtualización/sandbox: comprobaciones del sistema\r\nEliminación del acceso a cuentas\r\nCredenciales de almacenes de contraseñas: Credenciales de navegadores sitio web\r\nDebilitar defensas: deshabilitar o modificar herramientas\r\nExfiltración a través de servicios sitio web: Exfiltración al espacio en la nube\r\nConclusión\r\nNOVABLIGHT muestra cómo incluso el malware menos conocido puede tener impacto. Al ofrecer una herramienta\r\npulida y fácil de usar a través de plataformas como Telegram y Discord, sus creadores hicieron que sea sencillo para\r\ncualquiera involucrar en el ciberdelito.\r\nAdemás, esta amenaza no es estática. Nuestro análisis confirma que NOVABLIGHT está en desarrollo continuo y\r\nactivo. Esta evolución continua garantiza que NOVABLIGHT seguirá siendo una amenaza persistente y relevante en el\r\nfuturo previsible.\r\nDetección de NOVABLIGHT\r\nYARA\r\nElastic Security creó reglas YARA para identificar esta actividad.\r\nrule Windows_Infostealer_NovaBlight {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2025-07-18\"\r\n last_modified = \"2025-07-28\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Infostealer\"\r\n family = \"NovaBlight\"\r\n threat_name = \"Windows.Infostealer.NovaBlight\"\r\n reference_sample = \"d806d6b5811965e745fd444b8e57f2648780cc23db9aa2c1675bc9d18530ab73\"\r\n strings:\r\n $a1 = \"C:\\\\Users\\\\Administrateur\\\\Desktop\\\\Nova\\\\\"\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 24 of 26\n\n$a2 = \"[+] Recording...\" fullword\r\n $a3 = \"[+] Capture start\" fullword\r\n condition:\r\n all of them\r\n}\r\nObservaciones\r\nEn esta investigación se discutieron los siguientes observables.\r\nObservable Tipo Nombre Referencia\r\ned164ee2eacad0eea9dc4fbe271ee2b2387b59929d73c843281a8d5e94c05d64\r\nSHA-256NOVABLIGHT\r\nVERSIÓN 2.2\r\n39f09771d70e96c7b760b3b6a30a015ec5fb6a9dd5bc1e2e609ddf073c2c853d\r\nSHA-256NOVABLIGHT\r\nVERSIÓN 2.1\r\n97393c27195c58f8e4acc9312a4c36818fe78f2ddce7ccba47f77a5ca42eab65\r\nSHA-256NOVABLIGHT\r\nVERSIÓN 2.0\r\napi.nova-blight[.]top Dominio\r\nPanel de\r\ncontrol de\r\nNOVABLIGHT\r\nshadow.nova-blight[.]top Dominio\r\nPanel de\r\ncontrol de\r\nNOVABLIGHT\r\nnova-blight[.]site Dominio\r\nPanel de\r\ncontrol de\r\nNOVABLIGHT\r\nnova-blight[.]xyz Dominio\r\nPanel de\r\ncontrol de\r\nNOVABLIGHT\r\nbamboulacity.nova-blight[.]xyz Dominio\r\nPanel de\r\ncontrol de\r\nNOVABLIGHT\r\nReferencias\r\nA lo largo de la investigación anterior se hizo referencia a lo siguiente:\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 25 of 26\n\nhttps:\\/\\/www.gatewatcher.com\\/lab\\/grupo-nova-sentinel\\/\r\nhttps:\\/\\/www.cyfirma.com\\/research\\/emerging-maas-operator-sordeal-releases-nova-infostealer\\/\r\nSource: https://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nhttps://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes\r\nPage 26 of 26",
	"extraction_quality": 1,
	"language": "ES",
	"sources": [
		"Malpedia"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://www.elastic.co/es/security-labs/maas-appeal-an-infostealer-rises-from-the-ashes"
	],
	"report_names": [
		"maas-appeal-an-infostealer-rises-from-the-ashes"
	],
	"threat_actors": [
		{
			"id": "9f101d9c-05ea-48b9-b6f1-168cd6d06d12",
			"created_at": "2023-01-06T13:46:39.396409Z",
			"updated_at": "2026-04-10T02:00:03.312816Z",
			"deleted_at": null,
			"main_name": "Earth Lusca",
			"aliases": [
				"CHROMIUM",
				"ControlX",
				"TAG-22",
				"BRONZE UNIVERSITY",
				"AQUATIC PANDA",
				"RedHotel",
				"Charcoal Typhoon",
				"Red Scylla",
				"Red Dev 10",
				"BountyGlad"
			],
			"source_name": "MISPGALAXY:Earth Lusca",
			"tools": [
				"RouterGod",
				"SprySOCKS",
				"ShadowPad",
				"POISONPLUG",
				"Barlaiy",
				"Spyder",
				"FunnySwitch"
			],
			"source_id": "MISPGALAXY",
			"reports": null
		},
		{
			"id": "18a7b52d-a1cd-43a3-8982-7324e3e676b7",
			"created_at": "2025-08-07T02:03:24.688416Z",
			"updated_at": "2026-04-10T02:00:03.734754Z",
			"deleted_at": null,
			"main_name": "BRONZE UNIVERSITY",
			"aliases": [
				"Aquatic Panda",
				"Aquatic Panda ",
				"CHROMIUM",
				"CHROMIUM ",
				"Charcoal Typhoon",
				"Charcoal Typhoon ",
				"Earth Lusca",
				"Earth Lusca ",
				"FISHMONGER ",
				"Red Dev 10",
				"Red Dev 10 ",
				"Red Scylla",
				"Red Scylla ",
				"RedHotel",
				"RedHotel ",
				"Tag-22",
				"Tag-22 "
			],
			"source_name": "Secureworks:BRONZE UNIVERSITY",
			"tools": [
				"Cobalt Strike",
				"Fishmaster",
				"FunnySwitch",
				"Spyder",
				"njRAT"
			],
			"source_id": "Secureworks",
			"reports": null
		},
		{
			"id": "6abcc917-035c-4e9b-a53f-eaee636749c3",
			"created_at": "2022-10-25T16:07:23.565337Z",
			"updated_at": "2026-04-10T02:00:04.668393Z",
			"deleted_at": null,
			"main_name": "Earth Lusca",
			"aliases": [
				"Bronze University",
				"Charcoal Typhoon",
				"Chromium",
				"G1006",
				"Red Dev 10",
				"Red Scylla"
			],
			"source_name": "ETDA:Earth Lusca",
			"tools": [
				"Agentemis",
				"AntSword",
				"BIOPASS",
				"BIOPASS RAT",
				"BadPotato",
				"Behinder",
				"BleDoor",
				"Cobalt Strike",
				"CobaltStrike",
				"Doraemon",
				"FRP",
				"Fast Reverse Proxy",
				"FunnySwitch",
				"HUC Port Banner Scanner",
				"KTLVdoor",
				"Mimikatz",
				"NBTscan",
				"POISONPLUG.SHADOW",
				"PipeMon",
				"RbDoor",
				"RibDoor",
				"RouterGod",
				"SAMRID",
				"ShadowPad Winnti",
				"SprySOCKS",
				"WinRAR",
				"Winnti",
				"XShellGhost",
				"cobeacon",
				"fscan",
				"lcx",
				"nbtscan"
			],
			"source_id": "ETDA",
			"reports": null
		},
		{
			"id": "d53593c3-2819-4af3-bf16-0c39edc64920",
			"created_at": "2022-10-27T08:27:13.212301Z",
			"updated_at": "2026-04-10T02:00:05.272802Z",
			"deleted_at": null,
			"main_name": "Earth Lusca",
			"aliases": [
				"Earth Lusca",
				"TAG-22",
				"Charcoal Typhoon",
				"CHROMIUM",
				"ControlX"
			],
			"source_name": "MITRE:Earth Lusca",
			"tools": [
				"Mimikatz",
				"PowerSploit",
				"Tasklist",
				"certutil",
				"Cobalt Strike",
				"Winnti for Linux",
				"Nltest",
				"NBTscan",
				"ShadowPad"
			],
			"source_id": "MITRE",
			"reports": null
		}
	],
	"ts_created_at": 1775434305,
	"ts_updated_at": 1775826766,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/6fa3223ffa21c9ab83c29aebfc8b96de05bff9a0.pdf",
		"text": "https://archive.orkl.eu/6fa3223ffa21c9ab83c29aebfc8b96de05bff9a0.txt",
		"img": "https://archive.orkl.eu/6fa3223ffa21c9ab83c29aebfc8b96de05bff9a0.jpg"
	}
}