首页
社区
课程
招聘
[求助]4.4 SElinux影响注入问题
发表于: 2015-3-20 09:14 10858

[求助]4.4 SElinux影响注入问题

2015-3-20 09:14
10858
大家应该目前都是采用ptrace的方式进行对目标进程的内核调试,使其dlopen来达到注入自身hook.so的目的,但是近期我测试到android4.4的系统发现ptrace不好使用。
首先,我已经拿到了系统的root权限,但是缺无法像4.0那样成功的注入并执行。
现在我把自己身上发生的奇怪事情跟大家说一下,希望懂的朋友给个帮助。

原本我的inject注入代码是采用4.0.3的源码环境进行编译的,我们这里就称为inject4.0吧。这时候4.0.3的系统可以注入成功,我的代码主要是注入system_server后创建sqlite数据库并对系统的相关操作进行收集。

下面,我开始尝试到4.4的系统了,inject4.0注入成功,并数据库创建了,可这时候system_server 内的所有服务都died了,导致android系统卡在一个假死的黑色界面。无法再进入桌面。

后来,我就尝试了用4.4的源码环境编译了我的inject,这里称为inject4.4吧。这个inject4.4的结果是没有注入成功,数据库都没创建,查看log发现就结束在hook_entity方法这,就是dlopen的部分。

听朋友说是SElinux导致的问题,所以想来问问,既然是SElinux的问题,为什么4.0编译是可以注入的呢? 我看遍了log发现inject4.4的died之前的错误跟inject4.0died之前的错误有很大不同,是在同一部机器上的。inject4.4的错误是E/ActivityManager的错误导致的,inject4.0是因为debuggerd程序的错误导致的,因为自身注入的程式是写在debuggerd程式里面的。

请大家路过,留个思路。谢谢大家。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 158
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
4.4SELinux安全级别默认修改了
2015-3-20 10:02
0
雪    币: 34
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
哦。谢谢。我也找到修改了。可是三星有KNOX的机器修改了没用。
2015-3-20 12:17
0
雪    币: 53
活跃值: (321)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
如果怀疑SELinux策略阻止,可以抓取kernel日志,查看是否有avc异常
adb shell
# cat /proc/kmsg | grep avc
2015-3-24 11:43
0
雪    币: 0
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
碰到了同样的问题,ptrace到指定进程之后,执行mmap能成功,dlopen返回NULL,SELinux设置为permissive也没有作用,4.4以上的系统都有这个问题,并不知道什么原因
2016-2-17 10:41
0
雪    币: 34
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
是安全策略阻止了,我是通过降级编译解决的。
2016-2-27 21:36
0
雪    币: 949
活跃值: (119)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
那4.4以上如何注入,我注入4.4的system_server失败,已经执行setenforce 0并重启了。谢谢
2016-3-10 21:52
0
雪    币: 34
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
因为selinux,你没获取到完整的root权限,一般会是shell权限。不管是哪个native的xx进程执行注入,都无法注入成功。最后我尝试了在4.0源码下编译就可以正常注入,前提还是要setenforce 0
2016-3-17 12:22
0
雪    币: 6
活跃值: (1167)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那个指令是实时的,重启会刷新成为enforce状态
2016-4-18 09:06
0
游客
登录 | 注册 方可回帖
返回