首页
社区
课程
招聘
[原创]LBE 安全大师支持android 4.4注入分析
2013-12-12 22:13 60952

[原创]LBE 安全大师支持android 4.4注入分析

2013-12-12 22:13
60952
LBE 安全大师注入Android 4.4分析
基本信息
应用名:LBE安全大师 5.1
包MD5:5a1d8b24218ee39b399277df2f3fa840
关键字:Root、android注入、SELinux

分析原由
android 4.4中将SELinux的配置由 4.3中默认值permissive(违规后只记录阻止)改为enforcing(违规后直接阻止)。这也就是说SELinux在4.4中默认为开启状态,SELinux开启后对权限和域的管理更为严格,使得root权限没有太大意义(对于安全软件来说),具体来说如:
1、无法使用ptrace进行注入进程。
2、无法访问system用户权限的目录或文件(例:无法访问/data、/data/app目录)。

其中无法注入进程使得安全软件的广告拦截、应用耗电、预装软件卸载、应用权限管理等等都无效。
11月中旬lbe发布某版本说支持android 4.4,也就说LBE的主动防御可以启动并且拦广告。

分析细节

猜测
在某非官方4.4rom的已root手机上安装了个最新版本的lbe,然后运行发现确实可以拦截广告。根据以往的经验要拦截广告一般是注入到相应进程之后然后hook 相关函数后实现拦截,于是cat /proc/id/maps看了下,发现lbe相关模块注入到目标进程中。这证实还是注入后实现拦截的。不过很好奇的是4.4不是有SELinux吗? LBE怎么还可以成功注入进程呢?关闭SELinux或者lbe找到了系统的漏洞可以绕过lbe?
有以上猜测后先证实下是不是关闭SELinux:后台输入getenfore命令,返回的结果确认了我第一个猜测是对的。
随着第二个问题是LBE是怎么关闭selinux的呢?且看下面分析。

分析
经过对lbe文件的一番摸索最终发现关键文件:package/assets/hips.jar,从名字看是主防相关的,然后在该包内找到关闭selinux代码对应的文件bootstrap,该文件为ELF文件,使用IDA载入从start函数看很快找到关闭selinux代码入口:

fnDisbleSELinux主要做以下几件事:




事务清单
Get_SElinux_path        //获取selinux目录
Write_selinux                //修改selinux配置文件,关闭selinux
Oom_adj                        //修改LBE服务优先级,防止注入操作未完成时被android系统终止服务。
Lbesec.loader                //启动lbesec.loader,进行注入相关操作。


Get_SElinux_path:




该函数通过以下几种方式获取selinux目录:
1、statfs直接判断”/sys/fs/selinux”是否为SELINUX_MAGIC,确认是否为selinux目录。
2、在/proc/filesystems文件中找”selinuxfs”串,找到后在“/proc/mounts”文件中找”selinuxfs”串,然后定位到对应的实际目录,“/proc/mounts”文件中保存selinux信息如下:
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0

Write_selinux:

简单的写配置文件,相当于echo 0>/sys/fs/selinux/enforce。

结果确认
从代码上确认了是修改配置文件,然后通过以下两种方法也都证实LBE是修改配置文件进行关闭selinux:
1、在lbe生效的机器上查看enforce文件确认文件已被修改。
2、输入getenforce查看selinux状态为Permissive。
root@mako:/ # getenforce
getenforce
Permissive

总结
关闭SELinux,安全软件可想象的空间会大很多,不过对应的风险还是比较高的。对这种关闭selinux的方法持保留意见。

注:本帖由看雪论坛志愿者PEstone 重新将DOC整理排版,若和原文有出入,以原作者附件为准

附件为 LBE为什么在安卓4.4 selinux环境能成功注入的原因分析。
不太会分析arm,错误之处请指正。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (34)
雪    币: 6031
活跃值: (3950)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
pxhb 2 2013-12-12 22:21
2
0
感谢分享,学习了
雪    币: 77
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
limitemp 2013-12-13 09:16
3
0
下载留言,谢谢分享
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
justlovemm 2013-12-13 10:19
4
0
多谢楼主分享,果断下载保存。
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
狼行绝路 2013-12-13 10:52
5
0
果断给精啊~
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
codeape 2013-12-13 11:27
6
0
认同楼主观点
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sirofkx 2013-12-13 12:12
7
0
谢谢你的好贴,保存。
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
suwey 2013-12-13 12:43
8
0
牛人。。。
雪    币: 10242
活跃值: (16504)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhczf 2013-12-13 22:07
9
0
楼主的代码技术牛叉啊,支持
雪    币: 1540
活跃值: (293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
精灵墙 2013-12-14 00:44
10
0
牛人,支持
雪    币: 27
活跃值: (84)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
tihty 2 2013-12-14 09:40
11
0
什么安全软件,其实就是越来越不安全
雪    币: 53
活跃值: (260)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
netsniffer 2013-12-14 14:26
12
0
LBE最新的免root分析了一下,还是利用了kernel中的提权漏洞,提权成root身份以daemon运行com.lbeloader进程
/data/data/com.lbe.secxxx/app_libs 下边的libnolimit.so就是个可执行文件,里边有部分已知的kernel漏洞,全部静态编译加优化,哪位有空去分析一下利用了哪几个kernel漏洞
雪    币: 406
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
feenn 2013-12-15 19:55
13
0
还是利用了漏洞,没有绝对的安全
雪    币: 67
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
ImaxAndroi 1 2013-12-16 17:22
14
0
免root在4.4上不行了吧?你确认可以正常?
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
duzhonglin 2013-12-16 19:13
15
0
非常感谢楼主分享,我最近一直在分析这个问题。
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
menshen 2013-12-16 19:39
16
0
支持,NB
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gymzyt 2013-12-17 17:13
17
0
学习!感谢楼主
雪    币: 920
活跃值: (1600)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
wuxiwudi 2013-12-17 20:09
18
0
请问现在注入的方式都有哪些,刚接触安卓逆向比较迷茫,谢谢了
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 1 2013-12-19 18:49
19
0
菜鸟的我为啥看了半天,连猜带蒙的; 发现 libnolimit.so的功能等同于su ,半点没找到提权exploit的影子~

求大神提取exploit,求抱大腿~!
雪    币: 431
活跃值: (1875)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
riusksk 41 2013-12-19 21:09
20
0
要执行echo 0>/sys/fs/selinux/enforce,不是得system权限才行吗?这个LBE是怎么实现的?
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 1 2013-12-20 09:04
21
0
需要root权限才行, 估摸是先提权到root 然后执行 echo
雪    币: 431
活跃值: (1875)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
riusksk 41 2013-12-20 15:17
22
0
root不能关闭吧,得system,看defcon上讲的那方法
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 1 2013-12-20 16:58
23
0
手上有一台Nexus , 包是 CyanogenMod, 4.4.2; root权限是可以直接 echo 关闭的。

泉哥你的什么环境。
雪    币: 431
活跃值: (1875)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
riusksk 41 2013-12-21 22:03
24
0
我这边没有seandroid真机,没有实际测试过,模拟器倒是确实可以root关闭掉。
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 1 2013-12-23 08:57
25
0
最近搞到一台NOTE3, 真机的SELinux  没办法root ... 纠结root中
游客
登录 | 注册 方可回帖
返回