
自2025年11月以来,多个商业监控供应商及国家支持的黑客组织利用名为DarkSword的iOS全链漏洞利用工具包,针对沙特阿拉伯、土耳其、马来西亚和乌克兰的iPhone用户发动了定向攻击。该工具包串联了六个漏洞(其中包含四个0Day),实现了从远程代码执行到内核权限获取的完整攻击链。
攻击链技术拆解
DarkSword的攻击完全基于JavaScript实现,旨在绕过苹果的页面保护层(PPL)和安全页表监视器(SPTM),最终执行未签名的原生代码。
初始入口:
rce_loader.js 根据iOS版本(18.4至18.7)分发对应的利用模块。
JavaScriptCore远程代码执行(RCE):
- iOS 18.4:
rce_worker_18.4.js 利用 CVE-2025-31277(JIT优化/类型混淆)。
- iOS 18.6/18.7:
rce_worker_18.6.js / rce_worker_18.7.js 利用 CVE-2025-43529(DFG JIT层释放后使用,0Day)。
指针认证绕过:
rce_module.js 调用 CVE-2026-20700(dyld用户态PAC绕过,0Day),为后续的代码执行铺平道路。
沙箱逃逸:
- 第一阶段:
sbox0_main_18.4.js / sbx0_main.js 利用 CVE-2025-14174(WebGL操作越界内存访问,0Day)逃逸WebContent沙箱。
- 第二阶段:
sbx1_main.js 利用 CVE-2025-43510(XNU内核写时复制错误)逃逸GPU沙箱。
本地权限提升:
pe_main.js 利用 CVE-2025-43520(XNU虚拟文件系统内核态竞争条件)获取完整内核权限。
载荷投递:
最终加载Payload库,部署后门。
漏洞利用细节与修复对照

下表总结了攻击链中涉及的六个CVE,请确保相关系统已更新至修复版本:
| CVE编号 |
受影响组件 |
利用模块 |
0Day |
漏洞类型 |
修复版本 |
| CVE-2025-31277 |
JavaScriptCore |
rce_module.js |
否 |
JIT优化/类型混淆 |
iOS 18.6 |
| CVE-2025-43529 |
JavaScriptCore |
rce_worker_18.6.js, rce_worker_18.7.js |
是 |
DFG JIT层释放后使用 |
iOS 18.7.3, 26.2 |
| CVE-2026-20700 |
dyld |
rce_worker_18.4.js, rce_worker_18.6.js, rce_worker_18.7.js |
是 |
内存损坏/用户态PAC绕过 |
iOS 26.3 |
| CVE-2025-14174 |
ANGLE |
sbox0_main_18.4.js, sbx0_main.js |
是 |
WebGL操作越界内存访问 |
iOS 18.7.3, 26.2 |
| CVE-2025-43510 |
XNU内核 |
sbx1_main.js |
否 |
内存管理/写时复制错误 |
iOS 18.7.2, 26.1 |
| CVE-2025-43520 |
XNU内核 |
pe_main.js |
否 |
VFS实现内核态竞争条件 |
iOS 18.7.2, 26.1 |
深入分析:CVE-2026-20700
CVE-2026-20700 是苹果动态链接器 dyld 中的一个内存损坏漏洞。dyld 负责应用启动时加载动态库,是iOS系统的核心组件。
技术原理
漏洞源于 dyld 状态管理错误,允许攻击者在具备内存写入能力后触发缓冲区溢出,覆盖关键指针,从而绕过A12+芯片引入的指针认证码(PAC)机制。在DarkSword攻击链中,该漏洞由前序JavaScriptCore RCE(CVE-2025-31277 或 CVE-2025-43529)提供写入原语,成功绕过PAC后为后续沙箱逃逸和内核提权铺路。
攻击向量与利用复杂度
攻击向量为本地,但攻击复杂度低且无需用户交互。在DarkSword的实际利用中,通过串联WebKit RCE漏洞,该漏洞从本地提权升级为远程攻击入口,实现了零点击设备控制。
关联漏洞
苹果指出该漏洞与WebKit漏洞CVE-2025-14174和CVE-2025-43529(2025年12月修复)串联使用,形成了完整的攻击入口。
社会影响
- 商业监控关联:利用手法与NSO Group等商业监控厂商开发的工具高度相似,表明漏洞被用于定向监控。
- 长期潜伏风险:漏洞自iOS 1.0即存在,暴露了
dyld 这类基础组件因“稳定”而被忽视的安全审计盲区。
- 供应链警示:苹果全线操作系统均受影响,凸显基础组件漏洞对整个生态系统的连锁影响。
- 政策响应:CISA KEV机制为全球组织提供了漏洞优先级修复的权威依据。
后渗透阶段
成功利用后,攻击者根据所属组织部署定制化的数据窃取载荷:
GHOSTKNIFE(归属:UNC6748)
- 传播:通过仿冒Snapchat网站(snapshare[.]chat)投放。使用带反调试和会话存储指纹识别的混淆加载器,避免重复感染。
- 功能:JavaScript后门,窃取已登录账户、消息、浏览器数据、位置历史、麦克风录音。通信采用ECDH+AES加密的自定义二进制协议,并主动删除设备崩溃日志以规避取证。
GHOSTSABER(归属:PARS Defense)
- 目标:土耳其、马来西亚。
- 传播:升级传播机制,利用ECDH密钥交换加密漏洞利用阶段,提升操作安全性。
- 功能:支持超过15种C2命令,包括设备枚举、文件窃取、任意SQLite查询、照片缩略图上传。部分命令(如录音、实时地理位置)未在JavaScript植入程序中完全实现,需从C2下载后续二进制模块。
GHOSTBLADE(归属:UNC6353)
- 传播:疑似俄罗斯背景(代码含俄语注释)。通过入侵乌克兰网站,嵌入隐藏iFrame静默加载DarkSword。GTIG与CERT-UA合作缓解其在乌克兰的持续活动(截至2026年3月)。
- 功能:全面数据挖掘工具,窃取iMessages、Telegram、WhatsApp数据、加密货币钱包、Safari历史记录/Cookie、健康数据库、钥匙串、位置历史、Wi-Fi密码。不持续运行,无交互式后门,但收集范围极广。代码中包含未实现函数
startSandworm(),暗示可能的新工具。
总结

DarkSword不仅是一个漏洞利用工具包,更是一次对苹果移动操作系统防御体系的完整穿透测试。其技术架构体现出以下特征:
- 全链覆盖:从JavaScriptCore到XNU内核,六个漏洞在逻辑上紧密耦合,前一阶段为后一阶段提供原语支撑,形成了无需用户交互的零点击利用链。
- 版本适配:攻击代码针对 iOS 18.4至18.7的细分版本 分别封装(如
sbox0_main_18.4.js 与 sbx0_main.js),表明攻击者在测试环境中完成了系统化的兼容性验证。
- 模块化设计:RCE、PAC绕过、沙箱逃逸、提权、载荷投递各阶段解耦为独立的JavaScript模块,便于攻击者根据漏洞补丁状态快速替换或更新某一环节。
从威胁态势看,DarkSword的部署者覆盖了商业监控供应商和国家背景行为体,其目标从传统的情报窃取扩展到实时监控和持久化访问,反映出移动端定向攻击正在向产业化、定制化方向演进。对于安全从业者和研究人员而言,持续跟踪此类高级威胁的工具、战术和流程,是理解现代攻击面管理和防御策略的关键。在云栈社区等专业平台上,这类深度分析和技术讨论能够帮助我们共同构建更有效的安全认知体系。
|