Los investigadores de ciberseguridad han revelado los detalles de un nuevo ladrón de información orientado a macOS llamado AmnesiaStealer, escrito en Rust y capaz de secuestrar navegadores Chromium para robar datos de sesión.

El ladrón de múltiples etapas se distribuye a través de una página falsa de descarga en GitHub titulada 'Download for macOS' que afirma ser de un editor verificado. La página emplea una táctica ClickFix que instruye a los usuarios a copiar y pegar un comando codificado en Base64 en la aplicación Terminal de macOS.

La cadena de ataque finalmente conduce al despliegue de AmnesiaStealer a través de un script de descarga alojado en un servidor remoto, que según Jamf Threat Labs, se ejecuta en tres etapas distintas.

La primera es un script de shell que descarga y lanza el payload; la segunda es un ladrón de Rust que extrae datos de Keychain, navegadores, Apple Notes y Telegram; la tercera es un módulo de flujo que, bajo demanda, otorga al operador control interactivo oculto del navegador de la víctima.

El script está diseñado para recuperar un archivo ZIP protegido con contraseña y eliminarse a sí mismo del sistema. Del archivo se extrae el binario Mach-O de primera etapa, un ladrón de Rust que incluye una configuración cifrada integrada que puede modificarse a nivel de compilación mediante el archivo de configuración sin realizar cambios en el código.

  • - Puntos finales de comando y control (C2) (por ejemplo, 'debug.allllowef[.]space/send/')
  • - Habilita o deshabilita un módulo de secuestro del portapapeles (o clipper) ('CLIPPER_ENABLED') capaz de apuntar a criptomonedas como Bitcoin, Bitcoin Cash, Ethereum, TRON, Litecoin, Monero, Solana, Ripple y Cosmos (ATOM).

El payload de Rust también realiza reconocimiento del sistema y perfilamiento de geolocalización, y muestra un mensaje nativo para capturar la contraseña del sistema bajo la apariencia de un instalador. La contraseña ingresada se valida contra el directorio local mediante dscl para garantizar que solo la contraseña correcta sea exfiltrada.

Si la verificación falla, se activa un bucle de diálogo con el mensaje 'Contraseña incorrecta. Inténtelo de nuevo.' hasta que se introduzca la contraseña correcta. Además, se incluye una ruta alternativa que escribe /tmp/tempAppleScript.scpt e invoca osascript si el cuadro de diálogo nativo falla, aunque en el host de prueba la ruta nativa tuvo éxito y no se mostró ningún aviso de osascript.

La contraseña capturada se reutiliza a lo largo de la cadena: se introduce a través de sudo -S para lecturas privilegiadas, se pasa a security unlock-keychain -p y se escribe en disco en texto claro, tanto en el directorio de staging como pwd como en el directorio personal del usuario como ~/.pwd.

Este comportamiento también se ha observado en otra familia de ladrones para macOS llamada ClickLock Stealer, que se dirige a usuarios en Europa, Norteamérica, Medio Oriente y África a través de páginas de phishing que emplean la técnica ClickFix.

También está presente un archivo AppleScript que silencia el sonido del sistema y procede a extraer datos de Apple Notes, sesiones de Telegram, Safari, archivos que coinciden con ciertas extensiones (.txt, .pdf, .rtf, .doc, .wallet, .key, .jpg, .png y .csv) en las carpetas ~/Desktop, ~/Documents y ~/Download, y Keychain de iCloud utilizando la contraseña del sistema capturada.

  • - Apunta a 16 navegadores de la familia Chromium, incluidos Google Chrome, Brave, Arc y Microsoft Edge, para recopilar cookies, datos de inicio de sesión, datos de inicio de sesión de cuentas, Web Data, historial, marcadores, Local State, preferencias y el directorio de extensiones.
  • - Lee la contraseña de almacenamiento seguro de Chrome desde el Keychain y la usa para recuperar las claves maestras que protegen los datos almacenados en el perfil de Chrome del usuario.
  • - Roba cookies de Safari según la versión de macOS, utilizando una vulnerabilidad de omisión de TCC (CVE-2020-9771) para apuntar a máquinas que ejecutan Catalina. La técnica también funciona en macOS 26 pero solo cuando el malware tiene acceso completo al disco (el cual no posee).
  • - Establece persistencia mediante un LaunchDaemon de root que suplanta al servicio de informes de fallos de Apple.
  • - Almacena los datos recopilados en un directorio con nombre de 25 caracteres alfanuméricos aleatorios bajo /tmp y luego los archiva y exfiltra.

Además, el comando 'remote_stream' emitido por el servidor C2 se convierte en un desencadenante para que el payload de primera etapa obtenga y ejecute un segundo binario de Rust desde la misma infraestructura que permite el control remoto interactivo a través del protocolo Chrome DevTools (CDP).

El módulo es compatible con siete navegadores de la familia Chromium: Chrome, Brave, Microsoft Edge, Arc, Opera, Vivaldi y Chromium, y lanza el ejecutable del navegador en modo headless para robar datos relacionados con el navegador. También genera un canal de retransmisión mediante WebSocket para aceptar órdenes del operador y reportar el estado al mismo punto final. Los comandos permiten al actor de amenazas controlar remotamente el navegador y facilitar la presión de teclas, clics del ratón, desplazamiento, navegación y gestión de pestañas.

Para evitar que las sesiones headless sean marcadas como automatización por los sitios visitados por el malware, el módulo inyecta un script que parchea varias API de huella digital del navegador. No tiene persistencia propia y se ejecuta bajo el payload principal.

El operador recibe una transmisión de pantalla en vivo de la sesión a aproximadamente 3 fps y puede controlarla con un conjunto completo de entradas: teclado, ratón, desplazamiento, navegación y gestión de pestañas. Estas se traducen en llamadas CDP al navegador headless en tiempo real. Esto es una sesión de navegador oculta controlada manualmente, no un volcado automatizado.

En efecto, el comando remote_stream convierte un host infectado en un navegador en vivo controlado por el operador que puede acceder a las sesiones autenticadas de la víctima, lo que supone un nivel de acceso materialmente diferente al de la recopilación de archivos.

Si bien los objetivos generales del malware son consistentes con otros ladrones como Atomic Stealer, MacSync y CrashStealer, tres aspectos lo diferencian: una configuración impulsada por el constructor, una lógica ramificada por versión del sistema operativo que aprovecha omisiones de macOS ya parcheadas por Apple, y una segunda etapa de control remoto que permite a los atacantes robar cookies y evadir detección mediante un script sigiloso que parchea las API de huella digital del navegador.

AmnesiaStealer recibe su nombre de una página de inicio de sesión ubicada en la raíz del host C2 con el nombre 'Amnesia Panel'. Un inicio de sesión fallido devuelve un mensaje de error en ruso que insta a los usuarios a proporcionar un inicio de sesión o contraseña correctos para acceder al panel del operador.

AmnesiaStealer se propone recopilar credenciales, datos del navegador y sesiones en vivo de usuarios de macOS, y cumple con algunas de sus promesas más que otras. Un recopilador funcional combinado con una etapa funcional de secuestro del navegador, envuelto en algunas omisiones obsoletas, es lo que hace que valga la pena rastrearlo.
Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity