Clickfix en macOS: Campaña de Malware con AppleScript Usa Indicaciones de Terminal para Robar Datos
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
La campaña de malware AppleScript apunta a los usuarios de macOS a través de una técnica llamada ClickFix, persuadiéndolos para que ejecuten manualmente comandos de shell decodificados en base64 en Terminal. Estos comandos recuperan un ladrón de AppleScript que recopila datos del navegador, carteras de criptomonedas, documentos locales y otra información sensible, luego la exfiltra a servidores controlados por atacantes. Debido a que no se escribe ningún binario tradicional en el disco, la actividad es más difícil de detectar con antivirus clásicos. La operación se basa en múltiples dominios engañosos y puertos de servicios inusuales para el tráfico de comando y control.
Análisis de la Campaña AppleScript
Los investigadores examinaron los sitios web de phishing, el JavaScript responsable de entregar la carga útil y el AppleScript utilizado para la recolección y exfiltración. El mapeo de la infraestructura descubrió dominios como cryptoinfo-news.com and odyssey1.to, junto con servicios expuestos en los puertos 22, 80, 3333 y 5201. La carga útil de AppleScript empaqueta los datos robados en un archivo ZIP en /tmp/out.zip y usa curl para subirlo a un endpoint remoto.
Mitigación
Los defensores deben bloquear los dominios maliciosos identificados y limitar las conexiones salientes en puertos poco comunes. Fortalecer los hosts macOS restringiendo el uso de AppleScript y shell, monitoreando patrones de ejecución de base64-d | bash , y aplicando estrictos controles CORS en entornos web. El entrenamiento de concienciación de seguridad debe destacar las páginas de phishing que instruyen a los usuarios a copiar-pegar y ejecutar comandos de Terminal.
Respuesta
Cuando se detecten estos patrones de indicadores, notificar al SOC, aislar el sistema afectado y capturar artefactos temporales e historial de shell. Realizar una revisión forense del directorio /tmp , poner en cuarentena cualquier archivo ZIP sospechoso y correlacionar el tráfico saliente con los servidores C2 y puertos conocidos identificados en la campaña.
mermaid graph TB %% Class definitions classDef technique fill:#e0f7fa %% Node definitions initial_access[«<b>Acceso Inicial</b> – <b>T1659 Inyección de Contenido</b>: Las víctimas cargan una página de phishing que inyecta un comando malicioso.»] class initial_access technique execution_copy_paste[«<b>Ejecución</b> – <b>T1204.004 Ejecución de Usuario: Copiar y Pegar Malicioso</b>: El usuario copia el comando base64 y lo ejecuta en Terminal.»] class execution_copy_paste technique execution_proxy[«<b>Ejecución</b> – <b>T1127 Ejecución de Proxy de Utilidades de Desarrollador Confiable</b>: Decodifica y ejecuta AppleScript a través de utilidades nativas de macOS.»] class execution_proxy technique execution_xpc[«<b>Ejecución</b> – <b>T1559.003 Comunicación Entre Procesos: Servicios XPC</b>: AppleScript aprovecha XPC para llamadas internas.»] class execution_xpc technique collection_browser_disc[«<b>Colección</b> – <b>T1217 Descubrimiento de Información del Navegador</b>: AppleScript enumera perfiles de Firefox y Chromium.»] class collection_browser_disc technique collection_creds[«<b>Colección</b> – <b>T1555.003 Credenciales de Almacenes de Contraseñas: Navegadores Web</b>: Roba cookies, inicios de sesión guardados, datos de carteras de criptomonedas.»] class collection_creds technique archive[«<b>Colección</b> – <b>T1560.001 Archivado a través de Utilidad</b>: Empaqueta archivos en ZIP con ditto.»] class archive technique exfiltration[«<b>Exfiltración</b> – <b>T1020 Exfiltración Automatizada</b>: Sube el ZIP al servidor del atacante usando curl.»] class exfiltration technique c2_web[«<b>Comando y Control</b> – <b>T1102 Servicio Web</b>: Se comunica con C2 sobre HTTP con CORS permisivo.»] class c2_web technique c2_ssh[«<b>Comando y Control</b> – <b>T1021.004 Servicios Remotos: SSH</b>: El atacante mantiene acceso SSH para mayor control.»] class c2_ssh technique defense_compress[«<b>Evasión de Defensa</b> – <b>T1027.015 Compresión</b>: Usa compresión para ocultar datos de la carga útil.»] class defense_compress technique defense_file_delete[«<b>Evasión de Defensa</b> – <b>T1070.004 Eliminación de Archivos</b>: Elimina directorios temporales y archivos de archivo.»] class defense_file_delete technique credential_cookie[«<b>Acceso a Credenciales</b> – <b>T1539 Robo de Cookie de Sesión Web</b>: Usa cookies robadas para secuestrar sesiones.»] class credential_cookie technique %% Connections initial_access u002du002d>|conduce a| execution_copy_paste execution_copy_paste u002du002d>|conduce a| execution_proxy execution_proxy u002du002d>|utiliza| execution_xpc execution_proxy u002du002d>|recoge| collection_browser_disc collection_browser_disc u002du002d>|recoge| collection_creds collection_creds u002du002d>|archiva| archive archive u002du002d>|exfiltra| exfiltration exfiltration u002du002d>|utiliza| c2_web c2_web u002du002d>|alternativa| c2_ssh exfiltration u002du002d>|cubre pistas| defense_compress exfiltration u002du002d>|cubre pistas| defense_file_delete collection_creds u002du002d>|habilita| credential_cookie
Flujo de Ataque
Detecciones
Detectar Uso Malicioso de Curl para Exfiltración de Datos en macOS [Creación de Procesos en Windows]
Ver
Detección de Decodificación Base64 y Ejecución de Bash en macOS [Creación de Procesos en Linux]
Ver
IOCs (SourceIP) para detectar: La Guía Completa para Cazar Cobalt Strike – Parte 2: 10+ Recetas HuntSQL para Encontrar Cobalt Strike
Ver
IOCs (DestinationIP) para detectar: La Guía Completa para Cazar Cobalt Strike – Parte 2: 10+ Recetas HuntSQL para Encontrar Cobalt Strike
Ver
Stealer de MacOS Atómico – Actividad FileGrabber
Ver
Ver
Ejecución de Simulación
Prerequisito: El Check de Pre‑vuelo de Telemetría y Línea Base debe haber pasado.
Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa reflejan directamente los TTPs identificados y buscan generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa y Comandos del Ataque:
-
El atacante envía un correo electrónico de phishing que contiene el comando de una sola línea:
echo "cHJpbnQoJ0NhdXNlJykK" | base64 -d | bash(La carga útil se decodifica a
print('Cause')– un marcador de posición para cualquier script de Bash malicioso.) -
Un usuario desprevenido copia la línea y la pega en el Terminal.
-
macOS genera un proceso de
bashcuyo comando exactocoincidecon el patrónbase64 -d | bash, cumpliendo con laselección. -
de la regla Sigma.
-
-
El intérprete de Bash ejecuta la carga útil decodificada, completando la acción maliciosa (por ejemplo, establecer un shell inverso, descargar herramientas adicionales).Script de Prueba de Regresión:
El siguiente script automatiza los pasos 1-3, reproduciendo la telemetría necesaria para la validación. -
#!/bin/bash # ————————————————- # Simular ejecución de Decodificación Base64 y Bash en macOS # ————————————————- # Carga útil codificada en Base64 (imprime “Compromiso”) PAYLOAD=»cHJpbnQoJ0NvbXByb21pc2UnKQ==» # Ejecutar la línea tal como lo haría un atacante echo «$PAYLOAD» | base64 -d | bash # Salir con el estado del comando Bash exit $?Comandos de Limpieza:
#!/bin/bash # Limpieza simple – asegurarse de que no queden procesos secundarios Bash pkill -f "base64 -d | bash" 2>/dev/null # Si la carga útil creó archivos, eliminarlos (ejemplo de marcador de posición) rm -f /tmp/malicious_script.sh 2>/dev/null