当前位置: 首页 > news >正文

隐形Unicode技巧:新型JavaScript混淆方法被用于针对美国PAC附属机构的网络钓鱼攻击

一种创新的JavaScript混淆技术正被积极滥用,该技术利用不可见的Unicode字符将恶意代码伪装成空白,从而在网络钓鱼攻击中有效规避检测。该攻击主要针对美国政治行动委员会(PAC)附属机构。

网络威胁实验室(Juniper Threat Labs)于2025年1月初发现此次攻击。攻击者展现出高度复杂性,包括使用受害者非公开的个性化信息、反调试机制,以及层层包装的跟踪链接。

攻击背景与技术起源

这种混淆技术最早由JavaScript开发者于2024年10月在公开研究中披露。短短几个月内,它便被武器化并投入实际攻击,这凸显了安全研究成果被快速利用的风险。

攻击的核心在于“让JS有效负载隐形”。具体方法是:将JavaScript负载中的每个ASCII字符转换为8位二进制表示,然后用两种不可见的韩文Unicode填充字符替换二进制值(0和1):

  • 韩文半宽填充字符(U+FFA0)代表0;
  • 韩文全宽填充字符(U+3164)代表1。

混淆后的代码作为JavaScript对象的一个属性存储。由于这些韩文填充字符在大多数编辑器和浏览器中渲染为空白,整个有效负载看起来就像一段空白代码。

隐藏在空白中的恶意代码示例(实际攻击脚本中,底部大片“空白”即为不可见字符序列):

(此处图片展示典型攻击脚本截图,空白区域隐藏着二进制编码的有效负载)

如何解码与执行隐藏负载

攻击者使用一个简短的引导脚本(bootstrap script)来恢复和执行隐藏代码。该脚本借助JavaScript Proxy的get()陷阱实现:当代码尝试访问隐藏属性时,Proxy会自动将不可见的韩文填充字符转换回二进制,再重建原始JavaScript代码。

为进一步增强隐蔽性,攻击者还对韩文字符序列进行Base64编码,并加入反调试检查(如调试器断点和定时延迟检测)。如果检测到分析环境,脚本会立即中止攻击并重定向到正常网站。

Phish & Chips: Serving Up Tycoon 2FA's Secrets | eSentire

Base64编码的韩文填充字符序列示例(常见于此类攻击的额外隐藏层):

(此处图片展示Base64编码后的字符序列)

攻击的个性化与规避能力

Juniper分析师指出,此次攻击高度个性化:钓鱼邮件包含受害者非公开信息,初始JavaScript会尝试触发调试器断点,检测到延迟后自动中止并跳转至良性页面。这种“条件执行”机制大大降低了被分析的风险。

此外,整个过程实现简单——只需基本编码知识即可完成,且有效负载可无缝注入合法脚本中,不会轻易引起安全扫描器的怀疑。空白外观显著减少了静态检测的命中率。

Inside Tycoon2FA: How a leading AiTM phishing kit operated at scale | Microsoft Security Blog

与Tycoon 2FA工具包的关联及未来影响

研究发现,攻击中使用的两个域名此前与Tycoon 2FA网络钓鱼工具包有关。这表明该隐形混淆技术可能很快被更广泛的攻击者采用,尤其是在AiTM(Adversary-in-the-Middle)钓鱼场景中。

Tycoon 2FA: an in-depth analysis of the latest version of the AiTM phishing kit

防御建议
  • 增强扫描器:更新安全工具以检测特定韩文填充字符(U+FFA0、U+3164),即使它们表现为空白。
  • 动态分析:优先使用行为检测和沙箱环境,而非仅依赖静态签名。
  • 代码审查:在审查JavaScript时,使用Unicode可视化工具检查隐藏字符。
  • 用户教育:警惕个性化钓鱼邮件,尤其涉及敏感政治或财务信息的场景。

这种“隐形代码”攻击展示了网络威胁演进的速度——从概念演示到真实武器化仅需数月。安全团队需持续关注Unicode相关混淆技术的发展,以有效应对未来变种。

http://www.jsqmd.com/news/679012/

相关文章:

  • Navicat导出Excel表格数据为空如何解决_过滤条件与权限排查
  • 2026年Q2无人值守洗车机厂家盘点:24小时无人值守洗车机/24小时无人自助洗车机/4s店洗车机/4s店自助洗车机/选择指南 - 优质品牌商家
  • 2026应急演练策划实施服务商标杆名录:防洪防汛应急演练公司/交通事故应急演练公司/公共卫生事件应急演练/公共卫生事件演练策划公司/选择指南 - 优质品牌商家
  • HBuilderX 3.1.22+ 原生隐私弹窗配置全攻略:手把手解决App上架因IMEI、MAC地址收集被拒
  • 面向高端汽车暖风系统控制器的功率MOSFET选型策略与器件适配手册
  • 终极指南:如何用ModTheSpire轻松扩展杀戮尖塔游戏体验
  • 单Agent 功能扩展:通过插件机制实现多场景适配
  • Go 语言变量
  • 手把手教你用CarMaker 10.2和Matlab R2021a搭建联合仿真环境(附避坑指南)
  • 晶体管工作原理与半导体技术解析
  • 2026年真空锅炉厂家排行:燃气热水锅炉、燃气蒸汽锅炉、电锅炉、节能环保锅炉、铸铝冷凝锅炉、锅炉安装、锅炉维修保养选择指南 - 优质品牌商家
  • 如何保证MongoDB文档的数据质量_JSON Schema验证规则配置
  • 渗透测试核心工具 BurpSuite 实战详解,零基础入门抓包改包,网安入门到进阶必备
  • Layui表单提交时如何防止用户重复点击提交按钮
  • 3分钟实现浏览器人脸识别:face-api.js零配置入门指南
  • 猫抓浏览器扩展:三步上手资源嗅探工具,轻松下载网页视频音频
  • 生物质锅炉自动上料控制系统功率MOSFET选型方案——高效、可靠与长寿命驱动系统设计指南
  • 告别Win10黑屏卡顿:深度排查Explorer.exe高CPU占用与启动失败的关联问题
  • 为什么92%的.NET开发者还在用同步推理?揭秘.NET 11新增System.AI命名空间与异步流式推理的5个关键转折点
  • PDF-XSS漏洞:从原理到实战的深度剖析
  • vue学习第二天-vue模板语法
  • 第七周结对编程
  • 基于BepInEx的炉石传说HsMod插件:55项功能深度解析与架构实现
  • 杰理之一拖八工具烧录介绍【篇】
  • 复旦微FM33FR0xx FL库GPIO实战:从点亮LED到按键中断,一个完整项目带你上手
  • SQL中如何获取所有列的数据:SELECT -星号用法与性能影响
  • ESP32-CAM发热严重还卡顿?可能是你的供电和代码没调对(附优化参数)
  • 【MATLAB代码介绍】三维环境下的IMM(交互式多模型),使用CV和CT模型,EKF作为滤波,目标高精度、自适应跟踪定位
  • StructBERT WebUI惊艳效果展示:三类典型句子对(同义/无关/相同)可视化对比
  • WindowsCleaner:从C盘爆红到系统焕新的智能管家