假Cloudflare验证码不是验证:一条命令就能打通内网隧道

微软安全研究团队8月28日发布的分析 披露,TerminalFix利用被入侵网站展示伪造的Cloudflare验证层,诱导多个行业组织中的Windows用户把恶意命令粘贴到Windows Terminal或PowerShell。命令执行后,攻击链会继续进行DLL侧载、从PNG像素提取载荷、建立持久化、侦察Active Directory,并部署Python反向WebSocket隧道。
这不是浏览器验证失败,而是一次由用户主动执行本地代码触发的入侵。标题中的“一条命令”是整条自动化链的入口:隧道并非在粘贴瞬间凭空出现,但这次执行可以逐步把受感染电脑变成通往企业内网的代理节点。
三个界面信号足以识别假验证

TerminalFix页面会先短暂显示原网站内容,随后覆盖仿冒的Cloudflare界面,其中可能出现“Verify you are human”复选框、旋转等待状态和Cloudflare标识。用户与页面交互后,恶意命令被复制到剪贴板,屏幕提示则要求离开浏览器,打开Windows Terminal或PowerShell并粘贴执行。
用户可以直接观察三个信号:网页要求转到本机终端;要求执行自己没有编写、也无法解释用途的命令;所谓“开始验证”或“验证完成”出现在终端输出中。只要网页要求向Terminal或PowerShell粘贴命令,就应立即停止。此时无需再根据标识、配色或页面是否逼真来判断。
Cloudflare的Turnstile官方流程 是在访客浏览器中运行组件并生成令牌,再由网站服务器通过Siteverify验证令牌。正常的访客操作不包括打开Windows终端、运行PowerShell或执行剪贴板命令,因此这种要求本身已经越过网页验证的边界。
TerminalFix为何比普通ClickFix更危险

TerminalFix是ClickFix手法的变体,但改变了用户执行命令的位置。传统ClickFix通常把受害者引向Windows“运行”对话框;TerminalFix改用Windows Terminal或PowerShell,使复杂、多行脚本更可能被完整执行。
本次活动的危险之处还在于,它没有止步于投放单一窃密程序,而是把社会工程、载荷隐藏、持久化、域环境侦察、命令执行和网络隧道串成连续链条:
- 被入侵网站显示伪造的Cloudflare Turnstile覆盖层,并把恶意“验证命令”复制到剪贴板。
- 用户粘贴执行后,伪装的PowerShell脚本下载ZIP压缩包,将其解压到C:\ProgramData并静默启动批处理文件。
- 批处理文件运行微软签名的LockScreenContentServer.exe,由它加载同目录中的恶意dui70.dll。
- 恶意DLL启动下一阶段PowerShell,从攻击者控制的站点下载三份PNG文件,并从像素数据中提取可执行文件和拆分的DLL载荷。
- 载荷写入当前用户注册表Run键,同时创建周期性运行的计划任务,使恶意组件能够在重启后继续执行。
- 脚本枚举域信任、域管理员、Active Directory用户和计算机,并探测域控制器、数据库、备份、网关和邮件系统等目标。
- PowerShell文件监视循环读取写入本地文件的指令,以Invoke-Expression执行,再把结果写入输出文件。
- 攻击链带入Python运行环境,由pythonw.exe无窗口启动client.py并建立反向WebSocket隧道。
PNG在这里是载荷运输容器,并非最终恶意程序的普通图片外壳。组件从像素数据中提取后会在磁盘上重新组合,源图片随后被删除;隐藏目录和签名程序加载旁置DLL,又增加了仅凭文件外观发现异常的难度。
反向隧道把电脑变成内网跳板
最终部署的client.py会主动通过TLS端口443连接攻击者基础设施,再把会话升级为WebSocket。《The Register》8月31日的独立梳理 核对了PNG载荷和反向隧道链条,并指出该植入程序可提供类似SOCKS的TCP代理访问,让攻击者通过受害电脑连接其能够到达的内部系统。
这改变了风险边界:攻击者不必从公网直接连接防火墙后的服务器,而可以让受感染电脑代为访问。结合此前针对域控制器、数据库和备份系统等目标的侦察,该终端已经具备成为潜在横向移动入口的条件,处置范围不能局限于删除本机下载文件。
公开分析观察到的是侦察、任意PowerShell命令执行和代理访问能力,在所分析的链条中没有发现后续横向移动、数据外传或勒索软件投放。隧道能够支持进一步行动,但这不能证明相关行动已经在受害网络中发生。
执行过命令后应搜查哪些痕迹

尚未粘贴命令的用户应关闭页面,不要执行剪贴板内容,并把可疑网址交给所在组织的安全团队。若命令已经运行,关闭网页、终端或清理浏览记录都不足以处置事件;设备应与网络隔离并交由安全人员调查,同时尽量保留进程、PowerShell、文件、注册表、计划任务和网络遥测。
企业搜查应围绕连续行为和进程关系展开,因为目录名、任务名及其他单项指标可能变化:
- LockScreenContentServer.exe从C:\Windows\SystemApps以外的非标准路径运行,并加载同目录中的dui70.dll。
- C:\ProgramData下的隐藏或随机目录出现批处理文件、PNG下载记录、重组后的可执行文件或DLL,以及源图片被快速删除的痕迹。
- 当前用户注册表Run键与周期性启动同一载荷的计划任务同时出现。
- PowerShell执行域信任、域管理员、ADSI查询、服务器探测或Invoke-Expression文件监视循环。
- pythonw.exe在缺少正常开发用途的设备上启动client.py,并持续建立面向外部地址的TLS WebSocket连接。
- 同一终端在隧道建立前后连接此前探测过的内部服务器或异常TCP端口。
确认命中后,调查范围应覆盖该终端可访问的内部系统、异常认证、横向连接以及设备上可用的凭据。域加入设备尤其不能只检查本地账户;凭据轮换需要与取证和影响范围判断协调,避免过早破坏调查线索。
归因、感染规模和后续活动仍不明确
目前公开资料已经描述TerminalFix的入口、载荷执行、持久化、Active Directory侦察及反向隧道能力,但没有公开攻击者归属、目标组织总数或实际感染数量。各受害网络中是否已经发生进一步操作,也没有完整结论。
这起事件最清晰的判断线仍是操作系统执行边界:Cloudflare验证发生在浏览器与网站服务器之间,不需要访客替网页运行本地命令。一旦有人按照假验证层的提示执行过命令,安全团队就应把相关设备视为可能已向外部操作者提供内网代理访问的节点,并将排查范围扩展到它能够触达的网络。
订阅我们的新闻通讯
将最新 Web3、AI 和加密货币新闻直接发送到您的邮箱。