利用 KernelCTF Mitigation、Debian 和 Ubuntu 实例,在 Linux 内核中使用 nf_tables 中的双重释放,并使用 Dirty Pagedirectory 等新技术。甚至无需为不同的内核目标重新编译一次漏洞利用。
实践非样板漏洞研究博文系列,旨在面向未来想要进行 Linux 内核漏洞研究的时间旅行者。具体来说,我希望初学者能从我的 VR 工作流程中学习,经验丰富的研究人员能从我的技术中学习。
在这篇博文中,我将讨论我在 Linux 内核的 nf_tables 中发现的一个错误 ( CVE-2024-1086 ) 及其根本原因分析。然后,我将展示几种新颖的技术,我使用这些技术在至少 v5.14 和 v6.6.14 之间的几乎所有 Linux 内核(需要非特权用户)上放置通用 root shell,甚至无需重新编译漏洞利用。这是可能的,因为漏洞利用的仅限数据、KSMA 环境。这些目标内核包括 Ubuntu 内核、最近的 Debian 内核以及目前最坚固的 Linux 内核之一(KernelCTF 缓解内核)。
此外,我还提供了概念验证源代码(也可在Github 上的CVE-2024-1086 PoC 存储库中找到)。作为奖励,我想挑战自己,让漏洞支持无文件执行(这有助于 CNO 并避免在渗透测试中被检测到),并且不对磁盘进行任何更改(包括将 /bin/sh 设置为 SUID 0 等)。
这篇博文旨在成为原始 <