GPT가 작성해준 커리큘럼에 따라 CTF에 출제된 커널 문제들을 풀어보며 학습해보려고 한다.
0. 기본 10개
Phase 1: Primitive
-
3kCTF-2021 / echo
- direct AAR/AAW syscall
-
ASIS CTF Finals 2025 / KList
- simple OOB write
-
NexHunt CTF 2025 / below
- OOB read/write
-
TAMUctf 2022 / Shmeeky
- integer overflow + OOB R/W
Phase 2: Kernel heap object
-
UIUCTF 2025 / Baby Kernel
- tty_struct ops hijack
-
PatriotCTF 2025 / switchboard
- kmalloc-32 UAF
Phase 3: 종합
-
TSG CTF 2021 / lkgit
- userfaultfd race + seq_operations leak
-
ASIS CTF Quals 2021 / Mini memo
- msg_msg + pipe_buffer + freelist poisoning
Phase 4: ROP 보강
-
NahamCon CTF 2025 / The Jumps 또는 K3RN3LCTF / Easy kernel is still kernel right?
- kernel ROP / KPTI trampoline 입문
-
hxp CTF 2020 / kernel-rop
- kernel ROP + FG-KASLR + ksymtab
1. tty_struct hijacking 트랙
-
Easy — TSJ CTF 2022 / clipboard.ko
- 목표:
tty_structreclaim 복습
- 목표:
-
Medium — zer0pts CTF 2020 / meowmow
- 목표: leak + fake
tty_operations
- 목표: leak + fake
-
Hard — 3kCTF-2021 / klibrary
- 목표: UFFD race +
tty_structoverlap
- 목표: UFFD race +
추천 순서: clipboard.ko → meowmow → klibrary
2. pipe_buffer / Dirty Pipe 트랙
-
Easy — b01lers CTF 2026 / throughthewall
- 목표: 쉬운
pipe_bufferreclaim
- 목표: 쉬운
-
Medium — BackdoorCTF 2024 / Kuwu
- 목표:
msg_msg+pipe_bufferoverlap
- 목표:
-
Hard — bi0sCTF 2024 / palindromatic
- 목표: OOB/double free +
msg_msg/pipe_buffer종합
- 목표: OOB/double free +
추천 순서: throughthewall → Kuwu → palindromatic
3. msg_msg 트랙
-
Easy — BackdoorCTF 2024 / Kuwu
- 목표:
msg_msgoverlap 입문
- 목표:
-
Medium — HITCON CTF 2020 / atoms
- 목표:
msg_msgreclaim / UAF
- 목표:
-
Hard — pbctf 2021 / Nightclub
- 목표:
m_tscorruption + heap leak + freelist corruption
- 목표:
추천 순서: Kuwu → atoms → Nightclub
Kuwu는 pipe_buffer 트랙과 겹치므로 한 번 풀고 두 트랙에 같이 체크해도 됨.
4. seq_operations overlap 트랙
-
Easy — bi0sCTF 2022 / k32
- 목표: heap leak + kernel text leak
-
Medium — SECCON 2020 Online CTF / kstack
- 목표:
seq_operations+ UFFD + ROP
- 목표:
-
Hard — SUSCTF 2022 / kqueue’s revenge
- 목표:
seq_operationsleak + UFFD reclaim + ROP 종합
- 목표:
추천 순서: k32 → kstack → kqueue’s revenge
5. userfaultfd / race 트랙
-
Easy — BackdoorCTF 2023 / EmpDB
- 목표: UFFD-assisted race 입문
-
Medium — DiceCTF 2021 / hashbrown
- 목표: resize race + UFFD +
pipe_buffer
- 목표: resize race + UFFD +
-
Hard — HITCON CTF 2022 / Fourchain - Kernel
- 목표: UFFD + heap objects + DirtyCred 종합
추천 순서: EmpDB → hashbrown → Fourchain - Kernel
6. kernel ROP / KPTI trampoline 트랙
-
Easy — m0leCon CTF 2020 Teaser / babyk
- 목표: kernel ROP 기본 복습
-
Medium — zer0pts CTF 2022 / kRCE
- 목표: AAR/AAW + task traversal + KPTI
-
Hard — SECCON CTF 2021 / kone_gadget
- 목표: SMEP/SMAP, seccomp JIT, ROP 심화
추천 순서: babyk → kRCE → kone_gadget
7. FG-KASLR / ksymtab 트랙
-
Easy — hxp CTF 2020 / kernel-rop 복습
- 목표: FG-KASLR + ksymtab 기본
-
Medium — corCTF 2021 / Wall of Perdition
- 목표: ksymtab symbol resolution 심화
-
Hard — skernel 또는 oboe
- 목표: ROP 고난도 문제와 결합
추천 순서: hxp kernel-rop 복습 → Wall of Perdition → skernel 또는 oboe
8. DirtyCred 트랙
-
Easy — N1CTF 2022 / File
- 목표: DirtyCred 사고방식 입문
-
Medium — HITCON CTF 2022 / Fourchain - Kernel
- 목표: DirtyCred + UFFD + heap 종합
-
Hard — N1CTF 2024 / heap_master
- 목표: cross-cache / page-level exploitation 확장
추천 순서: N1CTF 2022 File → Fourchain - Kernel → heap_master
9. eBPF 트랙
-
Easy — Google CTF 2021 / EBPF
- 목표: verifier type confusion 입문
-
Medium — SECCON CTF 2022 Quals / babypf
- 목표: verifier range bug
-
Hard — DownUnderCTF 2025 / Rolling Around
- 목표: custom eBPF verifier bug
추천 순서: Google CTF EBPF → babypf → Rolling Around
10. UEFI 트랙
-
Easy — N1CTF 2022 / Babyuefi
- 목표: UEFI 입문
-
Medium — Pwn2Win CTF 2021 / Accessing the Truth
- 목표: UEFI stack overflow + shellcode
-
Hard — 별도 UEFI/SMM 문제로 확장
- 목표: SMM, firmware exploitation
추천 순서: Babyuefi → Accessing the Truth