mito753/Kernel-Exploit-Dojo

GitHub: mito753/Kernel-Exploit-Dojo

一个基于 CTF 题目的 Linux 内核漏洞利用学习资料库,汇集了 PoC、利用代码与详细题解。

Stars: 1 | Forks: 0

# Kernel-Exploit-Dojo (道場) ## 概述 Kernel-Exploit-Dojo 是一个主要基于 CTF 挑战赛的内核漏洞利用笔记、PoC 和题解的集合。 每个挑战目录(在可用的情况下)包含原始分发文件、漏洞利用代码和技术题解。 其目标是整理实用的内核 pwn 技术,例如 UAF、堆喷射、pipe_buffer 滥用、msg_msg、modprobe_path 覆写和 cred 覆写。 挑战按年份组织,顶层的 Challenge List 作为每个挑战目录的索引。 Kernel-Exploit-Dojo (道場) は、CTF の Kernel Exploit 問題を題材にした PoC・exploit・writeup の整理用リポジトリです。 各問題ごとに配布ファイル、exploit、解説をまとめ、実戦的な kernel pwn 技術を復習できる形にしています。 各問題は年度別フォルダに整理しており、トップページの Challenge List から各問題へ移動できます。 ## 免责声明 本仓库仅用于 CTF 学习和本地实验环境。 请勿在生产系统或您不拥有的系统上运行这些漏洞利用程序。 所有示例均旨在隔离的 QEMU/CTF 环境中执行。 本リポジトリは CTF 学習およびローカル検証環境向けです。 実環境・第三者環境では絶対に実行しないでください。 ## 挑战列表 | CTF | 挑战 | 状态 | 难度 (解出数) | 漏洞 | 原语 | 最终技术 | |---|---|:---:|:---:|---|---|---| | b01lers CTF 2026 | [throughthewall](./2026/b01lers_CTF_2026/Pwn_throughthewall) | solved / writeup | Easy (69) | kmalloc-1024 UAF | pipe_buffer reclaim | Dirty Pipe, `/etc/passwd` 覆写 | | ASIS CTF Finals 2025 | [KList](./2025/ASIS_CTF_Finals_2025/Pwn_KList) | solved | Easy (37) | OOB write | kernel memory write | modprobe_path 覆写 | | NexHunt CTF 2025 | [below](./2025/NexHunt_CTF_2025/Pwn_below) | solved / writeup | Easy (12) | OOB read/write | kernel read/write | modprobe_path 覆写 | | N1CTF 2025 | [ktou](./2025/N1CTF_2025/Pwn_ktou) | solved / writeup | Easy (38) | 逻辑缺陷 | 内核对象指针损坏 | GOT 覆写 | | UIUCTF 2025 | [Baby Kernel](./2025/UIUCTF_2025/Pwn_Baby_Kernel) | solved / writeup | Easy (53) | 可控的 UAF | `tty_struct` ops 劫持 | modprobe_path 覆写 | | NahamCon CTF 2025 | [The Jumps](./2025/NahamCon_CTF_2025/Pwn_The_Jumps) | solved / writeup | Easy (59) | 栈溢出 | 内核栈 ROP | 内核 ROP, `CC(PKC(0)` | | 0xFUN CTF 2026 | [Phantom](./2026/0xFUN_CTF_2026/Pwn_Phantom) | solved / writeup | Easy-Medium (45) | mmap UAF | dangling mmap, 释放页面重用 | cred 覆写, modprobe_path | | THJCC CTF 2026 | [Excalipipe](./2026/THJCC_CTF_2026/Pwn_Excalipipe) | solved / writeup | Easy-Medium (17) | 允许重用 merge 标志 | 页缓存覆写 | `/bin/busybox` 覆写 | | PatriotCTF 2025 | [switchboard](./2025/PatriotCTF_2025/Pwn_switchboard) | solved / writeup | Easy-Medium (53) | kmalloc-32 UAF | small-cache reclaim, 可控对象重用 | modprobe_path 覆写 | | TFC_CTF_2025 | [SLOTS](./2025/TFC_CTF_2025/Pwn_SLOTS) | solved / writeup | Easy-Medium (28) | 可控的 UAF | `tty_struct` ops 劫持 | 读取全局 flag 缓冲区 | | smileyCTF 2025 | [blargh](./2025/smileyCTF_2025/Pwn_blargh) | solved / writeup | Easy-Medium (38) | 1 字节 NULL 写入内核内存 | 只读内核文本修改 | 补丁内核函数 | | Codegate CTF 2025 Preliminary | [pew](./2025/Codegate_CTF_2025_Preliminary/Pwn_pew) | solved / writeup | Easy-Medium (13) | kmalloc-4096 UAF | pipe_buffer reclaim | Dirty Pipe, `/etc/passwd` 覆写 | | CTF@AC26 Quals | [Event Horizon](./2026/CTF%40AC26-Quals/Pwn_Event_Horizon) | solved | Medium (31) | LKM, 微码引擎 | 自定义 VM 分析,内核代码执行路径 | TBD | | HeroCTF_v7 | [Safe Device](./2025/HeroCTF_v7/Pwn_Safe_Device) | solved / writeup | Medium (7) | 栈溢出 | 内核栈 ROP | aarch64 内核 ROP, modprobe_path 覆写 | | DownUnderCTF 2025 | [backdoor](./2025/DownUnderCTF_2025/Pwn_backdoor) | solved / writeup | Medium (18) | 自定义 syscall | kbase 泄露与内核内存写入 | modprobe_path 覆写 | | MaltaCTF 2025 Quals | [Write Flag Where](./2025/MaltaCTF_2025_Quals/Pwn_Write_Flag_Where) | solved / writeup | Medium (16) | 自定义 syscall | 通过直接映射进行物理内存写入 | 调用 `modify_ldt` | | LA CTF 2025 | [messenger](./2025/LA_CTF_2025/Pwn_messenger) | solved / writeup | Medium (10) | msgutil 3 字节溢出 | pipe_buffer 页损坏 | cred 搜索,cred 覆写 | | THJCC CTF 2026 | [僕と契約して、魔法少女になってよ!](./2026/THJCC_CTF_2026/Pwn_僕と契約して、魔法少女になってよ!) | solved / writeup | Medium-High (3) | 单字节 OOB 覆写 | `struct file` 损坏 | `struct file->f_mode` 覆写 | | BackdoorCTF 2025 | [skernel](./2025/BackdoorCTF_2025/Pwn_skernel) | writeup | Medium-High (5) | kmalloc-64 UAF | 竞态辅助的 OOB 泄露/写入 | 内核 ROP, `commit_creds(&init_cred)` | | CrewCTF 2025 | [barelyontime](./2025/CrewCTF_2025/Pwn_barelyontime) | writeup | Medium-High (3) | 逻辑漏洞, UAF | UFFD 辅助的 UAF 竞态 | 内核文本覆写 | | corCTF 2025 | [zenerational-aura](./2025/corCTF_2025/Pwn_zenerational-aura) | solved / writeup | Medium-High (5) | 崩溃 syscall | 通过 prefetch 绕过 KASLR | 内核 panic 日志预言机 | | Full Weak Engineer CTF 2025 | [cknote](./2025/Full_Weak_Engineer_CTF_2025/Pwn_cknote) | solved / writeup | Medium-High (2) | kmalloc-32 UAF | UAF 读/写,freelist 操纵 | cred 覆写 | | DownUnderCTF 2025 | [Rolling Around](./2025/DownUnderCTF_2025/Pwn_Rolling_Around) | solved / writeup | Medium-High (4) | 自定义 eBPF ALU 操作码 | OOB eBPF 栈 | modprobe_path 覆写 | | MaltaCTF 2025 Quals | [secure-dwarf](./2025/MaltaCTF_2025_Quals/Pwn_secure-dwarf) | solved / writeup | Medium-High (8) | 自定义 DWARF 字节码 | AAR 原语 | 读取内核内存中的 flag | | DiceCTF 2025 Quals | [oboe](./2025/DiceCTF_2025_Quals/Pwn_oboe) | writeup | Medium-High (16) | 单字节 OOB 覆写 | refcount 覆写 | 内核 ROP, `commit_creds(&init_cred)` | | KalmarCTF 2025 | [decore](./2025/KalmarCTF_2025/Pwn_decore) | writeup | Medium-High (10) | core_pattern 中的二进制集 | 竞态 | 将替代文件转换为符号链接 | | TRX CTF 2025 | [/dev/mem](./2025/TRX_CTF_2025\Pwn_dev_mem) | solved / writeup | Medium-High (4) | 带有 `/dev/mem` 的存在漏洞的二进制文件 | 通过 modprobe_path 绕过 KASLR | 遍历 task 列表,cred 覆写 | ## 涵盖技术 - Use-After-Free - 栈溢出 - 自定义 syscall 滥用 - 自定义 VM / 字节码漏洞 - kmalloc 缓存回收 - 基于 mmap 的悬挂映射 - pipe_buffer 回收 - msg_msg 喷射 - 任意读/写 - 页缓存覆写 - 内核文本覆写 - KASLR 绕过 - Dirty Pipe 风格的漏洞利用 - modprobe_path 覆写 - cred 覆写 - 内核 ROP - LKM 逆向工程 - eBPF 验证器 / eBPF VM 漏洞利用 - DWARF 字节码 VM 漏洞利用 - 基于 QEMU 的内核漏洞利用测试 ## 构建与运行 大多数漏洞利用程序旨在进行静态编译,并在提供的 QEMU/initramfs 环境中执行。 示例: ``` gcc exp01.c -o exp01 -static ``` 或 ``` musl-gcc exp01.c -o exp01 -static ``` ## 挑战模板 - `README.md` — 元数据和简短摘要 - `distribution/` — 原始挑战文件 - `exploit/` — 漏洞利用源代码和辅助脚本(如果有) - `writeup/` — 原始题解、笔记和外部参考资料 ## 参考 - https://lkmidas.github.io/posts/20210123-linux-kernel-pwn-part-1/ - https://pawnyable.cafe/linux-kernel/
标签:CTF Writeup, Dirty Pipe, Docker镜像, Exploit开发, Kernel Pwn, Linux内核, PoC, UAF, Web报告查看器, Writeup, XXE攻击, 二进制安全, 内核漏洞利用, 堆喷射, 子域名枚举, 安全渗透, 安全靶场, 客户端加密, 提权, 暴力破解, 漏洞分析, 系统安全, 网络安全, 越界读写, 路径探测, 身份验证强制, 隐私保护