Buscaba trabajo e instaló un troyano: cómo el reclutamiento web3 falso roba monederos de criptomonedas

Buscaba trabajo e instaló un troyano: cómo el reclutamiento web3 falso roba monederos de criptomonedas

Bajo la apariencia de una plataforma de IA para reuniones en línea, los atacantes distribuyen malware capaz de acceder a claves, contraseñas, sesiones de navegador y datos de monederos de criptomonedas. Analizamos todo el escenario del ataque, desde el primer mensaje del reclutador hasta el envío de la información robada a servidores remotos.

5 ago 2026

Recientemente, investigadores de seguridad informática descubrieron una nueva campaña de distribución de malware dirigida a empleados de empresas Web3. Los atacantes se hacen pasar por reclutadores, contactan a los candidatos con el pretexto de organizar una entrevista y luego proponen continuar la conversación a través del sitio relay.lc.

Un mensaje de Telegram del reclutador falso
Un mensaje de Telegram del reclutador falso

A primera vista, el recurso parece bastante creíble. Se presenta como una plataforma moderna para reuniones en línea impulsada por inteligencia artificial. El sitio anuncia funciones como la transcripción automática de las conversaciones en tiempo real, notas colaborativas, resúmenes de IA de los resultados de las reuniones, listas de tareas y aplicaciones de escritorio para Windows y macOS.

El sitio web relay.lc
El sitio web relay.lc

Para alguien que está en una entrevista remota, este escenario parece completamente normal. La solicitud de instalar una aplicación especial antes de la siguiente etapa de la entrevista no genera sospechas. Es más, las páginas del sitio refuerzan la confianza: describen en detalle las capacidades del servicio y ofrecen descargas del programa tanto para Windows como para macOS.

Lo que ocurre tras la instalación

En los ordenadores Mac, se pide al usuario que abra la aplicación Terminal, arrastre el archivo descargado a su ventana y pulse Enter.

En Windows parece aún más sencillo: basta con ejecutar el instalador y esperar a que finalice el proceso. En la pantalla aparece una ventana con una barra de progreso de actualización que se llena lentamente hasta alrededor del 80%.

A primera vista, una opción recuerda a una instalación manual corriente y la otra a una actualización de software estándar. Sin embargo, al examinar el contenido de los instaladores, resulta que todo está organizado de una forma muy distinta.

Infección de macOS: instalación a través de Terminal

No hay una aplicación real dentro de la imagen de disco. El archivo Relay.dmg es una imagen de disco de macOS corriente. Por lo general, los programas legítimos para este sistema operativo se distribuyen como un paquete .app que el usuario simplemente arrastra a la carpeta Aplicaciones.

No hay dentro ni una aplicación .app estándar ni un paquete instalador .pkg. Además, el verdadero ejecutable está oculto en el directorio .back, que Finder no muestra de forma predeterminada.

Arrastrar a Terminal no es una instalación

Los autores incluso dejaron comentarios en los que explican que renunciaron al procedimiento oficial de firma digital y notarización de Apple por el deseo de «reducir la complejidad» y «hacer el proceso más simple y transparente». En realidad, es precisamente aquí donde se esconde el punto clave del ataque.

Cómo los atacantes eluden la protección integrada de macOS

El comando que utilizan los atacantes elimina este atributo de cuarentena. En el proceso no se explota ninguna vulnerabilidad de macOS. El propio usuario abre Terminal y ejecuta el script propuesto, que por sí solo retira la marca de protección del archivo malicioso.

Como resultado, lo que parece una instalación manual corriente se convierte, en la práctica, en la desactivación de uno de los mecanismos de seguridad integrados del sistema operativo.

Robo de contraseñas y datos de Keychain

Dentro del ejecutable oculto, muchas cadenas que contienen datos sensibles están cifradas con una clave fija. Gracias a ello, no se pueden encontrar mediante una búsqueda corriente entre las cadenas de texto del programa.

Una vez descifradas, queda claro que el programa contiene dos direcciones remotas:

