本文章由Jack_Jia编写,转载请注明出处。
文章链接:http://blog.csdn.net/jiazhijun/article/details/9183517
作者:Jack_Jia 邮箱: 309zhijun@163.com
LG-E971 LG Optimus G LG-E973 LG Optimus G LG-E975 LG Optimus G LG-E975K LG Optimus G LG-E975T LG Optimus G LG-E976 LG Optimus G LG-E977 LG Optimus G LG-F100K LG Optimus Vu LG-F100L LG Optimus Vu LG-F100S LG Optimus Vu LG-F120K LG Optimus Vu LG-F120L LG Optimus LTE Tag LG-F120S LG Optimus LTE Tag LG-F160K LG Optimus LTE 2 LG-F160L LG Optimus LTE 2 LG-F160LV LG Optimus LTE 2 LG-F160S LG Optimus LTE 2 LG-F180K LG Optimus G LG-F180L LG Optimus G LG-F180S LG Optimus G LG-F200K LG Optimus Vu 2 LG-F200L LG Optimus Vu 2 LG-F200S LG Optimus Vu 2 LG-F240K LG Optimus G Pro LG-F240L LG Optimus G Pro LG-F240S LG Optimus G Pro LG-F260K LG Optimus LTE 3 LG-F260L LG Optimus LTE 3 LG-F260S LG Optimus LTE 3 LG-L21 LG Optimus G LG-LG870 LG (Unknown) LG-LS860 LG Mach LG-LS970 LG Optimus G LG-P760 LG Optimus L9 LG-P769 LG Optimus L9 LG-P780 LG Optimus L7 LG-P875 LG Optimus F5 LG-P875h LG Optimus F5 LG-P880 LG Optimus 4X HD LG-P940 LG Prada LG-SU540 LG Prada 3.0 LG-SU870 LG Optimus 3D Cube LG-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。