Nueva variante de PamStealer usa intercambio X25519 en vivo para descifrar la carga útil

Autor: Publicada 7 min de lectura 12 lecturas

Las imágenes de este artículo han sido generadas con inteligencia artificial. Cómo publicamos

Investigadores de ciberseguridad han identificado una nueva variante de PamStealer que cambia su cadena de entrega y añade una barrera criptográfica que impide recuperar su carga útil sin la colaboración del servidor de control. Según el análisis publicado por Jamf Threat Labs y comentado por el investigador Thijs Xhaflaire, los atacantes mantienen el uso de un dropper basado en JavaScript for Automation (JXA) pero ahora lo usan únicamente como un vehículo para lanzar un script de shell que realiza un intercambio de claves en vivo con un servidor remoto y descarga un utilitario llamado "pkgunpack" que completa la descifrado del payload. Estos hechos están documentados por los investigadores y son la base confirmada de lo que sigue.

Técnicamente, la cadena de infección reportada funciona en varias fases. Primero la víctima es atraída a un sitio falso —wavel[.]app— que ofrece un supuesto monedero de criptomonedas llamado Wavel. Al pulsar "Download for macOS" se obtiene un archivo Wavel.dmg que contiene un AppleScript compilado; al abrirlo, el Script Editor ejecuta un fragmento de JXA que descodifica una cadena base64 y la redirige a /bin/zsh. Ese zsh decodificado continúa en segundo plano y realiza tres acciones críticas: descarga y ejecuta "pkgunpack" desde wavel.apple03cloudstore[.]com, realiza un intercambio de claves X25519 con el servidor para obtener la clave de descifrado (DEK) y finalmente descifra y despliega el paquete final del malware.

Nueva variante de PamStealer usa intercambio X25519 en vivo para descifrar la carga útil
Imagen generada con IA.

La novedad técnica crucial es el uso de un intercambio de claves asimétrico (X25519) que vincula la capacidad de descifrado a la cooperación del servidor remoto. Porque el servidor conserva la clave privada necesaria para completar el intercambio, un analista que capture el archivo cifrado no podrá recuperar el DEK ni el contenido del payload de forma estática. Además, los atacantes generan un par de claves efímero en cada ejecución, lo que evita que un valor DEK capturado en una ejecución previa sea reutilizado para descifrar otra instancia. En términos criptográficos esto hace que la muestra sea significativamente más difícil de analizar sin acceso a una sesión de comando y control en vivo; para entender X25519, puede consultarse el RFC correspondiente: RFC 7748 (X25519).

En paralelo a la protección criptográfica, los operadores han reforzado la persistencia y la resiliencia de la implantación. El instalador crea cuatro métodos redundantes de persistencia, suprime notificaciones de macOS que alertan sobre nuevos elementos de inicio de sesión, instala un script de reparación que restaura tanto el bundle malicioso como el LaunchAgent en caso de eliminación y agrega una línea al archivo ~/.zshrc para ejecutar el script de reparación en cada nueva sesión interactiva de zsh. Además, el script de reparación se copia en ~/Library/Application Support/System/.githooks/ y se configura globalmente como ruta de ganchos de Git (git config --global core.hooksPath), de modo que cualquier operación de git (checkout, commit) en cualquier repositorio activo en la máquina ejecutará silenciosamente ese script.

El último paso es la ejecución del componente ladrón escrito en Swift (un cambio respecto a versiones anteriores implementadas en Rust). Este binario recoge contraseñas —incluida la técnica de mostrar un falso diálogo de falla para persuadir a la víctima de introducir su contraseña, que luego valida mediante PAM— enumera elementos del llavero, roba credenciales de navegadores (una lista extensa que incluye tanto navegadores populares como alternativas menos comunes: Chrome, Edge, Firefox, Brave, Vivaldi, Opera, Arc, Zen, LibreWolf y otros), recopila historial y archivos de configuración del usuario (.zsh_history, .zshrc, .bash_history, .gitconfig), foto de perfil, procesos en ejecución e inventario de aplicaciones. Estos comportamientos de exfiltración están descritos por los investigadores y representan el objetivo operativo del malware.