También se encuentra un script de AppleScript que imita una ventana del sistema de macOS:

«La versión actual de la aplicación no es totalmente compatible con su versión de macOS. Para que el programa funcione correctamente, introduzca la contraseña de su sistema.»

La ventana tiene el título Application Error y parece una alerta del sistema auténtica. El campo de entrada enmascara los caracteres escritos con puntos, por lo que el usuario puede confundirla fácilmente con una solicitud estándar de macOS de contraseña de administrador.

Sin embargo, esta ventana no tiene nada que ver con la autenticación del sistema. Es un diálogo de AppleScript corriente, creado con el único fin de capturar la contraseña del usuario. Una vez introducida, la contraseña se guarda en el programa bajo la etiqueta PWD y se prepara para su posterior envío por Internet.

Robo del llavero Keychain

La recopilación de datos no termina ahí. El malware contiene código que permite leer el archivo:

Tras descifrar el código, queda claro que a los atacantes les interesan dos objetos a la vez:

Una vez obtenidos el archivo Keychain y la contraseña correspondiente, pueden intentar abrir esta base de datos en su propio ordenador y acceder a todas las credenciales almacenadas en ella.

Telegram, Apple Notes y los datos del sistema en peligro

Además de los datos de los navegadores, el programa contiene código para robar información de Telegram Desktop. Intenta acceder al directorio tdata, donde Telegram almacena los datos locales de autorización y de la sesión de usuario activa.

Si los atacantes consiguen copiar este directorio, pueden restaurar la sesión de Telegram existente en otro ordenador y acceder a la cuenta sin necesidad de volver a introducir el número de teléfono ni el código de confirmación.

No menos interesante es el módulo destinado a recopilar datos de Apple Notes. El programa recorre secuencialmente todas las cuentas, carpetas y notas del usuario, lee el contenido de cada entrada y lo guarda en un archivo HTML independiente, usando el título de la nota como nombre del archivo.

Asimismo, comprueba la presencia de aplicaciones populares para trabajar con monederos de criptomonedas por hardware: Ledger Live y Trezor Suite.

Por qué el troyano sigue funcionando tras cerrar Terminal

Durante la investigación, los especialistas también comprobaron si existían mecanismos que permitieran al malware ejecutarse automáticamente tras cada reinicio del ordenador.

Según los datos disponibles, no se encontraron indicios de un mecanismo que garantizara el arranque automático tras un reinicio de macOS. No obstante, el comando nohup utilizado en el lanzamiento permite que el proceso malicioso siga funcionando incluso después de cerrar la ventana de Terminal.

Dicho de otro modo, el usuario puede pensar que la instalación ha terminado y que el programa se puede cerrar, mientras que el proceso malicioso sigue ejecutándose en segundo plano hasta completar sus tareas.

A juzgar por la estructura del programa, su objetivo principal es recopilar en una sola ejecución la mayor cantidad posible de datos, empaquetarlos y enviarlos a un servidor remoto.

A diferencia de la versión para macOS, la variante para Windows utiliza varios mecanismos de persistencia a la vez, creando entradas en las secciones Run y RunOnce del registro de Windows y colocándose en la carpeta de inicio incluso antes de que comience el robo principal de datos.

Infección de Windows: una pantalla de actualización falsa

El usuario ve una «actualización» que en realidad no existe. La versión del programa para Windows es un ejecutable autoextraíble creado con el instalador NSIS.

Tras la extracción, en su interior hay una aplicación desarrollada sobre Electron versión 2.9.0. Es ella la que muestra al usuario una interfaz con el logotipo de Relay y una barra de progreso en constante movimiento. Durante la «actualización», en la pantalla aparecen sucesivamente los mensajes:

Todo ello crea la impresión de que realmente se está produciendo una actualización del programa. Sin embargo, el análisis del código reveló un panorama completamente distinto. La barra de progreso no tiene relación alguna ni con la descarga de archivos, ni con la comprobación del sistema, ni con la instalación de la aplicación.

