Pistas de Phishing Ocultas en la Carpeta /tmp
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un usuario de macOS fue engañado por un aviso falso de “Servicio de Protección macOS” y proporcionó su contraseña, lo que activó el despliegue del ladrón de información MacSync. El malware recopiló cookies de Chrome y Safari, registros de Apple Keychain, datos de billeteras de criptomonedas y otros archivos locales, organizándolos en /tmp/salmonela/. La información robada fue comprimida en un archivo y exfiltrada con curl a un dominio de comando y control oculto antes de que se eliminara el archivo. Huntress detectó la intrusión, aisló el punto final y detuvo el intento de robo de datos.
Investigación
El SOC de Huntress identificó actividad sospechosa en el Mac afectado que involucraba el binario nativo curl cargando un archivo ZIP. Los analistas confirmaron que el ataque se basó en LOOBins y atribuyeron la carga útil al ladrón de información MacSync. La contención se logró desconectando el anfitrión de la red y eliminando la carpeta de staging temporal. Los investigadores no encontraron signos de movimiento lateral adicional después de que se aislara el punto final.
Mitigación
Las defensas recomendadas incluyen capacitar a los usuarios para identificar diálogos del sistema falsos, reducir los derechos de administrador local innecesarios, implementar un EDR gestionado en macOS y rotar las credenciales después de un compromiso. Restringir conexiones salientes no autorizadas y vigilar las grandes cargas a través de curl puede reducir aún más la exposición. Auditorías regulares y el fortalecimiento de las políticas de acceso a Keychain añaden otra capa de protección.
Respuesta
Si se detecta esta actividad, aísle inmediatamente el punto final, detenga el proceso malicioso y elimine el /tmp/salmonela/ directorio. Realice una revisión forense para identificar cualquier artefacto restante, restablezca las credenciales expuestas y anule las sesiones activas. Actualice el contenido de detección para capturar abusos similares de LOOBin y monitoree el tráfico de POST saliente a dominios desconocidos.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Action nodes action_user_execution["<b>Acción</b> – <b>T1204 Ejecución del Usuario</b><br/>La víctima es engañada por un diálogo falso de Servicio de Protección macOS e ingresa la contraseña del dispositivo."] class action_user_execution action action_input_capture["<b>Acción</b> – <b>T1056.002 Captura de Entrada: Captura de Entrada GUI</b><br/>El aviso malicioso captura la contraseña ingresada."] class action_input_capture action action_cred_dump["<b>Acción</b> – <b>T1555.001 Credenciales de Almacenamiento de Contraseñas: Keychain</b><br/>El malware utiliza la contraseña capturada para volcar credenciales almacenadas del Keychain de macOS."] class action_cred_dump action action_browser_discovery["<b>Acción</b> – <b>T1217 Descubrimiento de Información del Navegador</b><br/>El ladrón recopila cookies de Chrome y Safari, inicios de sesión guardados y otros datos del navegador."] class action_browser_discovery action action_archive["<b>Acción</b> – <b>T1560.001 Archivar Datos Recolectados: Archivo a través de Utilidad</b><br/>Los archivos recopilados se comprimen en un archivo zip en /tmp/salmonela/."] class action_archive action action_obfuscate["<b>Acción</b> – <b>T1027.015 Archivos o Información Ofuscados: Compresión</b><br/>El archivo se utiliza para ocultar los datos recopilados."] class action_obfuscate action action_exfil["<b>Acción</b> – <b>T1071.001 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>El archivo zip se publica en un servidor C2 remoto a través de curl sobre HTTP/HTTPS."] class action_exfil action action_cleanup["<b>Acción</b> – <b>T1070.004 Eliminación de Indicadores: Eliminación de Archivos</b><br/>Después de la exfiltración, el malware elimina el archivo para cubrir sus huellas."] class action_cleanup action %% Tool node tool_curl["<b>Herramienta</b> – <b>Nombre</b>: curl<br/><b>Descripción</b>: utilidad de línea de comandos utilizada para transferir datos sobre HTTP/HTTPS."] class tool_curl tool %% File node file_archive["<b>Archivo</b> – <b>Ruta</b>: /tmp/salmonela/archive.zip<br/><b>Tipo</b>: Archivo ZIP que contiene datos cosechados."] class file_archive file %% Flow connections action_user_execution –>|conduce a| action_input_capture action_input_capture –>|captura contraseña para| action_cred_dump action_cred_dump –>|habilita acceso a| action_browser_discovery action_browser_discovery –>|proporciona datos a| action_archive action_archive –>|crea| file_archive action_obfuscate –>|aplica a| file_archive action_exfil –>|exfiltra| file_archive action_exfil –>|utiliza| tool_curl action_cleanup –>|elimina| file_archive "
Flujo de Ataque
Detecciones
Acceso Sospechoso a Credenciales de Navegadores Almacenadas macOS (vía creación de procesos)
Ver
Detección de Actividad del MacSync Infostealer [Evento de Archivo Linux]
Ver
Detección del MacSync Infostealer vía Aviso de Servicio de Protección macOS Falso [Creación de Procesos en Linux]
Ver
Entorno de Simulación & Contexto
-
TTPs en Prueba:
- T1056.002: Captura de Entrada – Formularios Web
- T1204.004: Ejecución de Usuario – Archivo Malicioso
- T1548.004: Mecanismo de Control de Elevación – Bypass de Control de Acceso de Usuario
- T1555.002: Credenciales de Navegadores Web – Extracción de Contraseñas
- T1556.004: Modificar Proceso de Autenticación – Modificación de Confianza de Dominios
-
Contexto y Relevancia de TTPs:
- T1056.002 – El ladrón de información cosecha credenciales ingresadas en formularios web y las almacena en la carpeta de staging.
- T1204.004 – El binario malicioso es ejecutado por un usuario (a menudo a través de un instalador disfrazado).
- T1548.004 – La amenaza puede intentar ejecutar el paso de compresión con privilegios elevados para evadir el sandboxing de macOS.
- T1555.002 – Las contraseñas de navegadores extraídas se escriben en archivos bajo
/tmp/salmonela/. - T1556.004 – En campañas avanzadas, el atacante puede modificar la configuración de confianza local antes de la exfiltración, pero la regla se enfoca en la actividad de staging de datos.
-
Entorno de Destino:
- OS: macOS (Catalina 10.15 o posterior)
- Registro: Auditd + FSEvents (colección de eventos de archivo) enviados a un SIEM que consume reglas Sigma.
- Pila de Seguridad: SIEM Genérico compatible con Sigma‑ (por ejemplo, Elastic Stack, Splunk, Microsoft Sentinel).
Telemetría y Verificación Inicial de Línea de Base
Razonamiento: Antes de simular el ataque, debemos confirmar que el host de destino esté configurado para generar los logs necesarios, que estos logs sean ingeridos por el SIEM y que la regla de detección no se active en actividades benignas. Sin esta validación, cualquier resultado de prueba es poco fiable.
-
1. Instrucciones de Configuración de Telemetría:
-
Habilitar auditd de macOS para registro de línea de comandos
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo audit -s 1 # habilitar el registro audit -f /etc/security/audit_control # Asegúrese de que "flags:fc,ex" (creación de archivo y ejecución) estén presentes, luego reinicie auditd sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist -
Habilitar FSEvents (ya en macOS) y enviar a SIEM – instale el módulo Elastic Filebeat para macOS o Splunk Universal Forwarder con el
fschangeinput, asegurándose de quepath: /tmp/esté incluido. -
Validar la ingesta – en el SIEM, ejecute una consulta simple para cualquier evento que contenga
/tmp/dentro de los últimos 5 minutos para confirmar que el pipeline está activo.
-
-
2. Validación de Ingesta e Línea de Base:
-
Acción (Telemetría Benigna): Cree una carpeta temporal bajo
/tmpy comprimala utilizandotar(lo que not no incluye la frase desencadenante exacta).# comando benigno para generar telemetría similar mkdir -p /tmp/salmonela_benign echo "datos benignos" > /tmp/salmonela_benign/sample.txt tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign -
Consulta de Validación (Ingesta): (ejemplo KQL para Elastic)
filebeat-* | donde file.path contiene "/tmp/salmonela_benign" | donde process.command_line contiene "tar"La consulta debería devolver el evento benigno, confirmando que los registros están llegando al SIEM sin not coincidir con la regla de detección (sin la cadena “Zipped the contents of salmonela/”).
-
Ejecución de Simulación
Prerequisito: La Verificación Inicial de Telemetría y Línea de 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 narración DEBEN reflejar directamente los TTPs identificados y tienen como objetivo generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a errores en el diagnóstico.
-
Narrativa del Ataque y Comandos:
- Compromiso Inicial (T1204.004): El atacante entrega un binario malicioso de macOS disfrazado como un instalador legítimo. El usuario lo ejecuta, otorgando al proceso binario derechos para escribir en
/tmp. - Cosecha de Credenciales (T1056.002 & T1555.002): El binario inyecta un registrador de claves en el navegador web del usuario, captura formularios de inicio de sesión y escribe las credenciales cosechadas en
/tmp/salmonela/creds.txt. - Evasión de Elevación de Privilegios (T1548.004): El binario invoca
sudocon una política preconfigurada que le permite ejecutar el paso de compresión sin solicitud. - Staging y Compresión de Datos: El atacante ejecuta un bash comando que tanto registra un mensaje personalizado and como comprime la carpeta de staging. La línea de comandos exacta contiene la cadena literal
"Zipped the contents of salmonela/", satisfaciendo la condición de Sigma.
sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/" - Compromiso Inicial (T1204.004): El atacante entrega un binario malicioso de macOS disfrazado como un instalador legítimo. El usuario lo ejecuta, otorgando al proceso binario derechos para escribir en
-
Script de Prueba de Regresión: (script Bash autónomo que reproduce las acciones anteriores)
#!/usr/bin/env bash set -euo pipefail # 1. Prepare el directorio de staging STAGE_DIR="/tmp/salmonela" mkdir -p "$STAGE_DIR" # 2. Simular volcado de credenciales echo "user:example@example.com" > "$STAGE_DIR/creds.txt" echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt" # 3. Comprimir con la frase desencadenante exacta en la línea de comandos sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/" echo "Simulación completa – debería activarse una alerta." -
Comandos de Limpieza: (elimina artefactos y restaura el sistema)
#!/usr/bin/env bash set -euo pipefail rm -rf /tmp/salmonela rm -f /tmp/salmonela_archive.zip echo "Limpieza terminada."