1. 为什么应用层不够了在前三章我们假设App运行在一个“受限”的环境里。但作为渗透测试员我们的目标是“全设备控制”。场景引入某银行App做了极致的防御检测 Frida第二章失效。使用双向证书认证第三章失效。核心逻辑写在云端。此时怎么办唯一的出路是获取系统最高权限Root。一旦有了 Root你就是手机的“上帝”。你可以修改系统文件、绕过所有App的防御、直接读取App的私有内存数据。2. Root方案演进从“修改系统”到“无痕隐身”在安卓早期Root 意味着直接修改/system分区如 SuperSU。但现代安卓引入了AVBAndroid Verified Boot修改系统分区会导致手机无法开机。2.1 现代Root神器Magisk如今Magisk 是事实上的 Root 标准。它的核心思想是“系统less”无系统修改。原理不修改/system而是修改Boot 镜像boot.img。优势隐藏 Root通过 Magisk Hide或 DenyList可以让特定的App如银行App检测不到 Root 环境。模块化像插件一样安装功能如广告屏蔽、内核调节。2.2 实例绕过Root检测很多App会执行which su或检查/sbin/su文件。绕过手法在 Magisk 设置中开启Zygote 注入。将目标App加入DenyList。原理当App启动时Magisk 会在系统层面“欺骗”它让它以为系统里根本没有su这个程序。3. 实战一从“普通App”到“系统应用”拥有 Root 权限后我们能做什么目标读取其他App的私有数据。安卓规定App A 无法读取 App B 的数据目录/data/data/com.bank.app/。攻击步骤使用 ADB 获取 Root Shelladb shell su # 获取Root权限此时提示符变为 #直接访问银行App的数据库cd /data/data/com.bank.app/databases/ sqlite3 user.db .dump # 导出所有用户数据结果无需逆向无需Hook直接像打开文件夹一样偷走所有数据。4. 实战二利用内核漏洞提权CVE如果你的手机无法解锁 Bootloader例如某些国产机或者没有现成的 Magisk 方案你需要使用内核漏洞Kernel Exploit。4.1 什么是内核漏洞安卓基于 Linux。Linux 内核偶尔会出现代码错误如缓冲区溢出。攻击者可以编写一个程序Exploit利用这个错误从“普通用户”跳到“系统内核Ring 0”从而获取 Root。4.2 经典案例Dirty COW (CVE-2016-5195)这是历史上最著名的内核漏洞之一。原理Linux 内核在处理内存写操作时存在竞态条件允许普通用户写入只读文件如/etc/passwd。安卓利用编译 Dirty COW 的 POC概念验证代码。在安卓上运行它会修改系统的system_server进程。结果手机被 Root。现状现代安卓Android 10已经修补了大多数老旧漏洞但碎片化是安卓的噩梦。很多旧设备尤其是IoT设备、车机系统依然跑着有漏洞的老内核。5. 实战三Bootloader 漏洞与物理攻击如果软件层面都防住了攻击者还能怎么做物理接触。5.1 场景捡到一部锁屏的手机目标在不解锁屏幕的情况下窃取数据。Fastboot 模式关机状态下按住音量键电源键进入。漏洞利用某些厂商的 Bootloader 存在漏洞如 MTK 芯片的某些版本允许未授权刷入 Recovery。刷入 TWRP这是一个第三方恢复系统。挂载 Data 分区进入 TWRP直接复制/data目录到 SD 卡。防御现代手机开启了“安全启动Verified Boot”。如果 Bootloader 被解锁或者系统被篡改手机会变成“砖头”或清除所有数据Factory Reset Protection。6. 防御方视角系统级加固作为厂商或高安全需求用户如何防御 Root 和内核攻击SELinux强制访问控制安卓的安全基石。即使你拿到了 RootUID 0SELinux 也能限制你能做什么。例如禁止 Root 进程读取/data/data目录。攻击对抗攻击者会尝试setenforce 0关闭 SELinux。内核补丁及时更新系统修补 Dirty COW 等高危漏洞。硬件安全TrustZone将指纹、支付密钥存储在独立的硬件区域即使 Root 也无法读取。AVB 2.0防止 Boot 镜像被篡改。7. 总结渗透测试的边界到了这一章我们已经触及了安卓安全的底线。应用层一、二、三章关注“代码逻辑”。系统层第四章关注“权限与控制”。重要提醒利用内核漏洞攻击未授权的设备是违法行为。在真实渗透测试中如果你发现目标设备存在内核漏洞正确的做法是记录漏洞CVE编号。评估危害Local Privilege Escalation。建议厂商升级内核。最终章预告《第五章后渗透与防御对抗 —— 隐身、持久化与取证》拿到 Root 后如何长期控制设备而不被发现如何清理痕迹以及作为蓝队防御方如何在服务器日志和手机行为中发现这些入侵痕迹
第四章:深入系统底层 —— Root提权与内核漏洞
发布时间:2026/5/16 15:32:10
1. 为什么应用层不够了在前三章我们假设App运行在一个“受限”的环境里。但作为渗透测试员我们的目标是“全设备控制”。场景引入某银行App做了极致的防御检测 Frida第二章失效。使用双向证书认证第三章失效。核心逻辑写在云端。此时怎么办唯一的出路是获取系统最高权限Root。一旦有了 Root你就是手机的“上帝”。你可以修改系统文件、绕过所有App的防御、直接读取App的私有内存数据。2. Root方案演进从“修改系统”到“无痕隐身”在安卓早期Root 意味着直接修改/system分区如 SuperSU。但现代安卓引入了AVBAndroid Verified Boot修改系统分区会导致手机无法开机。2.1 现代Root神器Magisk如今Magisk 是事实上的 Root 标准。它的核心思想是“系统less”无系统修改。原理不修改/system而是修改Boot 镜像boot.img。优势隐藏 Root通过 Magisk Hide或 DenyList可以让特定的App如银行App检测不到 Root 环境。模块化像插件一样安装功能如广告屏蔽、内核调节。2.2 实例绕过Root检测很多App会执行which su或检查/sbin/su文件。绕过手法在 Magisk 设置中开启Zygote 注入。将目标App加入DenyList。原理当App启动时Magisk 会在系统层面“欺骗”它让它以为系统里根本没有su这个程序。3. 实战一从“普通App”到“系统应用”拥有 Root 权限后我们能做什么目标读取其他App的私有数据。安卓规定App A 无法读取 App B 的数据目录/data/data/com.bank.app/。攻击步骤使用 ADB 获取 Root Shelladb shell su # 获取Root权限此时提示符变为 #直接访问银行App的数据库cd /data/data/com.bank.app/databases/ sqlite3 user.db .dump # 导出所有用户数据结果无需逆向无需Hook直接像打开文件夹一样偷走所有数据。4. 实战二利用内核漏洞提权CVE如果你的手机无法解锁 Bootloader例如某些国产机或者没有现成的 Magisk 方案你需要使用内核漏洞Kernel Exploit。4.1 什么是内核漏洞安卓基于 Linux。Linux 内核偶尔会出现代码错误如缓冲区溢出。攻击者可以编写一个程序Exploit利用这个错误从“普通用户”跳到“系统内核Ring 0”从而获取 Root。4.2 经典案例Dirty COW (CVE-2016-5195)这是历史上最著名的内核漏洞之一。原理Linux 内核在处理内存写操作时存在竞态条件允许普通用户写入只读文件如/etc/passwd。安卓利用编译 Dirty COW 的 POC概念验证代码。在安卓上运行它会修改系统的system_server进程。结果手机被 Root。现状现代安卓Android 10已经修补了大多数老旧漏洞但碎片化是安卓的噩梦。很多旧设备尤其是IoT设备、车机系统依然跑着有漏洞的老内核。5. 实战三Bootloader 漏洞与物理攻击如果软件层面都防住了攻击者还能怎么做物理接触。5.1 场景捡到一部锁屏的手机目标在不解锁屏幕的情况下窃取数据。Fastboot 模式关机状态下按住音量键电源键进入。漏洞利用某些厂商的 Bootloader 存在漏洞如 MTK 芯片的某些版本允许未授权刷入 Recovery。刷入 TWRP这是一个第三方恢复系统。挂载 Data 分区进入 TWRP直接复制/data目录到 SD 卡。防御现代手机开启了“安全启动Verified Boot”。如果 Bootloader 被解锁或者系统被篡改手机会变成“砖头”或清除所有数据Factory Reset Protection。6. 防御方视角系统级加固作为厂商或高安全需求用户如何防御 Root 和内核攻击SELinux强制访问控制安卓的安全基石。即使你拿到了 RootUID 0SELinux 也能限制你能做什么。例如禁止 Root 进程读取/data/data目录。攻击对抗攻击者会尝试setenforce 0关闭 SELinux。内核补丁及时更新系统修补 Dirty COW 等高危漏洞。硬件安全TrustZone将指纹、支付密钥存储在独立的硬件区域即使 Root 也无法读取。AVB 2.0防止 Boot 镜像被篡改。7. 总结渗透测试的边界到了这一章我们已经触及了安卓安全的底线。应用层一、二、三章关注“代码逻辑”。系统层第四章关注“权限与控制”。重要提醒利用内核漏洞攻击未授权的设备是违法行为。在真实渗透测试中如果你发现目标设备存在内核漏洞正确的做法是记录漏洞CVE编号。评估危害Local Privilege Escalation。建议厂商升级内核。最终章预告《第五章后渗透与防御对抗 —— 隐身、持久化与取证》拿到 Root 后如何长期控制设备而不被发现如何清理痕迹以及作为蓝队防御方如何在服务器日志和手机行为中发现这些入侵痕迹