Su valor empieza en el 4% y luego, cada 1.4 segundos, aumenta en un número aleatorio de 0 a 11. Los mensajes también cambian automáticamente en función únicamente del valor de la barra de progreso y no reflejan en absoluto las acciones reales del programa.

Cuando el indicador alcanza el 80%, el proceso se detiene de repente. Pero, en lugar de finalizar la instalación, la aplicación envía un mensaje interno llamado runUpdate. Es justo después de esto cuando comienza la siguiente etapa del ataque.

El virus intenta obtener permisos de administrador

Cuando el indicador de carga alcanza el 80%, la aplicación envía el comando interno runUpdate.

Durante el análisis del código se descubrió un módulo que recibe este comando. Junto a él, los especialistas encontraron la ruta al archivo updater.exe y un comando de PowerShell destinado a ejecutarlo:

Este comando hace varias cosas a la vez. En primer lugar, desactiva la política de seguridad estándar de PowerShell, lo que permite ejecutar el programa sin restricciones adicionales. Después solicita la elevación de privilegios mediante el mecanismo de Control de cuentas de usuario de Windows (UAC). A continuación, ejecuta el proceso en modo oculto para que el usuario no vea ninguna ventana adicional.

El propio archivo updater.exe tiene un tamaño de unos 116 MB y no contiene ninguna firma digital que confirme su origen. Es más, en su configuración se indica explícitamente que necesita permisos de administrador para funcionar.

La investigación mostró que dentro de este archivo hay módulos destinados a recopilar información de los navegadores, Telegram, monederos de criptomonedas de escritorio y del propio sistema operativo.

Además, el programa incluye otro ejecutable integrado. Su tarea es mucho más limitada: garantizar la persistencia del malware en el sistema tras el reinicio del ordenador y analizar la memoria de los procesos de los navegadores Chrome y Brave.

Cómo se afianza el troyano en el sistema

El módulo integrado tiene el nombre interno callsoul. Tras su ejecución, lo primero que hace es intentar garantizar su arranque automático tras cada reinicio de Windows.

Para ello, el programa se copia en el directorio:

Tras la copia, al archivo se le asignan los atributos oculto y de sistema, por lo que en el Explorador de Windows estándar el usuario no lo verá sin activar la visualización de archivos ocultos.

Después, el programa intenta registrarse de varias formas independientes a la vez. Crea entradas en la sección Run del registro del sistema, luego hace lo mismo en la sección RunOnce y, además, añade un acceso directo a la carpeta de inicio de Windows.

Para ello utiliza nombres del todo inofensivos, WindowsSysUpdateCheck y Windows Update, para que las entradas parezcan componentes del propio sistema operativo y no despierten sospechas.

El programa no se limita a un único método de persistencia. Utiliza los tres de forma consecutiva. Basta con que funcione al menos uno de ellos para que el malware pueda ejecutarse automáticamente tras cada reinicio del ordenador. Solo tras terminar sus intentos de afianzarse en el sistema, el programa pasa a la siguiente etapa: el análisis de la memoria de los procesos de los navegadores.

Análisis de la memoria de los navegadores Chrome y Brave

La característica más inusual de la versión para Windows es que no se limita a robar los archivos de perfil de los navegadores, como hace la mayoría del malware de este tipo.

En su lugar, intenta acceder directamente a la memoria de los procesos en ejecución de Chrome y Brave. Primero, el programa recorre todos los procesos activos de Windows y busca aquellos que pertenecen a Chrome o Brave y que, además, se encargan del funcionamiento de las extensiones del navegador.

Tras encontrar el proceso adecuado, lo abre con permisos que le permiten leer el contenido de la memoria. Luego examina secuencialmente las regiones de memoria asignadas, extrayendo todos los datos disponibles.

La información obtenida se analiza en busca de la cadena syncPasswordAndUnlockWallet, el nombre interno de un método relacionado con el desbloqueo de monederos de criptomonedas que funcionan como extensiones del navegador.

