网站首页 > 技术文章 正文
导语:这种攻击很难检测,因为空白减少了安全扫描仪将其标记为恶意的可能性。
一种新的JavaScript混淆方法利用不可见的Unicode字符来表示二进制值,在针对美国政治行动委员会(PAC)附属机构的网络钓鱼攻击中被积极滥用。
发现此次攻击的网络威胁实验室报告称,该攻击发生在2025年1月初,并带有复杂的迹象,例如使用了:
·针对受害者提供个性化的非公开信息;
·调试器断点和定时检查以逃避检测;
·递归包装邮戳跟踪链接到模糊的最终网络钓鱼目的地。
JavaScript开发人员在2024年10月首次披露了这种混淆技术,它在实际攻击中的迅速采用凸显了新研究被武器化的速度。
使JS有效负载“不可见”
新的混淆技术利用不可见的Unicode字符,特别是韩文半宽(U+FFA0)和韩文全宽(U+3164)。
JavaScript负载中的每个ASCII字符被转换为8位二进制表示,其中的二进制值(1和0)被不可见的韩文字符替换。
混淆后的代码作为属性存储在JavaScript对象中,由于韩文填充字符呈现为空白,因此脚本中的有效负载看起来为空,如下图末尾的空白所示。
隐藏恶意代码的空白
一个简短的引导脚本使用JavaScript代理的“get()陷阱”检索隐藏的有效负载。当访问hidden属性时,Proxy将不可见的韩文填充字符转换回二进制并重建原始JavaScript代码。
Juniper分析师报告称,攻击者除了上述步骤之外,还使用了额外的隐藏步骤,比如用base64编码脚本,并使用反调试检查来逃避分析。
韩文填充字符序列的Base64编码
Juniper解释说:“攻击是高度个性化的,包括非公开信息,最初的JavaScript会在被分析时试图调用调试器断点,检测到延迟,然后通过重定向到一个正常的网站来中止攻击。”
这种攻击很难检测,因为空白减少了安全扫描仪将其标记为恶意的可能性。
由于有效负载只是对象中的一个属性,因此可以将其注入合法脚本而不会引起怀疑;另外,整个编码过程很容易实现,不需要高级知识。
Juniper表示,此次活动中使用的两个域名先前与Tycoon 2FA网络钓鱼工具包有关。如果是这样,我们很可能会看到这种不可见的混淆方法在未来被更广泛的攻击者采用。
猜你喜欢
- 2025-05-02 对象 (基础详解)(对象指的是)
- 2025-05-02 JavaScript的核心易错点知识梳理(js的重点)
- 2025-05-02 本想搞清楚ESM和CJS模块的转换问题,没想到写完我的问题更多了
- 2025-05-02 19个基本的JavaScript面试问题及答案(都是实用技巧)免费送
- 2025-05-02 day11:前端面试题(js)(前端面试题汇总.pdf)
- 2025-05-02 前端面试:JavaScript 中有几种数据类型?
- 2025-05-02 前端开发基础-JavaScript(三)(前端开发的基础)
- 2025-05-02 小白教你JavaScript 第二讲(javascript教程 csdn)
- 2025-05-02 JS学习笔记:三、数据类型(js数据类型有)
- 2025-05-02 JavaScript数据类型(javascript数据类型分哪几种)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)