近日,网络安全研究人员发现iOS 16存在一种新的漏洞利用后持久化技术,即使受害者的苹果设备处于离线状态,也可以利用该技术悄无声息地访问该设备。
Jamf Threat Labs 的研究人员 Hu Ke 和 Nir Avraham 在与 The Hacker News 分享的一份报告中提到:这种方法诱使受害者认为他们设备的飞行模式正常工作,而实际上攻击者在成功利用设备后已经植入了一个虚假的人工飞行模式,该模式会编辑用户界面以显示飞行模式图标,并切断除攻击者应用程序外所有应用程序的互联网连接。
飞行模式允许用户关闭设备中的无线功能,从而有效阻止设备连接到 Wi-Fi 网络、蜂窝数据和蓝牙,以及收发电话和短信。
简而言之,Jamf 设计的这种方法会给用户造成一种 "飞行模式 "已开启的假象,但同时又允许恶意行为者悄悄地为恶意应用程序链接蜂窝网络。
研究人员解释说:当用户打开飞行模式时,网络接口 pdp_ip0(蜂窝数据)将不再显示 ipv4/ipv6 ip 地址。蜂窝网络断开就无法使用,至少在用户看起来是这样。
虽然底层更改由 CommCenter 执行,但用户界面(UI)的修改,如图标转换,则由 SpringBoard 负责。
因此,攻击的目的是设计一种人为的飞行模式,使用户界面的变化保持不变,但为通过其他方式安装在设备上的恶意有效载荷保留蜂窝连接。
研究人员说:在没有 Wi-Fi 连接的情况下启用飞行模式后,用户会认为打开 Safari 会显示无法连接互联网。然后会弹出一个通知窗口,提示用户关闭飞行模式。
为了实现这个情境,CommCenter 守护进程被用来阻止特定应用程序的蜂窝数据访问,并通过一个挂钩函数将其伪装成飞行模式,该函数会改变警报窗口,使其看起来就像飞行模式的设置已经被打开了。
值得注意的是,操作系统内核通过回调例程通知 CommCenter,CommCenter 再通知 SpringBoard 显示弹出窗口。
研究人员对 CommCenter 守护进程的进行仔细检查后还发现了一个SQL数据库的存在,该数据库用于记录每个应用程序的蜂窝数据访问状态(又称捆绑 ID),如果某个应用程序被阻止访问蜂窝数据,该数据库就会将标志值设置为 "8"。
利用这个已安装应用程序捆绑 ID 数据库,就可以使用以下代码有选择地阻止或允许应用程序访问 Wi-Fi 或蜂窝数据。
当与上述其他技术相结合时,这个虚假的'飞行模式'就会看起来与真实的'飞行模式'一样,只是互联网禁令不适用于非应用程序进程,例如后门木马。