ClickFix: o captcha falso que pede para colar um comando e rouba palavras-passe
Uma caixa de «verifique que é humano» que lhe pede para carregar em Win+R e colar algo não é um captcha: é um ataque. Explicamos como funciona o ClickFix, porque aparece em lojas comprometidas e como o detetar.
Entra num site e aparece uma caixa que parece um captcha. Diz que é preciso verificar que é humano e dá-lhe três passos: carregue na tecla Windows e na R, carregue em Ctrl e V, carregue em Enter. Parece mais uma verificação, das muitas que há pela Internet. Não é. Acabou de executar no seu computador um comando que alguém lhe copiou para a área de transferência.
É o ataque conhecido como ClickFix, e tornou-se muito frequente em sites comprometidos, lojas online incluídas.
Como funciona
- O site está comprometido. Alguém injetou um JavaScript num template, num módulo ou num ficheiro do tema.
- O script mostra uma camada em ecrã inteiro com aspeto de captcha ou de erro de verificação, às vezes a imitar o estilo de serviços conhecidos.
- Ao carregar no botão, copia um comando para a área de transferência sem que o utilizador o veja. Costuma ser uma instrução de PowerShell ou de outra ferramenta do sistema que descarrega e executa um programa.
- As instruções fazem com que seja o próprio utilizador a executá-lo na caixa de diálogo Executar do Windows. Algumas variantes pedem para abrir o Terminal no Mac.
- O programa descarregado instala-se, normalmente um infostealer.
O que procura
O alvo não é o servidor da loja: é o computador de quem a visita. O que se instala costuma dedicar-se a roubar:
- Palavras-passe guardadas no navegador.
- Cookies de sessão, que permitem entrar em contas sem a palavra-passe e, às vezes, contornando a autenticação de dois fatores.
- Perfis de clientes de FTP com as suas palavras-passe.
- Carteiras de criptomoedas e dados de formulários preenchidos automaticamente.
Agora pense em quem visita a sua loja mais do que ninguém: você e a sua equipa. Se o captcha falso aparecer no back office ou na loja enquanto a administra, o que é roubado são as credenciais do painel do alojamento, do FTP, do email da empresa e do próprio back office. É uma forma muito eficaz de transformar uma infeção pequena em controlo total, e explica alguns comprometimentos por FTP que não deixam rasto nos registos web.
Para os seus clientes, o dano é outro: roubam-lhes dados no computador através do seu site. Além do problema para eles, é um problema de reputação e, conforme o caso, de obrigações de notificação.
Como o reconhecer
Como visitante, há uma regra simples que convém que toda a sua equipa conheça:
Nenhuma verificação legítima lhe pede para abrir a caixa Executar, o terminal ou o PowerShell e colar algo. Nem a Google, nem a Cloudflare, nem nenhum banco. Se um captcha lhe der instruções de teclado, é um ataque. Feche o separador.
Outros sinais:
- O suposto captcha aparece num site onde antes não havia nenhum.
- Ocupa o ecrã inteiro e não deixa ver o site por baixo.
- Fala de erros de «verificação de DNS», «atualização do navegador» ou semelhantes.
- Algo é copiado para a área de transferência sem que tenha carregado em nenhum botão de copiar.
Se alguém da sua equipa já o executou: desligue esse computador da rede, não o use para entrar em nenhum serviço e, a partir de outro computador limpo, mude as palavras-passe de tudo o que lá estivesse guardado e feche as sessões abertas. Depois, o computador afetado precisa de limpeza profissional ou reinstalação.
Como saber se a sua loja o está a servir
O script pode mostrar-se apenas a parte dos visitantes: só em Windows, só na primeira visita, só a partir de certos países ou só a quem não está identificado como administrador. Por isso não basta abrir a loja e não ver nada.
- Reveja os ficheiros JavaScript do tema e dos módulos à procura de alterações recentes, sobretudo linhas muito longas acrescentadas no início ou no fim.
- Reveja os templates do tema para ver se foi acrescentada uma etiqueta
<script>que carrega algo externo. - Veja a configuração dos módulos que permitem inserir HTML (blocos personalizados, campos de código no cabeçalho), porque a injeção pode estar na base de dados e não num ficheiro.
- Teste a partir de um navegador limpo, em janela privada e sem sessão, e a partir de um telemóvel.
- Ouça os seus clientes. Um aviso do tipo «apareceu-me um captcha estranho» é para levar a sério.
Se o encontrar, lembre-se de que o script é a consequência, não a causa. Alguém teve acesso para o pôr ali: é preciso procurar a porta por onde entrou, como em qualquer outra infeção, e fechá-la. Manter o PrestaShop e os módulos atualizados reduz muito as vias por onde alguém pode injetar um script destes.
Tenha também em conta que estes scripts mudam com frequência: o mesmo carregador pede de cada vez o conteúdo a um servidor externo, e o que hoje é um captcha falso amanhã pode ser um aviso de atualização do navegador ou um formulário de pagamento. Por isso não basta tirar a caixa que viu: é preciso tirar o carregador e descobrir como chegou aos seus ficheiros ou à sua base de dados.
O que dizer à equipa
- Nunca colar nada em Executar, no PowerShell ou no terminal só porque um site o pede.
- Não guardar palavras-passe do FTP nem do painel no navegador nem no cliente de FTP.
- Usar autenticação de dois fatores no back office, no painel do alojamento e no email.
- Avisar assim que virem algo estranho na loja, mesmo que pareça pouca coisa.
Como resolvê-lo no PrestaShop
O RKR Security Alert inclui um sentinela que observa a página já montada no navegador, onde aparecem as injeções que não deixam rasto no disco. Contra o ClickFix vigia a escrita na área de transferência: avisa quando um site escreve nela sem que o utilizador tenha carregado antes num botão de copiar, e sempre que o conteúdo copiado é um comando de sistema, além de detetar a camada em ecrã inteiro que pede para abrir a caixa Executar. Está testado para não disparar com avisos de cookies, janelas de newsletter nem com o reCAPTCHA legítimo da Google. No servidor, o seu scanner procura JavaScript injetado e vigia as alterações em ficheiros e templates, para que encontre também por onde entrou o script.