¿A quién afecta? Principalmente a usuarios de macOS que descargan e instalan software fuera de canales oficiales o que desconfían de señales de seguridad (apps no firmadas, DMG no notarizados). La inclusión explícita de navegadores menos comunes y orientados a la privacidad (Arc, Zen, LibreWolf) sugiere que los operadores buscan una diversidad de víctimas, incluida gente que podría considerar que usa alternativas "más seguras". También quedan en riesgo desarrolladores y repositorios locales, porque la manipulación de core.hooksPath convierte cualquier operación de git en un vector de reactivación.

Consecuencias prácticas: la nueva arquitectura aumenta la dificultad para los equipos de respuesta y análisis: sin una sesión C2 activa no se puede obtener el payload descifrado para su análisis estático, por lo que la detección debe pivotar a señales dinámicas y de red. La persistencia oculta en git hooks y en ~/.zshrc aumenta la probabilidad de reinfección o de restauración del malware tras una eliminación inicial. Además, el robo de contraseñas, llavero y datos de navegador tiene implicaciones inmediatas de suplantación de cuentas, acceso a servicios financieros y fuga de secretos de desarrollo (tokens, claves almacenadas en .gitconfig o repositorios locales).

Datos confirmados frente a incertidumbres: es un hecho confirmado por Jamf Threat Labs y el investigador citado que la muestra incorpora el intercambio X25519, el uso de pkgunpack remoto y las técnicas de persistencia descritas. Es una estimación razonable —pero no confirmada públicamente— el alcance de la campaña (número de víctimas y si el C2 sigue operativo en este momento). Tampoco hay, hasta donde informan los investigadores, atribución firme sobre quién opera la infraestructura; esa conexión es incierta y requiere más investigación forense y correlación de inteligencia.

Nueva variante de PamStealer usa intercambio X25519 en vivo para descifrar la carga útil
Imagen generada con IA.

Medidas concretas que todo usuario y administrador de macOS debería tomar de inmediato: no montar ni ejecutar DMG o binarios de orígenes no verificados; comprobar si existen los artefactos mencionados (por ejemplo buscar ~/Library/Application Support/System/.githooks, inspeccionar ~/.zshrc en busca de hooks añadidos y revisar LaunchAgents recientes); auditar la configuración global de Git con git config --global --list para detectar core.hooksPath inusual; revisar elementos de inicio de sesión del sistema (Preferencias del Sistema → Usuarios y Grupos → ítems de inicio) y verificar procesos y conexiones de red sospechosas hacia dominios como wavel.apple03cloudstore[.]com. Usuarios avanzados y equipos de respuesta pueden emplear EDR o herramientas de monitorización de red para bloquear y registrar conexiones a dominios asociados y capturar tráfico para análisis.

Además, y de forma preventiva: activar Gatekeeper y exigir apps notarizadas, mantener macOS y software de seguridad actualizados, cambiar contraseñas sensibles y revocar credenciales que podrían haber sido expuestas (especialmente si existe sospecha de haber abierto el DMG), y habilitar 2FA donde sea posible. Si se detecta la presencia de los artefactos descritos, considere desconectar la máquina de la red para impedir exfiltración y contactar a su equipo de respuesta o a un proveedor forense. Para entender las técnicas de persistencia y cómo se mapearían a marcos de amenazas puede consultarse MITRE ATT&CK (por ejemplo la técnica de Launch Agents): MITRE ATT&CK - Launch Agent.

Finalmente, es importante que los equipos de detección y respuesta ajusten sus reglas para buscar los patrones de comportamiento: ejecución de Script Editor que invoca JXA que decodifica y canaliza a zsh, descargas desde dominios no habituales, creación de rutas globales de hooks de Git y modificación de ~/.zshrc. Dado que el cifrado en vivo limita el análisis estático, las mejores oportunidades para entender y mitigar la amenaza pasan por la identificación temprana de la fase de entrega y por la captura de tráfico de red en tiempo real. Para quienes investigan técnicas de intercambio de claves y su implicación en malware, el estándar X25519 es un buen punto de referencia técnico: RFC 7748 (X25519).

Cobertura

Relacionadas

Mas noticias del mismo tema.