详细分析CVE-2011-1149 (KillingInTheNameOf)

本文介绍了CVE-2011-1149(KillingInTheNameOf)漏洞,该漏洞允许ADB在Android<=2.2版本中获取root权限。文章详细解释了漏洞原理及利用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CVE-2011-1149 (KillingInTheNameOf)

这个漏洞是2011年发现的。利用它能让ADB获取root权限。这个漏洞存在于Android<=2.2。

从adb的源码中,可以看到db的权限由属性ro.secure来控制。

property_get("ro.secure", value, "1");
if (strcmp(value, "1") == 0) {
    // don't run as root if ro.secure is set...

要让adb获得系统权限,就要将ro.secure设置为0。

adb运行时,ro.secure的值已经被写入到adb进程虚拟地址空间中。而低版本的Android系统并没有对进程地址空间中的ro.secure内容做读写限制。
我们可通过linux的/proc/self/maps来查看进程的虚拟地址空间是如何使用的。而ro.secure的值被存储在进程地址空间的system_properties区域。只要找到这个区域,将ro.secure的值改为0,adb就能运行在root权限。

所以,这个漏洞的Vulnerability(描述)为:
Vulnerability: Android 2.3之前的版本,没有限制system property space(系统属性空间)的访问。

Exploit(利用这个漏洞的描述)为:
Exploit: (1) 通过linux的/proc/self/maps来查看进程的虚拟地址空间是如何使用的。找到这个区域system_properties,将ro.secure的值改为0。(2) 重启adb。(3) adb运行在了root权限。

这个exploit名称为KillingInTheNameOf。可以从参考3中找到如何利用这个漏洞的源代码。这个漏洞是Android匿名共享内存ashmem机制的处理缺陷导致的。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值