Si se encuentra dicha cadena, el programa intenta extraer los parámetros cercanos contenidos en una estructura JSON. Son precisamente estos valores los que después se preparan para su envío a un servidor remoto.

Los datos robados se envían a un servidor remoto

Tras extraer la información de la memoria del navegador, el programa forma un pequeño objeto JSON que incluye tres valores: el identificador único de la copia de Windows instalada (MachineGuid), el parámetro relacionado con la extensión del navegador encontrado en la memoria y una indicación del navegador del que procedían los datos, Chrome o Brave.

Después, el programa intenta enviar los datos formados mediante una solicitud HTTPS a un servidor remoto en la dirección:

Es precisamente esta dirección la que se utiliza como canal principal para transmitir la información más valiosa que el malware consigue recopilar.

Un canal adicional de transmisión de información a través de Sentry

La investigación también mostró que el programa utiliza el servicio Sentry.

Sin embargo, en este caso se utiliza de una forma completamente distinta.

En distintas partes del código se encontraron llamadas a funciones que envían a Sentry mensajes sobre el progreso del programa, los errores que surgen y sus distintas etapas. Junto a ellos se transmite también información de servicio adicional: el identificador del ordenador, el identificador del proceso, el nombre del navegador utilizado y las designaciones internas de las etapas de trabajo del programa, por ejemplo Init, Conn y Success.

De especial interés es el gestor encargado de enviar los resultados de la solicitud POST principal. En esta parte del código, los especialistas descubrieron que la estructura de datos que contiene los parámetros h, v y b también se transmite a través de Sentry.

A pesar de ello, el canal principal para la transmisión de información confidencial sigue siendo el servidor cdnresolver.com. El uso de Sentry probablemente sirve como una herramienta adicional que permite a los operadores del malware controlar el éxito de las infecciones y hacer seguimiento del funcionamiento de su propio software.

Otra coincidencia resulta llamativa. Al analizar la versión para macOS se detectaron los mismos dominios e1.cdnresolver.com y a2.cdnresolver.com. Aunque los instaladores para macOS y Windows están construidos con tecnologías completamente distintas, ambos acaban comunicándose con la misma infraestructura.

Sentry como canal adicional de transmisión de datos

Al analizar la versión para Windows, los investigadores descubrieron otro detalle interesante. Dentro del bytecode compilado del proceso principal quedó una cadena:

No tiene ninguna relación con la marca Relay bajo la que se distribuía la aplicación. Además, el nombre del archivo sysupdwin.exe, en el que el programa se copia a sí mismo tras su ejecución, así como la entrada WindowsSysUpdateCheck que se crea en el registro del sistema, tampoco se corresponden con la identidad de Relay.

Los nombres de estos procesos coinciden por completo con los que se utilizan en la muestra estudiada.

No obstante, los autores del estudio subrayan que no lograron obtener la muestra original de FYMeet. Por eso, hoy por hoy solo se puede hablar de una coincidencia en los nombres de archivos y en algunos elementos de la infraestructura. Es prematuro concluir que ambas campañas están organizadas por el mismo grupo de atacantes o que comparten un código fuente común.

Conclusiones: una sola ejecución, acceso a todos los datos

La investigación comenzó tras los avisos de miembros de la comunidad que se fijaron en el sitio relay.lc. Durante el análisis se descubrió que los atacantes habían preparado dos escenarios de infección completamente distintos, uno para usuarios de macOS y otro para Windows. A pesar de las diferencias en su implementación, ambos instaladores persiguen el mismo objetivo: obtener el acceso más amplio posible a los datos confidenciales de la víctima.

Toda la cadena del ataque está construida teniendo en cuenta los hábitos de los usuarios de cada sistema operativo.

