导语:4月16日的RAS大会上,研究人员Adi Sharabani和Roy Iarchy公布了一个新的iOS漏洞,该漏洞属于"多设备攻击"的一种。
简介
对iphone用户来说,最大的噩梦应该就是设备永久被获取控制权,包括记录和控制所有的活动。本文讲述一种新的漏洞叫做Trustjacking,攻击者利用该漏洞可以完成上面描述的攻击,并获取iOS设备永久控制权。
该漏洞利用一个iOS的功能叫做iTunes Wi-Fi sync,这允许用户在没有物理连接到电脑的情况下管理iOS设备。当iOS设备和电脑连接在同一网络中时,只要iOS设备所有者点击一下,攻击者就可以永久获取设备的控制权。
相关漏洞和攻击
过去也有利用未授权的USB连接来从手机设备中窃取隐私信息的文章。
在iOS 7之前,iOS设备连接到计算机上不需要设备所有者授权的。
Juice jcaking用这种特征来从设备中窃取敏感信息,并安装恶意软件到受害者设备上。随后,Apple在允许同步操作之前增加了弹窗提示,通过要求用户授权来解决该问题。
Videojacking使用Apple连接器可被用作HDMI连接的特性,当iOS设备连接到恶意的充电器时,就可以对iOS设备录屏。
上面提到的攻击利用中,攻击者都可以访问用户敏感信息,而主要的限制就在于只有当设备与恶意硬件物理连接的时候才可能实现,一旦断开连接,攻击就停止了。
Trustjacking则不然,攻击者对设备获取持久的控制权,即使设备与恶意硬件断开连接,攻击仍然可以进行。为了了解其工作原理,先看一下什么是iTunes Wi-Fi sync。
iTunes Wi-Fi同步
iTunes Wi-Fi同步是iOS广受好评的一个功能,iOS设备利用该特征可以在不与计算机物理相连接的前提下与iTunes进行同步。
开启iTunes Wi-Fi同步首先需要与计算机物理相连,然后选择开启通过Wi-Fi与iOS设备同步的选项。
Trustjacking – 工作原理
当iOS设备与计算机相连,用户会被询问是否信任连接的计算机。如果选择信任计算机,那么就可以通过标准的iTunes APIs与iOS设备通信。
这样,计算机就可以在不需要用户额外确认和没有其他提示的情况下访问设备上的照片,执行备份,安装应用等等。一旦激活(开启)了“iTunes Wi-Fi sync”功能,即使计算机与iOS设备断开连接,只要都连在同一个网络,那么设备之间的通信就可以继续。还有一点就是,开启iTunes Wi-Fi sync不需要受害者的同意,可以完全在计算机端执行完成。
通过远程不断请求截屏或录屏都可以获取设备屏幕的实时流。
除非初始化阶段失败,授权恶意计算机外,没有其他的机制可以防止这种持续的访问。而且,授权计算机在USB断开后继续访问设备也没有向用户发出任何通知。
POC
假设下面的一个场景:受害者将手机连到机场的一个免费充电器上,手机上出现一个弹窗消息,请求受害者同意设备连接。那么同意该请求看起来非常合理,因为受害者想要充电,而该服务看起来就是合法的。而且同意以后也没有其他可疑的事情发生。
Trustjacking POC视频地址:
https://embed.ustudio.com/embed/DTkChBHtXcx2/UfREnMM6AY40
攻击流
从用户的角度看,他只是将设备连接到一个充电器或计算机上,而求选择信任它而已。
用户会觉得只有当设备与计算机物理相连的时候才会有可能发生攻击,所以断开连接就可以防止对私有数据的访问。即使设备连接的时间很短,攻击者也足以执行一些步骤来保证当物理连接断开以后,设备上所有的动作都是可见的。
攻击者需要执行下面的步骤:
· 允许设备连接到iTunes;
· 开启iTunes Wi-Fi sync.
恶意软件可以自动化的执行上面的步骤。他们也不需要受害者的任何同意,也不会触发设备上任何的提示产生。一旦这些动作完成,设备就不需要与攻击者的硬件物理相连了。完成这些步骤后,一旦受害者和攻击者连接到同一个网络,攻击者就可以远程控制设备了。
为了查看受害者的屏幕,攻击者需要安装与受害者设备iOS版本相匹配的开发者镜像,然后重复截屏,并实时查看设备屏幕。安装开发者镜像可以通过Wi-Fi完成,而不需要再与设备物理相连了。虽然重启可能会移除设备的开发者镜像,但黑客可以继续访问和安装。
进阶
除了远程查看受害者设备的屏幕,Trustjacking还允许攻击者做点别的。
另一个攻击者可以利用的功能是iTunes备份。通过创建设备内容的备份,攻击者可以获取很多的私人信息,比如:
· 照片;
· SMS,历史记录;
· APP数据等。
为了获取信息,需要对iTunes备份进行分段理解。
备份文件含有许多的元数据文件和备份文件本身。每个文件都保存在SHA1路径下(%domain%-%relativePath%),目录名是哈希值的前两个16进制字母。比如,一张路径为Media/DCIM/100APPLE/IMG_0059.JPG的照片会被保存在b1/b12bae0603700bdf7719c3a65b22ca2f12715d37目录下,其中b12bae…就是CameraRollDomain-Media/DCIM/100APPLE/IMG_0059.JPG的哈希值。所有这些备份文件都在Manifest.db文件中有说明,Manifest.db是SQLite3 数据库文件,可以通过下面的方式进行查询:
`SELECT * FROM Files WHERE relativePath like '%Media/DCIM%' ORDER BY relativePath;
上面的查询命令会列出所有备份的照片,包括其哈希值。
读取SMS / iMessage需要对另一个SQLite3数据库进行分段,该数据库位于3d/3d0d7e5fb2ce288813306e4d4636395e047a3d28(SHA1的哈希值是与HomeDomain-Library/SMS/sms.db文件相同的)。
iOS Trustjacking – 备份和恢复利用
攻击者还可以通过访问设备来安装恶意应用,甚至用修改的应用来替换已经安装好的APP,不仅能在用户使用APP时进行监控还可以利用一些私有的API来监控用户的其他活动。下面是视频是教我们如何识别设备的APP并用修改过的APP进行替换。
备份和恢复利用视频:
https://embed.ustudio.com/embed/DTkChBHtXcx2/UMQhu5XRecFM
iOS Trustjacking – 替换APP利用
攻击只局限于Wi-Fi吗?
上面描述的工具需要被攻击的设备和发起攻击的计算机连接到同一个网络。这意味着被攻击的设备和连接的Wi-Fi网络的距离要近一些,但这不是一个必须项。利用VPN服务器将设备与攻击者的计算机连接到同一个网络,就解决了连接网络的距离服务,并可以实现随时发起攻击的目的。
iOS 11加入新机制
Apple在了解到这个漏洞后,在iOS 11中加入一个机制来确保只有设备的所有者才能选择信任一个与之相连的新的计算机。这个过程是通过在选择授权或信任计算机时加入输入密码来完成的。
如上图所示,用户被告知“该授权只与设备与计算机相连相关”,这让用户相信与设备断开连接确保了没有人可以访问设备上的隐私数据。
所以说苹果在iOS 11中采取的解决办法并没有解决Trustjacking的本质问题。一旦用户选择信任一个被黑的计算机,之后的漏洞利用过程就和上面描述的一样了。
如果攻击者选择感染受害者的计算机而不是使用恶意充电器会怎么样呢?
恶意充电器攻击流的一个限制是攻击时间段的问题,而如果攻击者的计算机变成了恶意单元,那么攻击时间段就变大了。Trustjacking的最大功效发生了设备拥有者的计算机被恶意软件入侵。这样的话,攻击者的计算机一般都与iOS设备在一个比较近的距离。
解决方法
截止目前,还没有办法可以列出所有的可信计算机列表,然后选择行地去撤销。要确保安全,最好的办法是清除所有的可信计算机列表:
Settings > General > Reset > Reset Location & Privacy
清除后,下次iOS设备与计算机相连时就需要重新授权了。
为了保护设备备份,避免使用Trustjacking攻击获取额外的用户隐私信息,可以在iTunes中开启加密备份并且选择强密码。
在手机上安装一些安全防护软件也可以避免一些攻击。
对应用开发者来说,避免在iTunes备份中备份隐私数据可以减小数据被窃取的风险。