《你的iOS设备New学习资料》由会员分享,可在线阅读,更多相关《你的iOS设备New学习资料(59页珍藏版)》请在金锄头文库上搜索。
1、PWN你的iOS设备,DarkMage op_callsubr 字体文件中还包含一些子过程,JailBreakMe 3.0,JBM3如何绕过ASLR 这个漏洞允许攻击者读写栈 decoder结构存储在栈中 decoder-parse_callback存储了T1_Parse_Glyph函数指针 获取parse_callback的值 - 获取libCGFreetype模块的随机偏移,JailBreakMe 3.0,绕过ASLR细节 设置arg_cnt = (0 xfea50000 16) top = top + 0 x15b op_setcurrentpoint y = top1; / y = T
2、1_Parse_Glyph函数地址 设置top0 = 默认T1_Parse_Glyph函数地址 (没有ASLR偏移的情况下) 2 21 callothersubr pop top0 -= top1; / 计算出ASLR偏移,JailBreakMe 3.0,最后触发漏洞 构造完ROP 覆盖decoder-parse_callback指针 op_seac t1_decoder_parse_glyph decoder-parse_callback 开始执行ROP,JailBreakMe 3.0,JBM3 ROP 代码 首先溢出了一个内核漏洞 mach_task_self IOServiceMatch
3、ing IOKitWaitQuiet IOServiceGetMatchingServices IOServiceOpen IOConnectCallScalarMethod IOConnectCallStructMethod IOServiceClose,JailBreakMe 3.0,JBM3 ROP 代码 随后释放可执行文件并运行 buffer = malloc(0 x8670) uncompress(buffer, &size, subroutine 0 data, 0 x2d49) zlib压缩的mach-o文件 open(“/tmp/locutus”) write(file, bu
4、ffer, 0 x8670) close posix_spawn - 运行 locutus,JailBreakMe 3.0,IOMobileFrameBuffer 内核提权利用 IOMobileFrameBuffer kext 允许被MobileSafari通过IOMobileFramebufferUserClient接口调用 IOConnectCallScalarMethod HotPluginNotify 0 x15 IOConnectCallStructMethod SwapEnd 0 x05,JailBreakMe 3.0,IOMobileFrameBuffer 内核提权利用 导致 I
5、OMobileFrameBuffer:swap_submit函数的 transaction结构中一个指针被修改 内核ROP! 增加0号系统调用的代码,任何进程调用syscall(0)直接拥有r00t权限 /tmp/locutus,JailBreakMe 3.0,关闭代码签名 修改vm_map_enter(protect)函数允许创建RWX内存页 修改“cs_enforcement_disable”变量为TRUE 修改PE_i_can_has_debugger函数中的一个变量为TRUE 修改AMFI模块里面某个函数强制返回为TRUE,JailBreakMe 3.0,替换sandbox 在内核中h
6、ook sb_evaluate函数 对除了User应用程序(/private/var/mobile)以外的任何程序关闭沙盒,JailBreakMe 3.0,替换Sandbox,JailBreakMe 3.0,修改 JBM3 JBM3同样能带来危害,攻击者可以修改JBM3的样本来传播iOS恶意软件 替换locutus应该是最简单的方式 Locutus大小是固定的 0 x2d49 (压缩后的大小) 我们可以替换一个更小的mach-o文件,JailBreakMe 3.0,替换 Locutus Locutus 文件存储在字体文件的 subroutine 0 解压获取字体文件 - 替换 subrouti
7、ne 0 数据 - 重新压缩字体文件 (保证大小不变) - 替换 PDF 中的字体文件 此外还需要修改一个变量 - 0 x2d49 该值在uncompress时使用 搜索 “ff 10 00 2d 49” 替换为新locutus压缩后的大小 新 locutus 调用syscall(0)获取root权限,JailBreakMe 3.0,修改 JBM3 Demo演示,结论,iOS 4.3.4(5),修补JBM 3.0的两个漏洞 修补了ft_var_readpacketpoints()函数缓冲区溢出漏洞 另外的一个字体格式的漏洞,Freetype已在一年前修补 修补了ndrv_setspec() 完
8、美越狱的内核漏洞 在dyld中修补了Incomplete codesign的利用技术,感谢!Xcon/0 x557/CD-team,疑问?,CD-Team介绍,CD-Team(CN Dev Team) 是一个由来自国内计算机安全行业的专业人士组成的iOS设备越狱研究小组。团队成员以前主要是从事windows/linux/unix/mac 等系统的漏洞挖掘/逆向分析研究, 由于大家都对iOS设备有深厚的兴趣,所以走到一起,一起研究和学习。 CD-Team http:/cd-team.org,加入CD-Team?,如果您对iOS设备的安全研究有兴趣的话,可以加入我们. 要求: 熟悉ARM 逆向 熟悉XNU 内核 熟悉MAC/IOS下漏洞挖掘技术 熟悉WCDMA/CDMA通信协议 熟悉手机底层硬件模块、有高通芯片底层开发经验 熟悉C/OBJ-C开发,