“远程越狱”间谍软件Pegasus技术分析

  上周苹果紧急发布了iOS 9.3.5,修复了三个0day漏洞,这3个漏洞能让攻击者对 全球范围内的iPhone进行监听 。

  这三个漏洞被爆出的起因是因为以为阿联酋的人权活动人士在8月10日、11日,分别收到的两条短信,短信中附有链接,短信称链接网站里包含囚犯在阿联酋遭受虐待的“新秘密”。实际上这位人权活动人士对这种包含链接的短信已经见怪不怪,因此他没有点击链接,而是立即把短信转发给了 Lookout和公民实验室的 研究人员。

物联网

  Lookout公司的研究人员通过研究发现,用户点击短信内的链接后,攻击者就会 利用3个0day漏洞,对用户手机“远程越狱”,然后安装间谍软件,随后就能对设备进行全面控制,还能获取设备中的数据,通过麦克风监听对话,跟踪即时通讯应用的对话内容等。Lookout公司把这款恶意软件命名为 Pegasus,并对其技术细节进行了分析。

  攻击过程

  Pegasus的可怕之处在于,攻击过程基本不需要用户交互,用户所要做的仅仅是点击一个链接,接着,攻击者就可以静默地传送payload,然后远程越狱,安装间谍软件。用户唯一能感知到的情况就是点击链接之后,浏览器自动关闭了。间谍软件中包含恶意代码、进程和用于监控用户行为并进行反馈的app。这款间谍软件能够获取系统内置软件中的短信、通话记录、邮件、日志,还有下列app中的信息:

  Gmail

  Facetime

  Facebook

  Line

  Mail.Ru

  Calendar

  WeChat

  Surespot

  Tango

  WhatsApp

  Viber

  Skype

  Telegram

  实际上,iOS的安全机制并不允许应用相互监控,但是可以在越狱的设备上安装用户监控的hook。Pegasus就是利用了远程越狱和hook。Pegasus将它的动态库插入到设备里的针对正规进程中。这些动态库之后就会使用Cydia Mobile Substrate框架去hook应用。

  简要来说,攻击共分为三个阶段:

物联网

  第一阶段 :传送并利用WebKit漏洞,通过HTML文件利用WebKit中的CVE-2016-4655漏洞。

  第二阶段 :越狱。在第一阶段中会根据设备(32/64位)下载相应的,经过加密混淆的包。每次下载的包都是用独一无二的key加密的。软件包内包含针对iOS内核两个漏洞(CVE-2016-4656和CVE-2016-4657)的exp还有一个用来下载解密第三阶段软件包的loader。

  第三阶段 :安装间谍软件。经过了第二阶段的越狱,第三阶段中,攻击者会选择需要监听的软件,把hook安装到应用中。另外,第三阶段还会检查设备之前有没有通过其他方式越狱过,如果有,则会移除之前越狱后开放的系统访问权限,如ssh。软件还有一个“故障保险“,如果检测到设备满足某些条件,软件就会自毁。

  第三阶段中,间谍会部署一个test222.tar文件,这是一个tar包,包中包含各种实现各种目的的文件,如实现中间人攻击的根TLS证书、针对Viber、Whatsapp的嗅探库、专门用于通话录音的库等。

  攻击影响的系统范围非常广泛,从iOS 7.0以上直至8月8日发布的9.3.4都受到波及。

  “Trident“漏洞详情

  CVE-2016-4655 : Safari Webkit内存损坏.

  Safari Webkit中存在一个漏洞,能够执行任意代码。Pegasus会利用这个漏洞获取Safari浏览器内的代码执行权限。

  CVE-2016-4656 : 内核信息泄露KASLR保护绕过漏洞

  在Pegasus进行越狱之前,它首先得确定内存中内核的位置。苹果系统中的KASLR保护就是把内核映射到不可预测的内存地址,以起到保护的作用。

  但是在这个漏洞中,攻击者使用一个函数调用,这个函数会在返回值中没有经过混淆的内存地址。

  CVE-2016-4657 : 内核内存损坏(用于越狱)

  最后这个漏洞用于越狱。漏洞基于内存中的内存损坏漏洞。针对iOS各版本的不同,exp也各有不同。这个漏洞非常复杂,因此,Lookout需要进一步研究,之后会发表更详细的报告。

  越狱过程

  • 关闭内核安全保护,关闭代码签名机制

  • 重新挂载系统分区

  • 清理Safari缓存(为了清理痕迹)