Cómo una búsqueda en Google de Claude llevó a MacSync

Imagina esto: acabas de abrir una Macbook nueva y ahora estás descargando todas tus aplicaciones favoritas. Escribes "Cómo instalar Claude Code en una Mac" en Google y haces clic en el primer enlace de la página. 

Te aparece lo siguiente: 

Figura 1: Una conversación de Claude compartida a la que podrías haber sido dirigido tras hacer clic en un resultado de búsqueda patrocinado de Google

Se ve legítimo, ¿verdad? Incluso tiene una insignia que indica que fue compartido por Apple Support. Pero mira más de cerca. Aunque es una página real alojada en el dominio real claude.ai, esta conversación compartida te indica que pegues una línea de código curl en Terminal, que termina descargando un infostealer malicioso. En lugar de Claude, obtienes MacSync. 

Cuando un cliente de Huntress cayó en esta campaña de malvertising en julio, apagó instintivamente su dispositivo cuando las cosas empezaron a verse sospechosas. Normalmente, esto evitaría que nuestro Centro de operaciones de seguridad (SOC) analizara ciertos artefactos del ataque después de responder a él. Pero encontramos la forma de saltarnos al intermediario y extrajimos una muestra del malware directamente de los servidores del atacante. 

Los analistas del SOC de Huntress Ryan Dowd y Josh Kiriakoff explicaron el señuelo de malvertising y las seis etapas de la cadena de ataque de MacSync en la edición de este mes de Tradecraft Tuesday. Lee su blog para conocer todos los detalles técnicos y mira los puntos destacados del episodio a continuación. 

Los resultados de búsqueda patrocinados no siempre son solo anuncios molestos 

Después de buscar "Cómo instalar Claude en una Mac", la víctima hizo clic en una publicación patrocinada de Google Ads. En efecto, la víctima fue llevada al dominio legítimo de Anthropic, claude.ai, pero a una página de conversación compartida públicamente en lugar de la guía de instalación oficial. El atacante eligió el nombre de visualización "Apple Support" para que pareciera que Apple y Anthropic compartían las instrucciones de descarga conjuntamente. Usando una táctica conocida como "ClickFix", la guía falsa indica a los usuarios que copien y peguen una línea de código en su Terminal: en este caso, un comando curl con un cargador zsh que inicia una cadena de ataque de seis pasos.

No es la primera vez que Huntress observa resultados de búsqueda envenenados que dirigen a los usuarios a instrucciones de ClickFix alojadas en IA: detectamos conversaciones maliciosas de ChatGPT y Grok que entregaban AMOS Stealer en 2025, y más recientemente, una campaña falsa de Claude Desktop que distribuyó  SectopRAT. Pero Ryan señaló que esta muestra de MacSync tiene una cadena de ataque mucho más completa en comparación con otros payloads de ClickFix que Huntress ha observado, afirmando que tiene "todos los adornos posibles". 

Ingeniería inversa de MacSync Stealer 

Partiendo del comando curl (encontrado en la telemetría de Elastic), Josh reconstruyó la solicitud que hace el cargador y, usando un User-Agent de macOS falsificado y una api-key estática, extrajo ese primer payload directamente de los servidores del atacante. 

Esta muestra de MacSync está compuesta por seis componentes que preparan el terreno para el siguiente:

  1. Un cargador zsh ligero

  2. Un payload decodificado con una daemon_function en segundo plano

  3. Un stealer de AppleScript del lado del servidor que mantiene la lógica valiosa fuera del endpoint y detrás de una puerta api-key

  4. Un RAT nativo en Mach-O para acceso manual

  5. Un ayudante firmado por separado, diseñado para robar un único permiso de TCC (Grabación de pantalla) 

  6. Un conjunto de troyanos para aplicaciones de billeteras

MacSync recopila cookies y accesos del navegador, secretos del llavero, contraseñas de cuentas, sesiones de Telegram, y claves de SSH y de la nube. Esta muestra también suplanta extensiones de navegador de billeteras, aplicaciones de billeteras de escritorio y tres aplicaciones complementarias de billeteras de hardware troyanizadas, en un intento de obtener frases de recuperación de criptomonedas mediante phishing. 

Figura 2: Las seis etapas de la cadena de ataque de MacSync Stealer y RAT que observamos

Etapa 1:  El envoltorio del cargador ZSH 

El comando curl inicial devuelve un script de carga zsh diminuto, de 1.442 bytes. Este cargador es un envoltorio de tres líneas alrededor de un payload comprimido en gzip y codificado en Base64, entregado como un heredoc.

Josh mostró rápidamente cómo decodificó el payload usando CyberChef, señalando los primeros cuatro "bytes mágicos" de la línea Base64 que revelaban que era un archivo gzip. 

Como el envoltorio es polimórfico, cada compilación cambia según el token de víctima entregado por el atacante. Josh señaló que "no puedes detectarlo por el hash, tienes que detectarlo por el comportamiento". Ryan sugirió crear lógica de detección alrededor de los disparadores de curl y el contenido en Base64 dentro de shell.

Etapa 2:  Ejecución en memoria

