Campaña macOS ClickFix: Ladrones AppleScript y Nuevas Protecciones de Terminal
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Netskope Threat Labs ha identificado una campaña de ClickFix multiplataforma que apunta a usuarios de macOS con un infostealer basado en AppleScript. El malware se entrega a través de una página de ingeniería social engañosa que convence a las víctimas de copiar y pegar un comando malicioso en Terminal. Una vez ejecutado, el script recopila contenidos del llavero, cookies del navegador, datos de extensiones y archivos de billeteras de criptomonedas, y luego envía la información robada a través de solicitudes HTTP POST. La campaña también utiliza cuadros de diálogo falsos persistentes para engañar a los usuarios a que ingresen su contraseña del sistema.
Investigación
El informe explica que la página de destino maliciosa primero filtra visitantes por agente de usuario antes de servir un cargador de AppleScript específicamente adaptado para sistemas macOS. Después de la ejecución, el malware crea un directorio de puesta en escena temporal, reúne credenciales y datos relacionados con billeteras, comprime los archivos recopilados con el comando ditto y sube el archivo alavado a una dirección de comando y control definida internamente. Los investigadores también documentaron el abuso de los Servicios de Directorio de macOS para validar la contraseña de la víctima en tiempo real, junto con la amplia gama de navegadores y aplicaciones de billeteras de criptomonedas objetivo.
Mitigación
Netskope recomienda que los usuarios de macOS actualicen a las versiones más recientes de macOS Tahoe 26.4 o macOS Sequoia, que introducen advertencias nativas en Terminal para comandos pegados. Los usuarios también deben evitar ejecutar comandos copiados de sitios web no confiables, verificar cuidadosamente todos los avisos de credenciales, y habilitar la autenticación de múltiples factores siempre que sea posible. Se alienta a las organizaciones a monitorear diálogos impulsados por AppleScript sospechosos y tráfico HTTP POST inusual dirigido a infraestructuras desconocidas.
Respuesta
Los defensores deben detectar y bloquear la ejecución de archivos AppleScript desconocidos y observar la creación del directorio de puesta en escena /tmp/xdivcmp/ . También se deben configurar alertas para actividades POST HTTP de sistemas macOS a dominios o direcciones IP no comunes. Cualquier cuadro de diálogo recurrente solicitando contraseñas del sistema debe ser tratado como sospechoso, y los puntos finales afectados deben ser aislados de inmediato para una investigación forense.
"gráfico TB %% Definiciones de clase definición de clase técnica llenar:#ffcc99 %% Definiciones de nodo t_phish["<b>Técnica</b> – <b>T1566 Phishing</b><br/><b>Descripción</b>: Envíe correos electrónicos maliciosos que contengan un comando para copiar y pegar y atraer a la víctima."] clase t_phish técnica t_userexec["<b>Técnica</b> – <b>T1204.004 Ejecución del Usuario: Copiar y Pegar Malicioso</b><br/><b>Descripción</b>: La víctima copia y pega el comando malicioso en una sesión de terminal."] clase ejecución de usuario t técnica t_unixshell["<b>Técnica</b> – <b>T1059.004 Intérprete de Comandos y Scripts: Shell de Unix</b><br/><b>Descripción</b>: Ejecutar un comando de shell que descarga y ejecuta una carga útil de AppleScript."] clase t_unixshell técnica t_obfusc["<b>Técnica</b> – <b>T1027 Archivos o Información Ofuscados</b><br/><b>Descripción</b>: Codifique el comando de shell para ocultar su intención maliciosa."] clase t_obfusc técnica t_inputcap["<b>Técnica</b> – <b>T1056 Captura de Entrada</b><br/><b>Descripción</b>: El diálogo del AppleScript persistente captura la contraseña del usuario de macOS."] clase t_inputcap técnica t_oscred["<b>Técnica</b> – <b>T1003 Volcado de Credenciales del SO</b><br/><b>Descripción</b>: Usa la contraseña capturada para descifrar el Llavero de macOS."] clase t_oscred técnica t_passmgr["<b>Técnica</b> – <b>T1555.005 Credenciales de Almacenamiento de Contraseñas: Gestores de Contraseñas</b><br/><b>Descripción</b>: Extrae los datos almacenados en los gestores de contraseñas instalados."] clase t_passmgr técnica t_webbrowser["<b>Técnica</b> – <b>T1555.003 Credenciales de Almacenamiento de Contraseñas: Navegadores Web</b><br/><b>Descripción</b>: Robar contraseñas guardadas y datos de autocompletar de los almacenamientos del navegador."] class t_webbrowser técnica t_webcookie["<b>Técnica</b> – <b>T1539 Robar Cookie de Sesión Web</b><br/><b>Descripción</b>: Cosechar cookies de sesión de doce navegadores web."] class t_webcookie técnica t_altauth["<b>Técnica</b> – <b>T1550.004 Usar Material de Autenticación Alternativo: Cookie de Sesión Web</b><br/><b>Descripción</b>: Reutilizar cookies robadas para eludir la autenticación multifactorial."] class t_altauth técnica t_browserdisc["<b>Técnica</b> – <b>T1217 Descubrimiento de Información del Navegador</b><br/><b>Descripción</b>: Localizar los directorios de perfil del navegador en el sistema anfitrión."] clase t_browserdisc técnica t_staging["<b>Técnica</b> – <b>T1074.001 Datos Puestos en Escena: Puesta en Escena de Datos Locales</b><br/><b>Descripción</b>: Agregar datos recolectados en /tmp/xdivcmp."] class t_staging técnica t_archive["<b>Técnica</b> – <b>T1560 Archivar Datos Recopilados</b><br/><b>Descripción</b>: Comprimir los datos puestos en escena en un archivo zip usando ditto."] class t_archive técnica t_exfil["<b>Técnica</b> – <b>T1041 Exfiltración a través del Canal de C2</b><br/><b>Descripción</b>: Transferir el archivo zip a través de HTTP POST a un servidor de comando y control."] clase t_exfil técnica t_filedel["<b>Técnica</b> – <b>T1070.004 Eliminación de Indicadores: Eliminación de Archivos</b><br/><b>Descripción</b>: Eliminar el directorio de escenario después de la exfiltración exitosa."] clase t_filedel técnica t_diskwipe["<b>Técnica</b> – <b>T1561 Borrado de Disco</b><br/><b>Descripción</b>: Sobrescribir sectores del disco para eliminar rastros forenses."] clase t_diskwipe técnica %% Conexiones que muestran el flujo t_phish –>|lleva_a| t_userexec t_userexec –>|lleva_a| t_unixshell t_unixshell –>|utiliza| t_obfusc t_unixshell –>|utiliza| t_inputcap t_unixshell –>|utiliza| t_browserdisc t_inputcap –>|habilita| t_oscred t_inputcap –>|habilita| t_passmgr t_inputcap –>|habilita| t_webbrowser t_inputcap –>|habilita| t_webcookie t_webcookie –>|habilita| t_altauth t_browserdisc –>|proporciona| t_staging t_staging –>|crea| t_archive t_archive –>|exfiltra| t_exfil t_exfil –>|desencadena| t_filedel t_filedel –>|desencadena| t_diskwipe "
Flujo de Ataque
Detecciones
Posible Intento de Descubrimiento de Contraseña de Navegador MacOS (via cmdline)
Ver
Validación de Credenciales de MacOS via Dscl Authonly (via cmdline)
Ver
Intento de Ejecución de Curl Sospechoso [MacOS] (via cmdline)
Ver
IOCs (HashMd5) para detectar: campaña macOS ClickFix: AppleScript Stealers y Nuevas Protecciones en Terminal
Ver
IOCs (SourceIP) para detectar: campaña macOS ClickFix: AppleScript Stealers y Nuevas Protecciones en Terminal
Ver
IOCs (DestinationIP) para detectar: campaña macOS ClickFix: AppleScript Stealers y Nuevas Protecciones en Terminal
Ver
Infostealer ClickFix de macOS que apunta al Llavero y Directorio Temporal [Evento de Archivo de Linux]
Ver
Detección de Infostealer ClickFix de macOS [Creación de Proceso de Linux]
Ver
Ejecución de Simulación
Prerrequisito: El chequeo preliminar de la Telemetría y Línea Base debe haber pasado.
-
Narrativa de Ataque y Comandos:
- Reconocimiento: El atacante primero enumera el llavero del usuario actual para identificar los elementos almacenados.
- Volcado de Credenciales: Usando
security dump-keychain, el atacante extrae la base de datos completa del llavero a un archivo temporal. - Puesta en Escena: El volcado se copia en un directorio de puesta en escena oculto
/tmp/.xdivcmp/(reflejando la regladirectorio de puesta en escena /tmp/xdivcmp/del camino). - Ofuscación: El directorio de puesta en escena se marca como oculto (
chflags hidden). - Preparación para Exfiltración: Los archivos se comprimen en
payload.ziplistos para la transferencia saliente.
-
Script de Prueba de Regresión:
#!/bin/bash set -euo pipefail # 1. Crear directorio de puesta en escena oculto (coincide con el camino de la regla) STAGING_DIR="/tmp/.xdivcmp" mkdir -p "$STAGING_DIR" chflags hidden "$STAGING_DIR" # 2. Volcar el llavero (requiere interacción del usuario; simulado con una copia de la base de datos) KEYCHAIN_SRC="/Users/$(whoami)/Library/Keychains/login.keychain-db" KEYCHAIN_DUMP="${STAGING_DIR}/login.keychain-db.dump" # Simular volcado copiando la base de datos (un atacante real usaría `security dump-keychain`) cp "$KEYCHAIN_SRC" "$KEYCHAIN_DUMP" # 3. Comprimir para exfiltración zip -j "${STAGING_DIR}/payload.zip" "$KEYCHAIN_DUMP" echo "[+] Simulación de ClickFix completa – archivos de puesta en escena ubicados en $STAGING_DIR" -
Comandos de Limpieza:
#!/bin/bash set -euo pipefail STAGING_DIR="/tmp/.xdivcmp" if [[ -d "$STAGING_DIR" ]]; then rm -rf "$STAGING_DIR" echo "[+] Directorio de puesta en escena limpiado." else echo "[*] No se encontró directorio de puesta en escena; nada que limpiar." fi