En macOS, los atacantes utilizan un truco inusual pero psicológicamente convincente. Se pide al usuario que instale la aplicación arrastrando un archivo a la ventana de Terminal. A primera vista, esto parece un método de instalación poco habitual pero del todo admisible. En la práctica, sin embargo, se ejecuta un script que elimina la marca de origen del archivo del sistema, eludiendo una de las advertencias de seguridad integradas de macOS, y después lanza el malware de forma encubierta.

En Windows se aplica un enfoque completamente distinto. En su lugar, el usuario ve una pantalla de actualización verosímil con una barra de progreso. En el mejor de los casos, el paso a la siguiente etapa se produce al cabo de unos diez segundos, aunque el tiempo máximo de espera no está limitado en absoluto en el código. En cuanto la barra alcanza el 80%, el programa envía el comando interno runUpdate. El análisis del bytecode mostró que después debe ejecutarse el archivo sin firmar updater.exe, y con una solicitud de permisos de administrador.

El enfoque para robar los datos también difiere según la plataforma.

En la versión para macOS se muestra al usuario una ventana del sistema falsa que le pide introducir la contraseña. Al mismo tiempo, el programa accede a la base de datos Keychain, donde se almacenan contraseñas y otros datos secretos. Después, la contraseña introducida y el contenido de Keychain se combinan en un único paquete destinado a enviarse a un servidor remoto.

En Windows, el énfasis principal está en la persistencia del programa en el sistema y en el posterior análisis de la memoria de los navegadores Chrome y Brave. El malware busca información relacionada con el desbloqueo de monederos de criptomonedas, extrae los parámetros necesarios y los transmite a la infraestructura remota en una solicitud JSON especialmente formada.

La investigación muestra que el daño potencial es mucho más amplio que el compromiso de un único monedero de criptomonedas.

El código del programa contiene módulos o referencias directas a mecanismos de recopilación de datos de navegadores, gestores de contraseñas, el contenido de Keychain, los datos locales de Telegram, las notas de Apple Notes y diversa información sobre el dispositivo. Esto significa que, tras una sola infección exitosa, los atacantes pueden acceder potencialmente no solo a los datos personales del usuario, sino también a cuentas corporativas, servicios en la nube, sistemas internos de la empresa y otros recursos críticos.

Recomendaciones para los afectados

Si el archivo solo se descargó pero el usuario no lo ejecutó, basta con eliminar el archivo DMG o EXE descargado, vaciar la Papelera y bloquear todos los dominios, URL y hashes enumerados en la investigación mediante filtrado DNS, pasarelas de seguridad o soluciones EDR.

Si el malware se ejecutó en macOS (el usuario arrastró el archivo a Terminal y pulsó Enter), el dispositivo debe desconectarse de inmediato de la red pero, a ser posible, no reiniciarse hasta que finalice el análisis forense.

Si el usuario introdujo la contraseña en la ventana falsa, hay que partir de que los atacantes podrían haber obtenido tanto la propia contraseña como el contenido de Keychain.

Si la infección se produjo en Windows, el ordenador debe aislarse de inmediato de la red y hay que detener cualquier acción relacionada con la introducción de contraseñas o el desbloqueo de monederos de criptomonedas.

Si se usaban monederos de criptomonedas en el navegador, hay que dar por supuesto que los datos relacionados con su desbloqueo podrían haber quedado expuestos, y trasladar los activos a nuevos monederos creados en un dispositivo seguro.

Todas las recomendaciones anteriores se basan en una evaluación de riesgos lo más conservadora posible, partiendo de las capacidades que se confirmaron durante el análisis del código.

Es importante tener en cuenta que el malware analiza parámetros que ya están presentes en la memoria de las extensiones del navegador o que aparecen allí durante su funcionamiento. Además, las cookies y los tokens robados pueden seguir siendo válidos incluso sin cambiar la contraseña. Por eso, la investigación de este tipo de incidentes no debe limitarse a comprobar si se robaron activos de criptomonedas; las consecuencias de una infección pueden resultar mucho más amplias.

#Hackeo#Criptofraude
Reclutamiento web3 falso: cómo una app de IA roba datos personales y contraseñas