近日,一则关于iPhone曾存在14个安全漏洞,并已经被黑客组织利用的消息在国内外断断续续被报道,由于攻击目标较为集中同时具有针对性,因此一些第三方媒体开始猜测幕后的黑客组织的身份,习惯性的将攻击者归咎于一些会进行监控行为的国家。
鉴于此话题的敏感性,再次不过多暗示,那么我们先来对此事的总结以及利用的关键技术进行选择性展示。
事情的起因在于,谷歌的安全团队Project Zero威胁分析小组(Threat Analysis Group)发现,iPhone存在14个安全漏洞,而这些在野漏洞已经存在了两年,这也就意味着,这些漏洞已经被幕后黑客组织使用了至少两年。(有的已经被修复,有的被发现的时候没有被修复)
具体的利用场景大致为,只要用户访问一个网站,就有可能让黑客获得信息、照片、联系人和位置信息。类似于我们所说的水坑攻击。
此外,这些网站都已经被黑客入侵,因此可溯源性较弱。并且这些网站都挂载了漏洞利用代码,因此所有访问这些网站的用户,都会进行不分青红皂白的水坑攻击。
可见,这起攻击事件,目标也许均为会访问这些网站的用户。
因此,就有了后面的一些媒体,认为此次安全事件,就是为了对会访问这些网站的用户进行监控。
而访问的网站,也许是敏感网站,也许是非法网站,这些不得而知,从幕后的攻击者在获取了iphone的权限后,会获取什么样的数据,就大概能够明确攻击者的目的所在。
只需访问被黑的网站即可让攻击服务器攻击设备,如果成功,则会安装监控程序。根据谷歌估计,这些网站每周有数千名访客。
而幕后的黑客,利用14种不同的漏洞从iPhone上获取私人信息,实际上其构建了一整条完整的iPhone漏洞攻击链条,从水坑攻击,到低权限获取,再到突破沙箱提权,再到利用漏洞获取受害者设备上的所有未加密或者APP上的数据再发送到攻击者的服务器。
链条分为五个独立完整且独特的iPhone漏洞利用链,涵盖从iOS 10到最新版本iOS 12的几乎所有版本。这表明这个攻击组织至少花费两年的时间持续努力攻击某些社区的iPhone用户。
注意下图的版本号。
文末会给出每个攻击链中涉及的漏洞分析文章链接,由于本人对IOS的漏洞以及对其应用层和内核层无任何研究,因此下面的一些描述可能会存在错误(真心看不懂),见谅。
Chain1,影响IOS 10.0.1-10.1.1
一个可以突破Safari沙箱的内核漏洞
AGXAllocationList2 :: initWithSharedResourceList堆溢出。
是com.Apple.AGX kext的一部分,它是iPhone中嵌入式GPU的驱动程序。
Chain2,影响iOS 10.3到10.3.3,有趣的是这个漏洞还被该团队的成员提交过。
Chain3,影响iOS 11-11.4.1,libxpc中的沙箱逃逸漏洞
Chain4,影响iOS 12-12.1,这两个漏洞被发现的时候都属于系统没有打补丁的状态。
cfprefsd 漏洞,com.apple.cfprefsd.daemon 是由cfprefsd 守护程序托管的XPC 服务,由于其使用root权限,所以你懂的。
Chain5,影响11.4.1到12.1.2,该漏洞曾被安全研究人员在比赛中使用过
那么,一开始的浏览器漏洞在哪里呢?
可谓是万恶之源,入口点的关键,便在于此处,在iOS设备上获得初步立足点的WebKit漏洞。这里的所有漏洞都在iOS上的沙盒渲染器进程(WebContent)中实现shellcode执行。虽然iOS上的Chrome也容易受到这种攻击,但攻击者仅使用它们来攻击Safari和iPhone。
章节名为JSC漏洞利用,分为7个漏洞利用,其中范围从IOS 10.0到12.1.3均有浏览器漏洞利用代码,年份从17年到19年。
最后,通过上面的Webkit漏洞获得了内存读写权限后,便开始通过shellcode代码进行提权操作,构造JOP链,并指向JIT区域内的带有前面提到的突破沙箱限制的漏洞提权代码。
而此前都描述了攻击者如何在iPhone上以root身份获得绕过沙箱的代码执行权限。而在每个漏洞利用链的末尾,都可以看到攻击者调用posix_spawn ,将路径传递给他们在/tmp中释放的二进制文件。
而这些二进制文件,即后门主要用于窃取文件和上传实时位置数据。他们每60秒向攻击者的命令控制服务器请求命令。
下面的图片为谷歌安全研究员测试这些后门的用途的截图。
测试设备是运行iOS 12的iPhone 8,其发现后门可以访问流行的端到端加密应用程序(如Whatsapp,Telegram和iMessage)使用的所有数据库文件(在受害者的手机上)。
可以在这里看到左侧应用程序的屏幕截图,右侧是后门窃取的数据库文件的内容,其中包含使用应用程序发送和接收的消息的未加密明文:
WhatsAPP的
Telegram的
iphone的imessage的
视频群聊
以下是Google Hangouts for iOS中的对话以及后门上传的相应数据库文件。通过一些基本的SQL语句,我们可以轻松地看到消息的纯文本,甚至是共享图像的URL。
后门可以上传设备上所有应用程序使用的私人文件; 以下是通过Gmail发送的电子邮件明文内容的示例,这些内容会上传到攻击者的服务器:
Gmail的
联系人
并拍下他们所有照片的副本
实时GPS跟踪
如果设备在线,后门还可以实时上传用户的位置,每分钟最多一次。以下是带着植入后门的测试设备在手机上运行时,通过出门后,收集的实时位置数据的真实样本。
植入物上传设备的Keychain,其中包含设备上使用的大量凭证和证书。例如,所有已保存的WiFi接入点的SSID和密码:
从一堆代码分析里挑出的具有代表性的攻击代码图,结构体清晰可见,更多详情请看原文。
从攻击者的服务器开放的端口来看,还挺随意,1234
控制命令列表
此外,这些数据包的特征可以下规则捕获一下,可能有惊喜。
因此,从漏洞利用链条来看,这是一个完整的漏洞攻击链条,但是里面既有0day,又有Nday,很明显黑鸟认为Nday很有可能是通过自行分析或者购买而得,从而最终构成了整个攻击链条。
在今年2月,苹果在一次软件更新中修复了这些漏洞,没开自动系统更新的该更新一下了。
▲https://support.apple.com/en-us/HT209520
最后,正如谷歌所言,目前发现的攻击很可能只是幕后黑客组织的一部分,而从这一起事件可以看出,在0day这种未知漏洞面前,或Nday,不更新系统,无论是苹果还是安卓,风险都是一致的。
当然,普通用户完全可以放心,因为这类价值千万的漏洞,目标根本不可能是你们,如果你被攻击了,可能是你足够重要。
而这起事件,在你看完了整个分析链条的报告后,你才会感叹,一个拥有14个网络武器的黑客团队,具有能够隐藏两年并持续进行攻击,同时都没有被发现的能力,是多么牛×的一件事情。
同时对于谷歌,一个具有全球浏览器用户数据,足够全的pdns数据,最牛×的搜索引擎用户数据,最大的邮箱数据,同时还收购了Virustotal这样的既具备探针同时拥有全球会上传样本进行测试的黑客数据,还有输入法等等等等,对于捕获这种具有漏洞挖掘并且漏洞武器化的攻击,具有得天独厚的优势。
而最初对于APT(Advanced Persistent Threat,高级持续性威胁)攻击的定义以及捕获,在这次攻防双方,体现的淋漓尽致。
事件概述:
https://googleprojectzero.blogspot.com/2019/08/a-very-deep-dive-into-ios-exploit.html
分析文章链接:
iOS漏洞利用链#1
https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-1.html
iOS漏洞利用链#2
https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-2.html
iOS漏洞利用链#3
https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-3.html
iOS漏洞利用链#4
https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-4.html
iOS漏洞利用链#5
https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-5.html
JSC漏洞利用分析
https://googleprojectzero.blogspot.com/2019/08/jsc-exploits.html
漏洞植入方法分析
https://googleprojectzero.blogspot.com/2019/08/implant-teardown.html