LG Sprite Software Root漏洞

来源:互联网 发布:张学良不抵抗 知乎 编辑:程序博客网 时间:2024/04/29 14:38

本文章由Jack_Jia编写,转载请注明出处。  
文章链接:http://blog.csdn.net/jiazhijun/article/details/9183517
作者:Jack_Jia    邮箱: 309zhijun@163.com


一、漏洞描述

    日前LG设备报出Root提权漏洞,该提权漏洞是由Sprite Software公司(http://www.spritesoftware.com/)开发的应用备份/恢复系统引起的。该应用内置于LG设备中并以Root身份运行。本地攻击者可利用该漏洞获取设备Root权限。

二、影响设备

LG-E971   LG Optimus GLG-E973   LG Optimus GLG-E975   LG Optimus GLG-E975K  LG Optimus GLG-E975T  LG Optimus GLG-E976   LG Optimus GLG-E977   LG Optimus GLG-F100K  LG Optimus VuLG-F100L  LG Optimus VuLG-F100S  LG Optimus VuLG-F120K  LG Optimus VuLG-F120L  LG Optimus LTE TagLG-F120S  LG Optimus LTE TagLG-F160K  LG Optimus LTE 2LG-F160L  LG Optimus LTE 2LG-F160LV LG Optimus LTE 2LG-F160S  LG Optimus LTE 2LG-F180K  LG Optimus GLG-F180L  LG Optimus GLG-F180S  LG Optimus GLG-F200K  LG Optimus Vu 2LG-F200L  LG Optimus Vu 2LG-F200S  LG Optimus Vu 2LG-F240K  LG Optimus G ProLG-F240L  LG Optimus G ProLG-F240S  LG Optimus G ProLG-F260K  LG Optimus LTE 3LG-F260L  LG Optimus LTE 3LG-F260S  LG Optimus LTE 3LG-L21    LG Optimus GLG-LG870  LG (Unknown)LG-LS860  LG MachLG-LS970  LG Optimus GLG-P760   LG Optimus L9LG-P769   LG Optimus L9LG-P780   LG Optimus L7LG-P875   LG Optimus F5LG-P875h  LG Optimus F5LG-P880   LG Optimus 4X HDLG-P940   LG PradaLG-SU540  LG Prada 3.0LG-SU870  LG Optimus 3D CubeLG-US780  LG Lollipop也可能还有其它的设备。

三、漏洞原理

     Backup和Spritebud是由Sprite Software公司开发的应用备份/恢复系统,内置在部分LG Android智能手机上。但是Spritebud 1.3.24和Backup 2.5.4105在代码实现上存在本地权限提升漏洞,本地攻击者可利用此漏洞获取受影响设备的root权限。

     Spritebud后台程序是由init脚本启动并以root用户运行,以unix套接字形式监听来自"Backup"应用的指令。本地攻击者通过特制的备份,就可以写入和更改任何文件的权限和所有权。

     特制备份数据包包含exploit程序需要恢复的数据,备份数据包括一个的50MB虚拟文件a,a文件用于增加我们的exploit窗口事件,
su二进制文件b,脚本文件c用户安装su,和一个文本文件d,d文件内容为c文件的路径。所有文件都属于该exploit应用程序,且这些文件都是rwxr-xr-x。所有的文件以字母顺序恢复。整个备份压缩后约2MB。在此备份中的结构如下:

drwxrwxrwx u0_a114 u0_a114 2013-05-28 20:13 files

./files:

-rwxr-xr-x u0_a114 u0_a114 52428800 2013-05-22 20:06 a
-rwxr-xr-x u0_a114 u0_a114 91992 2013-05-22 20:07 b
-rwxr-xr-x u0_a114 u0_a114 251 2013-05-22 20:12 c
-rwxr-xr-x u0_a114 u0_a114 42 2013-05-22 20:07 d

在恢复之前,首先运行exploit应用程序运行时,观看的过程和等待。
在恢复过程中,spritebud守护进程首先创建files目录,并设置它的权限和所有者。
然后它解压缩并还原a的文件(50MB的虚拟文件)。在恢复a文件期间,我们的exploit应用程序就可以创建文件d(其中包含我们的脚本文件c的完整路径)的符号链接
到/sys/kernel/uevent_helper,。恢复文件d后,我们的路径被写入到uevent_helper。
当一个热插拔事件发生(每隔几秒钟发生一次),包含在uevent_helper路径文件被内核执行
我们的脚本执行c执行并安装的su二进制文件b。


四、POC代码

   开源POC:https://github.com/CunningLogic/LGPwn

五、相关链接

    https://github.com/CunningLogic/LGPwn
    https://plus.google.com/110348415484169880343/posts/Me2yea2PgwE
    http://seclists.org/fulldisclosure/2013/Jun/196
原创粉丝点击