a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

手机攻击解密──你不知道的漏洞威胁

为了支持不同的手机不同的芯片,需要进行驱动编写给用户提供相同的接口,导致厂商驱动的安全性比Android内核本身的安全性差,厂商驱动为Android系统带来了新的攻击面新的漏洞。
资讯频道文章B
  长亭科技安全研究实验室的实习生于晨升稍早前在第二届中国互联网安全领袖峰会上,详细说明了黑客会如何利用未公开漏洞ROOT掉一款最新款的流行手机。于晨升从Android系统架构解析开始,解释了手机的漏洞是如何被攻击,以及该如何防范。
 
  于晨升指出,Android系统架构主要分为四层,即是:Application层、Framework层、Library层以及Kernel层。手机的自带应用在Application层,这一层从安装到运行其权限最低。Framework层主要为Application层的应用提供系统服务,随后在安卓程序运行时,需要第三层Library层的支持,通过此层引入运行时所依赖的动态库。
 
  Kernel层为系统内核层。特别是在Android系统第四层内核层中包含许多厂商相关的驱动,例如显卡、相机、触摸屏的驱动等。于晨升表示,为了支持不同的手机不同的芯片,需要进行驱动编写给用户提供相同的接口,导致厂商驱动的安全性比Android内核本身的安全性差,厂商驱动为Android系统带来了新的攻击面新的漏洞。因此,寻找手机漏洞,可以从这个层面出发。
 
漏洞分析
 
  于晨升分享了CVE-2015-0569,CVE-2015-0570, CVE-2015-0571三个已知漏洞的利用思路和过程。他表示,这三个漏洞由slipper在2015年的GeekPwn上公开,存在于高通WLAN驱动中的栈溢出与堆溢出漏洞,漏洞由于在进行内存拷贝之前未检验拷贝长度,导致缓冲区溢出。随后高通第一时间修补了漏洞,在内存拷贝操作之前进行了检查,同时在调用对应的代码块之前进行了权限检查(CAP_NET_ADMIN)。
 
  至于如何从发现漏洞到利用漏洞,再获得手机root权限呢?于晨升解释说,触发漏洞后,就能够达到的任意内核地址写0效果。从0开始的地址无法申请,写函数指针写0无法实现,所以需要提升条件,写0但是不把所有的指针写为0只是更改高位的,然后对地址进行操作。无KASLR,覆写固定地址的指针高位是可行的。有时改写函数值是不可行的,因为多数ARM64架构的手机上PXN是打开的,不能直接申请一段用户态内存让内核去执行shellcode。那么此时该如何利用呢?
 
  为了解决以上问题,于晨升在链表头数组inetsw中寻找到了突破口:
 

 
  inetsw是linux内核用于维护socket创建时所需要的信息的双向链表,inet_register_protosw时,将特定类型的socket信息加入到链表中, inet_create时遍历链表寻找对应信息。包含proto, ops等结构的指针,这些结构中又含有许多的函数指针。
 
  因此,如果在无PAN的条件下,覆写inetsw中某一个next指针的高位,在用户态伪造数据结构,可创建一个完全被控制的socket,最终达到如下效果:
 

 
  如图所示,可以看到PC指针形成了一个特殊的指令,此时可以控制PC指令了。
 
  那么,控制PC之后如何进一步利用呢?此时无法执行用户态代码,只能利用内核态代码。我们注意到ioctl中r0, r1, r2寄存器可以控制,于是可以利用以下gadget达到任意地址读写:
 
0x000000000021b598 : str w1, [x2] ; ret
0x00000000001e246c : ldr x0, [x2] ; add w0, w0, #1 ; ret
 
  通过任意地址读写,利用init_task可以找到当前进程的task_struct(或者利用泄露sp的gadget,通过thread_info找到task_struct,更稳定)。找到task_struct之后即可修改cred,将uid等改为0即可。同时patch掉selinux_enforcing,关掉selinux、mount -o rw,remount /system即可关掉/system分区写保护。在实际利用中,发现mtk设备的内核代码是可写的。在关闭selinux之后,某处的assert会失败,可以利用上面的特性patch掉assert的代码。或者通过修改修改当前进程的sid,将其selinux的context修改为u:r:init:0。实际测试中,我们会发现u:r:init:0进程启动/system/bin/sh后权限会降为u:r:init_shell:0。(本文来自长亭科技公开发布文件)
 
 
参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