你的iOS设备New

上传人:re****.1 文档编号:567608827 上传时间:2024-07-21 格式:PPT 页数:59 大小:612KB
返回 下载 相关 举报
你的iOS设备New_第1页
第1页 / 共59页
你的iOS设备New_第2页
第2页 / 共59页
你的iOS设备New_第3页
第3页 / 共59页
你的iOS设备New_第4页
第4页 / 共59页
你的iOS设备New_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《你的iOS设备New》由会员分享,可在线阅读,更多相关《你的iOS设备New(59页珍藏版)》请在金锄头文库上搜索。

1、PWN你的iOS设备DarkMage & WindKnownCD-Team(http:/cd-team.org)介墩泣碎蝗示蒲荤靴懂削胚厌揍苛逮谐狗渺稀毖眠孙灸采赃免喝剐万做盔你的iOS设备New你的iOS设备New大纲iOS 保护机制用户态利用技术内核的利用技术攻击BootromJBM 3.0结论监拿氦氦划春硫筑节竖了毛枕褒出皑凑劲浸矗厄苛驱琢佩琶凰民放了奔置你的iOS设备New你的iOS设备NewiOS 保护机制矗厄柠世嫩献帛批熊铝巨线诚漾戚最裕拐鞋阎渤亦术校彝善掩资何希淬悟你的iOS设备New你的iOS设备NewiOS 保护机制沙盒 (Seatbelt)iOS 的沙盒是基于TrustBS

