作 者:ImaxAndroi
时 间:2013-12-12,22:13:07
链 接:http://bbs.pediy.com/showthread.php?t=182495

LBE安全大师注入Android4.4分析 基本信息
应用名 :LBE安全大师5.1
包MD5 :5a1d8b24218ee39b399277df2f3fa840
关键字 :Root、android注入、SELinux

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

其中无法注入进程使得安全软件的广告拦截、应用耗电、预装软件卸载、应用权限管理等等都无效。
11月中旬lbe发布某版本说支持android4.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代码入口:
LBE 安全大师支持android 4.4注入分析_第1张图片
fnDisbleSELinux主要做以下几件事:
LBE 安全大师支持android 4.4注入分析_第2张图片
LBE 安全大师支持android 4.4注入分析_第3张图片
LBE 安全大师支持android 4.4注入分析_第4张图片

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


Get_SElinux_path:
LBE 安全大师支持android 4.4注入分析_第5张图片
LBE 安全大师支持android 4.4注入分析_第6张图片
LBE 安全大师支持android 4.4注入分析_第7张图片

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

Write_selinux:
LBE 安全大师支持android 4.4注入分析_第8张图片
简单的写配置文件,相当于echo0>/sys/fs/selinux/enforce。

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

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


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

更多相关文章

  1. Android文件解压工具类
  2. android apk dex odex jar 等文件的 反编译工具
  3. Android 手绘 - 支持保存为图片
  4. 【转】android编译系统的makefile文件Android.mk写法
  5. Android+JNI调用–文件操作
  6. Android错误处理——Android读取txt文件乱码解决方案
  7. Android 的状态栏设置图片填充或者颜色填充

随机推荐

  1. gitlab服务器部署
  2. 做一个诚信的程序员有多难?
  3. 美国围棋选手使用Python自动评级,不发段位
  4. 用Python模拟AlphaGo项目出现
  5. Swift支持ubuntu, ubuntu讨论默认Python3
  6. SpringBoot应用中使用AOP记录接口访问日
  7. libp2p-rs v0.2.0 发布
  8. SpringBoot应用整合ELK实现日志收集
  9. MyBatis Generator使用过程中踩过的一个
  10. 商品管理 数据库表结构 图片 功能结构