Android Root利用技术:PXN绕过策略探索

需积分: 15 2 下载量 134 浏览量 更新于2024-08-16 收藏 2.1MB PPT 举报
"本文介绍了Android系统中的Root利用技术,特别是如何绕过PXN(Permission eXecute Never)防护机制。文章由360冰刃实验室的研究员撰写,详细探讨了PXN的基本概念、作用以及启用PXN后对漏洞利用的影响。" 在Android系统中,Root权限的获取通常是黑客攻击的目标,因为这允许对系统的全面访问。PXN是一种针对ARM架构的内核安全特性,旨在防止在内核模式下执行用户空间的代码,从而阻止恶意利用。当处理器尝试在内核态执行用户空间的代码时,PXN会触发Permission fault,阻止这种行为。 PXN通过在ARM的第一级页表中设置相应的位来实现,当该位被设置为1时,禁止内核执行非内核代码。自2014年起,随着64位设备的普及,PXN已成为标准配置,因为它显著提高了系统安全性。 然而,安全研究人员发现了一些绕过PXN的方法。一种常见的策略是修改`addr_limit`,使其允许执行用户空间的代码。这通常涉及泄露堆栈指针(sp)的地址,然后计算出`addr_limit`的地址,并将其值修改为0xFFFFFFFFFFFFFFFF,这样就可以使内核视用户空间的任何地址为可执行的。 文章中还列举了两个具体的实例,展示了如何利用漏洞构造ROP(Return-Oriented Programming)或JOP(Jump-Oriented Programming)链来绕过PXN。例如,KeenTeam的《Own your Android! Yet Another Universal Root》报告中,研究人员通过控制特定寄存器(如X1),构造rop链来泄露sp地址,然后使用这个地址来修改`addr_limit`,达到绕过保护的目的。 总结起来,虽然PXN提供了额外的安全层,但安全研究人员已经找到了多种绕过它的方法,这表明安全防御总是与攻击技术的进化相伴随。为了增强系统的安全性,开发者需要不断更新和改进防御机制,而安全研究人员则继续探索新的漏洞利用技术,以便更好地理解和对抗潜在的威胁。在这个过程中,理解像ROP和JOP这样的技术,以及如何利用它们来绕过如PXN这样的防护机制,对于提升Android系统的安全性至关重要。