La etapa 2 es el payload inflado que se ejecuta en segundo plano. Una sola función de zsh, daemon_function, tiene tres tareas:

  • Obtener y ejecutar: ejecuta el AppleScript de la etapa 3 en memoria

  • Exfiltrar: sube el archivo con los datos robados (/tmp/osalogging.zip)

  • Limpiar: minimiza el rastro en el disco

La víctima no ve nada de esto en Terminal. Como lo expresó Josh: "La etapa 2 es un puente; entrega el stealer, espera su salida, sube el botín y luego elimina el archivo temporal".

Etapa 3:  El AppleScript dinámico empieza a robar 

Josh destacó que, como el AppleScript es generado por el servidor sobre la marcha y se ejecuta sin guardarse en disco, el operador puede cambiar lo que hace la etapa 3 en cualquier momento para cualquier víctima dada, sin tocar nunca el cargador.

En esta muestra, la etapa 3 entregó lo que Josh llama "el cerebro del stealer": un payload de AppleScript (osascript) que se ejecuta completamente en la memoria del sistema. 

Comienza solicitando Acceso total al disco mediante Transparencia, Consentimiento y Control (TCC) de Apple. 

Ryan sugirió pensar en TCC como "la lista de invitados de un club nocturno. Si eres una aplicación y tienes tu nombre en la lista de invitados, y dice que tienes acceso a todas las áreas, entonces el portero te dejará pasar".

Figura 3: Aviso de TCC que el script presenta al usuario para conceder acceso total al disco

El desglose de TCC de Ryan y Josh generó una conversación animada entre los asistentes de Tradecraft Tuesday. Un miembro de la audiencia comentó: "El malware de Mac siempre me parece fascinante porque suele haber un buen giro de ingeniería social para obtener TCC del usuario".

Otros señalaron la fatiga de avisos como razón por la que un usuario haría clic en el botón Permitir sin pensarlo: "Esto es molesto, porque tenemos que hacer esta misma solicitud de permisos como una acción legítima para asegurarnos de que los permisos de grabación de pantalla estén correctamente habilitados para nuestras aplicaciones de gestión".

Un asistente incluso compartió un fragmento de un osascript que su organización usa para indicarle al usuario que un aviso proviene directamente de su MSP:

result=$(osascript -e "display dialog \"$(as_escape "$msg")\" buttons {\"$(as_escape "$btn")\"} default button \"$(as_escape "$btn")\" with title \"$(as_escape "$PROMPT_TITLE")\" giving up after $timeout" 2>/dev/null)

Volviendo a la etapa 3 de MacSync: después de que el usuario responde al aviso de TCC, la Terminal se reinicia con permisos recién elevados, y un archivo de recursos .zshrc lanza varios mecanismos de persistencia. Luego se le pide a la víctima que ingrese su contraseña.

Ahora viene el robo: después de validar que la contraseña ingresada es legítima, el osascript extrae la clave AES de "Safe Storage" de Chromium de cada navegador desde el llavero de inicio de sesión y extrae cada contraseña de Safe Storage. Esas claves son las que descifran las cookies robadas, los inicios de sesión guardados y los datos web.

En palabras de Josh: "La etapa 3 no se limita al robo del navegador; recopila todo lo útil que puede, desde el acceso a tu cuenta hasta una intrusión posterior o incluso el robo de criptomonedas".

Figura 4: Todo lo que el stealer MacSync exfiltra hacia /tmp/osalogging.zip

La etapa 3 termina con la instalación de un troyano de acceso remoto (RAT) Mach-O persistente en la carpeta de inicio del usuario, lo que da paso a la etapa 4. Las credenciales robadas del usuario se escriben localmente en .mpwd para que el RAT las recupere de inmediato, y la ejecución comienza al instante en la sesión actual del usuario.

Etapa 4: Instalación y persistencia con el RAT Mach-O

El payload del RAT crea un archivo de lista de propiedades (plist) y activa un LaunchAgent que se reiniciará en cada inicio de sesión. El plist lleva el nombre del primer actualizador encontrado en el equipo.

El RAT le da al atacante dos vías para persistir:

  • Comando y control en vivo (C2 directo): Se conecta a la IP sin procesar 85.206.161.241:8443 mediante WebSocket sobre TLS. Esto evita las verificaciones de confianza de macOS usando su propia pila de OpenSSL incorporada

  • Dominio de respaldo para la entrega: Ofusca el dominio malicioso con XOR de un solo byte (0xAA). Esto crea un canal resiliente para actualizaciones y transferencias masivas si el control principal está bloqueado

Ryan describió las capacidades del RAT como "justo lo que esperarías de un troyano de acceso remoto... registro, robo de credenciales, control remoto, shell interactivo completo en el sistema, poder ejecutar comandos como el usuario, y subir y descargar archivos. Todo lo que necesitas para poder hacer daño en el equipo de un usuario, ocultarlo de alguien que pueda estar monitoreando ese equipo, y seguir sin ser detectado y persistir".

En el chat, Jamie Levy de Huntress compartió dos herramientas de macOS de Objective-See que podrían ayudar a detectar estas tácticas de persistencia:

