-
-
[求助] 大神救我。。CVE-2019-2215 root提权之人造页表,kernel代码区域依然只能读不能写
-
-
[求助] 大神救我。。CVE-2019-2215 root提权之人造页表,kernel代码区域依然只能读不能写
近日研究 CVE-2019-2215 漏洞提权, 漏洞本身我并没有去关心,因为下了个利用代码,提权流程已经能跑到修改进程 Cred 结构成员了,
现在卡在了,过不了selinux(这中间有很多怪毛病:举例 patch
1 2 3 4 5 6 7 8 | struct task_security_struct {
u32 osid; / * SID prior to last execve * /
u32 sid; / * current SID * /
u32 exec_sid; / * exec SID * /
u32 create_sid; / * fscreate SID * /
u32 keycreate_sid; / * keycreate SID * /
u32 sockcreate_sid; / * fscreate SID * /
};
|
成员后程序卡死; 执行 system("/system/bin/sh") 程序被Killed, 调用 pipe write 修改内核代码一样被Killed等毛病 )。
翻阅了很多帖子教程,翻了很久的MMU 页表文档,修改selinux_enforcing selinux_enabled这两个东西,此路不通,我的内核没有
selinux_enforcing这个全局变量,内核已被强制不允许 关闭selinux, 所以只能采取修改
selinux_enforcing 相关的函数, static noinline int avc_denied(u32 ssid, u32 tsid,u16 tclass, u32 requested,u8 driver, u8 xperm, unsigned flags,struct av_decision *avd) ,
经我用别的android 机器测试,采用 《KSMA -- Android 通用 Root 技术》 进行人造MMU 页表,然后patch 掉该函数是可以的。 现在悲剧的是,我这真正需要提权的设备,采用人造页表也不能 对kernel 代码区域进行内存修改。 你敢修改,程序就敢Killed
~~挤眉~~ 大神 大神 求支个招哇, MMU 机制看了老久,kernel 的create_page_tables函数也看了很久, 头大
补充下,测试能成功提权的机器是 android 8.0 的已经root , 真正需要root的机器是android 8.1
贴个链接:
https://hernan.de/blog/2019/10/15/tailoring-cve-2019-2215-to-achieve-root/
里边两个工具 droidimg miasm 好东西,在只有2进制 kernel 文件的时候,这工具可以把 内核符号和不考虑kasr的地址给遍历出来,方便后续分析
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
最后于 2020-4-7 11:18
被酒肉和尚编辑
,原因: