当前位置:首页-正文

安全研究人员发布iOS核心漏洞概念验证攻击程序

今年三月份国外安全研究人员向苹果提交了 iOS 系统AVE驱动模块中可进行提权并造成闪存损坏的安全漏洞。

苹果公司随后在iOS 10.3.2版中对此漏洞进行了修复,日前这名安全研究人员已经公布了概念验证程序 ziVA。

该程序集成并利用 iOS 系统中七个漏洞展开攻击,最终可以通过漏洞进行提权进而直接控制整个被黑的设备。

概念验证程序的发布意味着iOS越狱开发团队可以借助这些漏洞来针对iOS 10.3.1及早期的版本开发越狱工具。

不过这名安全研究人员强调概念验证程序只是为了教育目的,帮助 IT 管理员和渗透测试人员进行安全性评估。

同时其强调相关程序和安全漏洞都不应该被应用在其他地方,而用户则应该尽管升级到 iOS 最新版确保安全

ziVA概念验证程序地址及相关说明:https://blog.zimperium.com/ziva-video-audio-ios-kernel-exploit/

利用的漏洞如下:

  • CVE-2017-6989: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6994: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6995: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6996: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6997: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6998: Adam Donenfeld (@doadam) of the Zimperium zLabs Team
  • CVE-2017-6999: Adam Donenfeld (@doadam) of the Zimperium zLabs Team

部分代码:

surface = (IOSurface *)OSMetaClass::allocClassWithName(“IOSurface”);
IORecursiveLockLock(provider->iosurface_array_lock);
if ( !surface )
{ IORecursiveLockUnlock(provider->iosurface_array_lock); return 0;
}
init_ret_code = surface->init(surface, provider, task_owner, surface_data);
/* At this point, the surfaces’ list is unlocked, and an invalid IOSurface object is in the list
*/
IORecursiveLockUnlock(provider->iosurface_array_lock);if ( !init_ret_code )
{ surface->release(surface); return 0;
}
surface = (IOSurface *)OSMetaClass::allocClassWithName(“IOSurface”);
IORecursiveLockLock(provider->iosurface_array_lock);
if ( !surface )
{ IORecursiveLockUnlock(provider->iosurface_array_lock); return 0;
}
init_ret_code = surface->init(surface, provider, task_owner, surface_data);if ( !init_ret_code )
{ surface->release(surface); /* Here our bad surface is freed *before* the kernel unlocks the surfaces’ list, Hence our bad surface is not accessible at anytime in case IOSurface::init fails. */ IORecursiveLockUnlock(provider->iosurface_array_lock); return 0;
}
IORecursiveLockUnlock(provider->iosurface_array_lock);
本文来源ZimPerium,由山外的鸭子哥转载或编译发布,如需转载请联系原作者。