Etapa 5: Obtención de permisos de grabación de pantalla 

Junto con el RAT, el payload de la etapa 3 también descarga un agente de captura diseñado para obtener un solo permiso TCC: compartir pantalla. 

Debido a que macOS vincula el uso compartido de pantalla con la identidad de la app solicitante, el archivo plist renombrado obtiene una concesión TCC estable entre lanzamientos, siempre que el usuario acepte el aviso:

Figura 5: Aviso enviado desde el agente de captura firmado y renombrado para permitir los permisos de uso compartido de pantalla. Nota el ícono de app en blanco.

El agente de captura tiene dos modos: --tcc-only para aprovisionar el permiso de grabación de pantalla y -o <path> para capturar la pantalla. Ninguno de los modos requiere una API ni comunicaciones C2. 

Josh explicó: "No hay ningún framework de capturas de pantalla ni código de red en este ayudante. Escribe una imagen en el disco y la etapa 4 la sube a los canales existentes del RAT. Es esencialmente el RAT tomando prestadas las capacidades protegidas por TCC de un documento firmado por separado".

Etapa 6: Reescritura de billeteras de criptomonedas y otras apps de confianza 

La etapa final copia, reescribe y reemplaza aplicaciones en las que el usuario ya confía, verificando contra una lista de 60 extensiones de navegador para billeteras, 21 apps de billeteras de escritorio y tres apps complementarias de billeteras de hardware. 

Como señaló Josh: "No hay una persistencia separada, solo código malicioso que espera pacientemente dentro de las apps de billetera hasta que la víctima eventualmente las abre por su cuenta".

Un miembro de la audiencia reflexionó: "Ganarse la confianza de los usuarios con flujos de trabajo aprobados definitivamente es la tendencia. Hasta podemos considerar los ataques a la mesa de ayuda de manera similar". 

El atacante usa estas apps troyanizadas para recolectar frases de recuperación de criptomonedas. Como ejemplo, Josh explicó cómo el payload falsifica una página de error de la app Ledger Wallet, pidiendo al usuario que ingrese su frase de recuperación: 

Figura 6: Página de phishing de recuperación de frase de billetera de criptomonedas reconstruida en una estación de trabajo aislada. Se eliminaron del HTML el servidor de exfiltración y el token.

Josh enfatizó: "Las cookies y contraseñas son bastante difíciles de perder, pero son recuperables. Puedes rotar o restablecer tus cookies y contraseñas, tus sesiones caducan. Una frase de recuperación no funciona así; no hay nada que revocar o restablecer, nada que detenga el acceso. Una vez que alguien tiene una frase de contraseña, controla cada billetera derivada de esa semilla sin necesitar un dispositivo físico".

Volviendo al señuelo de acceso inicial

Josh y Ryan terminaron la sesión retomando la conversación compartida de Claude que encendió la cadena de ataque desde el principio. La conclusión final es: haz una pausa antes de copiar y pegar cualquier cosa en la Terminal.

"Empieza por lo básico: inspecciona lo que estás haciendo y tómate un segundo. También tengo la costumbre de hacer esto cuando descargo algo: estás cansado, solo quieres configurarlo, encuentras el comando que necesitas y simplemente presionas enter con la esperanza de que descargue. Pero necesitamos dar un paso atrás y decir, oye, aquí hay algo en Base64 que no me deja ver realmente qué está haciendo. Déjame desofuscar esto rápidamente en una herramienta, o preguntarle a Claude Code, o a Gemini qué es esto y qué hace. Eso básicamente te ahorrará muchos dolores de cabeza y frustración si no lo hubieras descargado en primer lugar."


¿Te gustó lo que acabas de leer? Únete a nosotros cada mes para Tradecraft Tuesday, nuestro livestream donde exponemos técnicas de hackers y hablamos de temas nerds con demostraciones en vivo. ¡Reserva tu lugar ahora!

También te podría interesar

Más información sobre Nublado con probabilidad de desinformación: desmintiendo mitos de Microsoft 365 e identidad
Nublado con probabilidad de desinformación: desmintiendo mitos de Microsoft 365 e identidad
Blog

Algunos proveedores les dicen a sus clientes que MFA es suficiente y que los datos de identidad son mínimos. Ninguna de las dos afirmaciones es correcta. Huntress aclara los mitos más comunes sobre Microsoft 365 y la seguridad de identidad.

Más información sobre Cómo combatir el desorden de IA en bases de código de producción: así mejoró Huntress el recall de la API en Fable 5.1
Cómo combatir el desorden de IA en bases de código de producción: así mejoró Huntress el recall de la API en Fable 5.1
Blog

Tres cambios en los harnesses de codificación de Huntress duplicaron la tasa de precisión de evaluación de recall de API de Claude Fable 5.1.

Más información sobre Uso indebido de Velociraptor, parte II: el ojo de la tormenta
Uso indebido de Velociraptor, parte II: el ojo de la tormenta
Blog

Los actores de amenazas de la parte I no habían terminado. La parte II analiza qué sucedió después de que la explotación de WSUS puso una herramienta forense legítima en las manos equivocadas, y cómo respondió Huntress.