ios内核漏洞挖掘

ios内核漏洞挖掘

ID:33387113

大小:545.16 KB

页数:45页

时间:2019-02-25

ios内核漏洞挖掘_第1页
ios内核漏洞挖掘_第2页
ios内核漏洞挖掘_第3页
ios内核漏洞挖掘_第4页
ios内核漏洞挖掘_第5页
资源描述:

《ios内核漏洞挖掘》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、iOS内核漏洞挖掘-Fuzz&代码审计议程•iOS内核漏洞•Fuzz系统•代码审计•漏洞分析iOS安全体系•安全机制–CodeSign–Sandbox–Read-onlyRootFS–…•功能多在内核层实现–需要patch内核来defeatiOS内核漏洞•传统桌面系统内核漏洞–能在低权限帐户触发–修改进程标志位->提权为System进程•iOS内核漏洞–Sandbox内/外触发–Mobile/Root触发–Patch内核代码iOS内核溢出保护•溢出保护–KASLR–Kernelpointerobfuscation–Stack/Heapcookie–Kernelspaceis

2、olation–KernelcodepageisR-X–Kernelheapisnotexecutable–…议程•iOS内核漏洞•Fuzz系统•代码审计•漏洞分析Fuzz系统•WhyFuzz–容易实现–覆盖面广–Apple的代码质量不高–低投入高产出Fuzz系统•WhyNOTFuzz–分析困难(无法调试)–Panic多/Exploitable少–欠缺精度Fuzz系统•WheretoFuzz–ioctl–sysctl–IOKit–Filesystem–Network–…BestTarget•IOKit–扩展设备大多基于IOKit–调用接口简单-IOConnectCallMe

3、thod–IOKitExtensions大多闭源–部分设备可在sandbox内打开IOKitFuzz•被动Fuzz–更容易实现–测试面狭窄–需要人工干预–PoC精简相对麻烦•主动Fuzz–需要不少准备工作–测试覆盖面更广–自动化–PoC往往更简洁被动IOKitFuzz•核心思想–hook–CydiaSubstrate•需要依赖CydiaSubstrate环境•可以一次注入所有进程–Dyldinterposefeature•实现简单•需要自己实现注入–DYLD_INSERT_LIBRARIES被动IOKitFuzz•HookIOConnectCallMethodkern_re

4、turn_tIOConnectCallMethod(mach_port_tconnection,//Inuint32_tselector,//Inconstuint64_t*input,//Inuint32_tinputCnt,//Inconstvoid*inputStruct,//Insize_tinputStructCnt,//Inuint64_t*output,//Outuint32_t*outputCnt,//In/Outvoid*outputStruct,//Outsize_t*outputStructCntP)//In/Out被动IOKitFuzz•input–

5、填充随机uint64_t•inputStruct–任意填充随机数据–解析结构后替换某些数据•XML•…被动IOKitFuzz•注入进程选择–MobileSafari–…主动IOKitFuzz•枚丼所有可打开的设备•枚丼设备对应的扩展方法–selector–inputCnt/inputStructCnt–outputCnt/outputStructCnt•主动测试所有的接口主动IOKitFuzz•IOConnectCallMethod->IOUserClient::externalMethod–ifdispatch!=NULL•Sizecheck•(*dispatch->fu

6、nction)(target,reference,args);–elsemethod=getTargetAndMethodForIndex(&object,selector)•Sizecheck•method->func主动IOKitFuzz•FindstructurestructIOExternalMethodDispatch{IOExternalMethodActionfunction;uint32_tcheckScalarInputCount;uint32_tcheckStructureInputSize;uint32_tcheckScalarOutputCount;

7、uint32_tcheckStructureOutputSize;};structIOExternalMethod{IOService*object;IOMethodfunc;IOOptionBitsflags;IOByteCountcount0;IOByteCountcount1;};主动IOKitFuzz•Overridingmethods–externalMethod–getTargetAndMethodForIndex–getExternalMethodForIndex主动IOKitFuzz•动态获取–枚丼

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。