HTC One X AT&T手机Root漏洞

  一、漏洞与利用详情

  漏洞出现在Ready2Go安装应用程序的流程上。

  Ready2Go安装应用完整程序流程如下:

  1、第一次通过Read2Go安装应用时,Read2Go建立下载目录“/data/install”,并且运行“chmod 777 /data/install”,赋予所有用户rwx权限。

  2、当用户通过该程序安装应用程序时,Read2Go会把应用程序下载到“/data/install”目录,并且运行“chmod 666 /data/install/”。

  3、下载完成后,Read2Go开始安装下载的程序,安装成功后删除下载的apk文件。

  利用该漏洞获取Root权限完整流程如下:

  1、查看“/data/install”目录是否存在,如不存在,可以通过Ready2Go下载安装任意应用程序的方式来创建该目录。

  2、挑选一个已知包名的应用程序,如“com.att.android.markthespot.apk”,然后通过以下命令建立软连接到“/data/local.prop”文件。

  adb shell ls -s /data/local.prop /data/install/com.att.android.markthespot.apk

  3、通过Ready2Go下载挑选的应用程序,由于/data/install/com.att.android.markthespot.apk是/data/local.prop文件的软连接,Ready2Go对下载文件的操作的作用在了/data/local.prop文件(Read2Go具有system权限,可以操作/data/local.prop文件),/data/local.prop就被修改为全局可读写。

  4、通过adb reboot命令打断Read2Go的安装流程,阻断Read2Go安装成功后的删除apk操作。

  5、设备重新启动后,/data/local.prop就被遗留为全局可读写的。

  adb shell “echo ‘ro.kernel.qemu=1′ > /data/local.prop”

  adb reboot

  6、设备重新启动后,由于ro.kernel.qemu=1,所以adb不降权,这样adb shell连接设备就得到了以root身份运行的shell。

  (设备启动过程中,系统加载/data/local.prop配置文件设置系统属性,adb最初以root运行,之后调用setuid()降低权限。降权之前,会判断系统属性ro.kernel.qemu,如果该属性位1,则不降权。)