2、D策略框架的内核扩展模块针对每个进程都可以制定特殊的沙盒配置文件沙盒配置文件编译后以2进制的方式保存在KernelCache文件中(iOS下)需反汇编成可读的文本格式来查看内核中的沙盒规则慎胜渣碘象槐溪氨隧畅柏苯辫焕筋谅窿辩硅大靳塞筋石泌骄揉窑用鞍遂钧你的iOS设备New你的iOS设备NewiOS 保护机制沙盒规则的例子 (针对MobileSafari)采用正则表达式的规则语句iokit-open(allow iokit.math(“(IOSurfaceRootUserClient) |(IOMobileFramebufferUserClient) .”)流挽补狰痰围爪执钞义铆顽怠因矽酚寝徘豺

3、车势绕贞差快灿哲录服圣括疯你的iOS设备New你的iOS设备NewiOS 保护机制更多关于Apple的沙盒机制请阅读 “The Apple Sandbox” by Dionysus Blazakis按每耪刀曹博帕新郑满疫蛆贩龚伐胸葛句诲火署镁悄物毒撑榷勇日导鸡薄你的iOS设备New你的iOS设备NewiOS 保护机制代码签名所有的可执行文件、库文件都需要Apple签名后才可以运行在iOS中内核会在调用execve之前检测Mach-o文件中的LC_CODE_SIGNATURE段是否有效和可信任的无法分配RWX属性的内存页面 iOS启动的时候同样也会检测KernelCache的签名是否有效烟亦转捕

4、哇唬坊卷缕泽杖座症村恰内型毛莫咬贵数振独防痒动睬皿帖袄慑你的iOS设备New你的iOS设备NewiOS 保护机制页面执行保护XN (execute never) 标志位在ARMv6中被引入,从而在硬件上支持执行保护iOS中的栈和堆都是不可执行的内核不允许将页面保护标志设置为RWX脆搞懈济棚骚巍搏验鸥敦罗括绍旷馋锅液赏霹疤烤毗赏匈捶衅蒲刚诲柔宗你的iOS设备New你的iOS设备NewiOS 保护机制ASLR(地址空间随机化)Antid0te project是第一个针对越狱iPhone提供ASLR保护的程序随后Apple正式的在iOS 4.3中加入了ASLR的支持加入ASLR的目的主要是防御用户态

5、的ROP利用方法,例如JBM 2.0越狱程序同时ASLR也增加了越狱的难度 箱扬惦履关糕腐等怜嘘项答韭波冯搅缅彭鹅舰垫状恶沪硫惶页饮叁麻团匪你的iOS设备New你的iOS设备NewiOS 保护机制ASLR细节所有的模块都已经被映射到dyld_shared_cache文件中dyld_shared_cache整个文件被加载到一个随机的地址dyld和程序主文件的随机偏移是相同的MobileSafari的插件同样会被加载到随机地址呼赶染很须嗓阳市猖删鸟录抑钒街荤旁只熟莲冗失棚靛贱替汪掌丽丧穿环你的iOS设备New你的iOS设备New用户态利用技术孽没耘夜埔田钙危撂涯矣斑日益杜孜救戚金续呈反帆贰顿绒滚军

6、宇嗣默嘲你的iOS设备New你的iOS设备New用户态利用技术ARM基础知识32位RISC指令集通用寄存器:R0 R10特殊寄存器:SP LR PCThumb指令集合16位代码挪玛勋素述簧巾孟掘侵狭禾沧窝妒例剑漱汕顶裕卓渗扫讲宗乓砍铡凸颈赖你的iOS设备New你的iOS设备New用户态利用技术ARM调用规定R0R3用于传递前4个参数返回结果存储在R0和R1中系统函数调用设置R12为函数调用号,然后执行“svc 0x80”媒晨迪饮艘淑诀勋轴洱陵另赏草述随乳铱呀振剑铡榆选钝贿笆毋液诉链浑你的iOS设备New你的iOS设备New用户态利用技术ROP技术可用于绕过XN执行保护没有公开的方法来绕过ASL

7、R至少需要一个信息泄露的漏洞配合获得任何一个模块的随机偏移可以允许攻击者在所有模块中利用ROP所有模块的随机偏移是一致的仰底残恨途扇焉铡搔楼龋桶隘伦珊连童伏霉辙捷葬狭疑洁泵头缝饵趋扁蓖你的iOS设备New你的iOS设备New用户态利用技术ROP要求切换栈首先要求控制SP寄存器控制R0R3来传递参数控制返回地址右肃蝴拿错帖触哭唬国功肯茁醒刷绒仁泻食访哆锅诺双区散篓诡党梭二霜你的iOS设备New你的iOS设备New用户态利用技术选择ROP的模块许多模块都可以用来实现ROP针对iOS 4.3,可以选择dylddyld加载在固定地址 - 0x2FE00000针对iOS 4.3,由于所有模块ASLR的偏

8、移是一样的,任何模块都可以被利用JBM3选取了几个模块的指令来完成ROP弗具躬专因现兴骤酸砧抠赣庚堤媒赴桩拖尧椅照蹲贿搬锅吠谗藤秧鹿忠窃你的iOS设备New你的iOS设备New用户态利用技术JBM3使用的ROP举例栈切换将 sp 设置为之前栈中的某个值售沁吞赃惺蓄鳞河咨刚存处连圣期那舟辙忱株币受臭兜气灰虎瘤乓官叙创你的iOS设备New你的iOS设备New用户态利用技术JBM3使用的ROP举例控制R0R3传递参数函数调用保存函数返回值读取函数返回值郧翼速螺檬咆惩钟质蜜浸代发嫡戳妆朗题绷柠幂瘪蔑笑柒擅疚峪货舍迈女你的iOS设备New你的iOS设备New内核的利用技术铝份魏蜜砸滇止侣法着疼痒崎喇田米

9、大刊杀患涪溜匠郑梁门迎溜墓楚衣渊你的iOS设备New你的iOS设备New内核的利用技术iOS内核以及内核扩展均已加密的方式存储在KernelCache文件中可以在theiphonewiki上查询各个版本的解密KeyiOS的内核没有ASLR保护需要用ROP的方式来编写内核的利用程序需要比windows下更加复杂和完善的ROP framework敝迁揖挞香糕服悄忻趟将它琳赡臣鲤绰嘘若冬仆遣甄室算沸商亡淤山死韵你的iOS设备New你的iOS设备New内核的利用技术iOCoreSurfaceRoot 内核整数溢出在处理IOSurface properties存在一个整数溢出漏洞 (iOSurfaceW

10、idth 等)该漏洞用于JBM2.0中越狱,针对iOS stack用于存储charstring指令的中间数和结果decoder-buildchar由字体文件中的/BuildCharArray指令来定义装拷逝诚圾芝呈胖杜萝久宫圃痒脉师芯陇奶驼背吮溶寨玖嫂笑摆栈同疟泵你的iOS设备New你的iOS设备NewJailBreakMe 3.0JBM3是如何构造ROP的利用charstring命令将指令写到 decoder-buildchar 2 24 callothersubrdecoder-buildcharidx = top0;op_callsubr字体文件中还包含一些子过程货龟孜测树前帅镊肉努赫虹

11、火捶腾膀毒遭刊恶机留埋择晤酿甚充晌卯理抓你的iOS设备New你的iOS设备NewJailBreakMe 3.0JBM3如何绕过ASLR这个漏洞允许攻击者读写栈decoder结构存储在栈中decoder-parse_callback存储了T1_Parse_Glyph函数指针获取parse_callback的值 - 获取libCGFreetype模块的随机偏移凿茁俄磐裴丫疵簧辗敏窗构覆馋盛廖峙足矣所护鉴搽腔乏赴姜甄面洱乌醒你的iOS设备New你的iOS设备NewJailBreakMe 3.0绕过ASLR细节设置arg_cnt = (0xfea50000 16)top = top + 0x15bop

12、_setcurrentpointy = top1; / y = T1_Parse_Glyph函数地址设置top0 = 默认T1_Parse_Glyph函数地址 (没有ASLR偏移的情况下) 2 21 callothersubr poptop0 -= top1; / 计算出ASLR偏移孤芥坑婆朴千呀啡情腾匣刁炼涵俱丰闺虽埋舆妙入捏员沛傀猿望柑化菏别你的iOS设备New你的iOS设备NewJailBreakMe 3.0最后触发漏洞构造完ROP覆盖decoder-parse_callback指针op_seact1_decoder_parse_glyphdecoder-parse_callback开始

13、执行ROP觉靴任宙鹰贷事菊姜芹疾悉叉宁奇骏虚邻瘪痞无瘩宠获存斜哑疟挫罪坐樊你的iOS设备New你的iOS设备NewJailBreakMe 3.0JBM3 ROP 代码首先溢出了一个内核漏洞mach_task_selfIOServiceMatchingIOKitWaitQuietIOServiceGetMatchingServicesIOServiceOpenIOConnectCallScalarMethodIOConnectCallStructMethodIOServiceClose师鄂枣磐乓肄谗志赁宇缘钙垢枚俞畴名发瞧章噶煽鹏闯疫量陈故诣枢辜锐你的iOS设备New你的iOS设备NewJail

14、BreakMe 3.0JBM3 ROP 代码随后释放可执行文件并运行buffer = malloc(0x8670)uncompress(buffer, &size, subroutine 0 data, 0x2d49)zlib压缩的mach-o文件open(“/tmp/locutus”)write(file, buffer, 0x8670)closeposix_spawn - 运行 locutus力东网胎桃戎求伊导康硅态顽额透傣完酉獭瞒张日瓦尹跃批耘揉茎君昔继你的iOS设备New你的iOS设备NewJailBreakMe 3.0IOMobileFrameBuffer 内核提权利用IOMobil

15、eFrameBuffer kext 允许被MobileSafari通过IOMobileFramebufferUserClient接口调用IOConnectCallScalarMethodHotPluginNotify 0x15IOConnectCallStructMethodSwapEnd 0x05棱徐奥僧阉候懂晶硬郧贪桌冻颠晌单伯单学滓伺刺存糯私簇遵凸烫褥更牧你的iOS设备New你的iOS设备NewJailBreakMe 3.0IOMobileFrameBuffer 内核提权利用导致 IOMobileFrameBuffer:swap_submit函数的 transaction结构中一个指针被

16、修改内核ROP!增加0号系统调用的代码,任何进程调用syscall(0)直接拥有r00t权限/tmp/locutus嫉孝翱鬼该涂币股锁拙空朝眶矫帘姐雨鄂昭嘎布口度副共醇妆昼递全醉荆你的iOS设备New你的iOS设备NewJailBreakMe 3.0关闭代码签名修改vm_map_enter(protect)函数允许创建RWX内存页修改“cs_enforcement_disable”变量为TRUE修改PE_i_can_has_debugger函数中的一个变量为TRUE修改AMFI模块里面某个函数强制返回为TRUE保凉纠冒蛙酣短作时蹈播题腥渭萤看彰钱做絮塌坡贼轻瘦领太铸兼龙浅很你的iOS设备New

17、你的iOS设备NewJailBreakMe 3.0替换sandbox在内核中hook sb_evaluate函数对除了User应用程序(/private/var/mobile)以外的任何程序关闭沙盒骇淀羽走靖篇妹哮穴筛芍妙控讯尿枷索答烷许涉镣乞镍盅聪疲纵强阑拌废你的iOS设备New你的iOS设备NewJailBreakMe 3.0替换Sandbox咋勒葫阀伙撒怠阂初弧晤辙杖呵狙畜弃畔蛮盛激镐璃浦掺藩貌瞳磋瑞赎惕你的iOS设备New你的iOS设备NewJailBreakMe 3.0修改 JBM3JBM3同样能带来危害,攻击者可以修改JBM3的样本来传播iOS恶意软件替换locutus应该是最简单

18、的方式Locutus大小是固定的0x2d49 (压缩后的大小)我们可以替换一个更小的mach-o文件变颈玛帛构隋鹊跪意咎解棵干库碱皆继算棠春肖叶摹孽盆贮拦晾浸郑滥亚你的iOS设备New你的iOS设备NewJailBreakMe 3.0替换 LocutusLocutus 文件存储在字体文件的 subroutine 0解压获取字体文件 - 替换 subroutine 0 数据 - 重新压缩字体文件 (保证大小不变) - 替换 PDF 中的字体文件此外还需要修改一个变量 - 0x2d49该值在uncompress时使用搜索 “ff 10 00 2d 49”替换为新locutus压缩后的大小新 loc

19、utus调用syscall(0)获取root权限原喇乓断签杉寻掖瘴吨涯触甭夸困沂柑寄敲尽任坷犬陌电戴腹埔懊窗凳惭你的iOS设备New你的iOS设备NewJailBreakMe 3.0修改 JBM3 Demo演示复趁盐戎疮置诅刘业青柱跟与径撼野礼辞箔嫁涤效怀诺沾槛遗呕赚娄雌荐你的iOS设备New你的iOS设备New结论浑之刷唁喻剖弹殊函互御饥碱柳屎佩辊闲古坯控兵勋讹瞄消锤袄鸣羊酋曹你的iOS设备New你的iOS设备NewiOS 4.3.4(5)修补JBM 3.0的两个漏洞修补了ft_var_readpacketpoints()函数缓冲区溢出漏洞另外的一个字体格式的漏洞,Freetype已在一年前

20、修补修补了ndrv_setspec() 完美越狱的内核漏洞在dyld中修补了Incomplete codesign的利用技术宽付井买擅思阅烦守卖伦牲邮敖七酵牌牛峪驴鉴芥清阔诬服帘俄范谨弹见你的iOS设备New你的iOS设备New感谢!Xcon/0x557/CD-team疑问?背窝询兼船圃刽喇滨砒驴泵规堰窃矾让四遵毁剿揖勤平汛佣扰娩杜华架蹲你的iOS设备New你的iOS设备NewCD-Team介绍CD-Team(CN Dev Team) 是一个由来自国内计算机安全行业的专业人士组成的iOS设备越狱研究小组。团队成员以前主要是从事windows/linux/unix/mac 等系统的漏洞挖掘/逆向分析研究, 由于大家都对iOS设备有深厚的兴趣,所以走到一起,一起研究和学习。CD-Team http:/cd-team.org涨阵罚冬腮龋落污兑涯墅哦引肛炔会患坎酸挫遍揉贤菏冗针须喳意暗凶氖你的iOS设备New你的iOS设备New加入CD-Team?如果您对iOS设备的安全研究有兴趣的话,可以加入我们.要求要求:熟悉ARM 逆向熟悉XNU 内核熟悉MAC/IOS下漏洞挖掘技术熟悉WCDMA/CDMA通信协议熟悉手机底层硬件模块、有高通芯片底层开发经验熟悉C/OBJ-C开发述童阶瘴溃紧倔僚惕助何酉救箭属咨喊绑酮搐淌娟沥叁痕氓日钒案削胡杏你的iOS设备New你的iOS设备New

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号