-
-
[求助] 大神救我。。CVE-2019-2215 root提权之人造页表,kernel代码区域依然只能读不能写
-
发表于:
2020-4-6 21:40
7313
-
[求助] 大神救我。。CVE-2019-2215 root提权之人造页表,kernel代码区域依然只能读不能写
近日研究 CVE-2019-2215 漏洞提权, 漏洞本身我并没有去关心,因为下了个利用代码,提权流程已经能跑到修改进程 Cred 结构成员了,
现在卡在了,过不了selinux(这中间有很多怪毛病:举例 patch
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的地址给遍历出来,方便后续分析
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-4-7 11:18
被酒肉和尚编辑
,原因: