查看原文
其他

如何利用Printconfig dll:从 iPhone 到 NT AUTHORITY\SYSTEM 的真实案例

Decoder 代码卫士 2022-05-23
 聚焦源代码安全,网罗国内外最新资讯!
编译:奇安信代码卫士团队
本文是研究员 decoder(昵称)撰写的博客,通过获取 iPhone NT AUTHORITY\SYSTEM 的真实案例说明如何利用 Printcofig dll奇安信代码卫士编译如下:
前一段时间,我和我的“业务搭档”@padovah4ck正在寻找可通过硬链接实施利用的权限文件操作。
某一刻,目录c:\programdata\apple\lockdown 吸引了我们的注意力。
该文件夹由iTunes软件安装的“AppleMobile Device Service”所使用。该服务以本地系统权限运行,负责处理通过 USB 端口和苹果设备(iPhone、iPad 等)开展的通信。


如下可见,标准的用户可在这个目录中添加文件:


每次插入新的设备时,驱动就会在目录中以 <UDID>.PLIST 的格式写一个“pairing certificate”文件,其中 UDID 是苹果设备的通用ID。
于是插入我们的苹果设备。之后会生成一个“pairingcertificate”,而文件的许可设置如下:


我们可以看到,用户仅拥有对该文件的读取权限。
但有意思的部分来了。如果你拔掉设备并再次插入,就会发生一些“魔法”,导致用户完全控制该文件:

我们可以通过Sysinternals 的“procmon”工具观察到这种“奇怪”行为:


提升后的上下文 (SYSTEM)调用SetSecurity,并将授予用户对资源的完整控制权。问题是,这一操作是可被利用的吗?
是的!输入“NATIVEHARDLINKS”……
标准的Windows 用户无需特殊权限就能创建这种类型的链接,我们使用 Forshaw 的工具进行管理。
那么,何不在这个文件上设置一个“原生硬链接”并将其指向只有系统才能完全控制的资源?
这就是我们接下来要做的事情,从<udid>.plist 文件中给位于 System 32 文件夹中的 license.rtf 设置一个硬链接:


现在,我们只需要插入苹果设备就能够修改目标文件的权限:


成功了!
到此为止,我们已经解决了所有的译文,只需要将目标文件修改为 printcofig.dll 之后通过自己的 dll 进行覆写、开启 XPS 打印任务,最后享受 SYSTEM shell 即可(请读者自行体会这种兴奋)。视频地址:https://www.youtube.com/watch?v=3hEizbfSGUA

边界条件


  • 需要具备Windows 机器上的用户shell 访问权限。

  • 应该安装iTunes 和Apple Mobile Device Service。我们在最新的 iTunes 版本上测试成功(本文发布时最新版本是12.10.3)。

  • 为了进行测试,需要能够物理访问机器,以便插入苹果设备,但这并非必须条件。在“攻击者场景”下,你可以删除 *.plist 文件,创建指向该目标 dll 的同样的 *.plist 文件并等待设备插件。我们发现有时候设置无需配对设备就能够设置完整权限,但还需进一步调查验证。


    披露时间线


  • 2019-09-13:我们将问题告知 product-security@apple.com

  • 2019-09-18:苹果要求重新发送屏幕截图

  • 2019-10-10:苹果表示打算在新版本中修复该问题

  • 2019-10-30:苹果发布 iTunes 12.10.2 但未修复该问题

  • 我们多次试图和苹果沟通该问题,但未获得任何回应

  • 2019-12-09:我们通知苹果称将在12月12日公开该问题(90天的期限截止日)

  • 2019-12-11:苹果发布 iTunes 12.10.3但并未修复该问题

  • 2019-12-12:苹果仍未回复,本文发布。

提示


通用硬链接“滥用”无法在 Windows 未来版本中起作用。在最新的“Insider”预览版中,微软已经增加了一些额外检查,因此如果你不具备对该目标文件的写入权限,如果尝试创建硬链接则会收到拒绝访问的错误提示信息。




推荐阅读

iPhone 蓝牙流量被指在某些情况下泄露用户电话号码



原文链接
https://decoder.cloud/2019/12/12/from-iphone-to-nt-authoritysystem/



题图:Pixabay License



本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存