CTF比赛中,如何深入分析babyarm内核题目?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2303个文字,预计阅读时间需要10分钟。
主页:https://unrav31.github.io:从漏洞分析、ARM64架构漏洞利用方式来讨论如何构造提权PoC,达到读取root权限的文件。内容:本课题是一个ARM64架构的Linux 5.17.2版本内核提权项目,目标是读取root权限的文件。
「主页」:unrav31.github.io
本文从漏洞分析、ARM64架构漏洞利用方式来讨论如何构造提权PoC达到读取root权限的文件。此题是一个ARM64架构的Linux 5.17.2 版本内核提权题目,目的是读取root用户的flag文件。
题目默认开启了KASLR地址随机化和PXN防护,指定CPU核心数量为一,线程为一。
使用cpio命令分离出驱动模块后放到IDA查看,只实现了read和write函数的功能,功能相当简单。read函数把内核栈内容拷贝到全局变量demo_buf,然后再把demo_buf的内容拷贝到用户态缓冲区,长度不超过0x1000。其他不重要的信息可以不用看:
write函数把用户态缓冲区内容拷贝到demo_buf,然后将demo_buf内容拷贝到内核栈中,同样长度不超过0x1000:
知道模块的基本功能之后,现在来考虑利用方式。
- 首先,题目启动脚本中没有给定
nokaslr,默认开启地址随机化,需要泄露内核地址,当然还有canary。并且ARM架构下默认开启了PXN,内核无法直接执行用户态代码,需要使用ROP技术。
本文共计2303个文字,预计阅读时间需要10分钟。
主页:https://unrav31.github.io:从漏洞分析、ARM64架构漏洞利用方式来讨论如何构造提权PoC,达到读取root权限的文件。内容:本课题是一个ARM64架构的Linux 5.17.2版本内核提权项目,目标是读取root权限的文件。
「主页」:unrav31.github.io
本文从漏洞分析、ARM64架构漏洞利用方式来讨论如何构造提权PoC达到读取root权限的文件。此题是一个ARM64架构的Linux 5.17.2 版本内核提权题目,目的是读取root用户的flag文件。
题目默认开启了KASLR地址随机化和PXN防护,指定CPU核心数量为一,线程为一。
使用cpio命令分离出驱动模块后放到IDA查看,只实现了read和write函数的功能,功能相当简单。read函数把内核栈内容拷贝到全局变量demo_buf,然后再把demo_buf的内容拷贝到用户态缓冲区,长度不超过0x1000。其他不重要的信息可以不用看:
write函数把用户态缓冲区内容拷贝到demo_buf,然后将demo_buf内容拷贝到内核栈中,同样长度不超过0x1000:
知道模块的基本功能之后,现在来考虑利用方式。
- 首先,题目启动脚本中没有给定
nokaslr,默认开启地址随机化,需要泄露内核地址,当然还有canary。并且ARM架构下默认开启了PXN,内核无法直接执行用户态代码,需要使用ROP技术。

