• Stars
    star
    550
  • Rank 80,860 (Top 2 %)
  • Language
    C
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

kernel-pwn and writeup collection

kernel pwn

About this repo

This repository collects CTF kernel-pwn challenges and writeups. Also, it introduces how to start learning kernel-pwn for beginners including me. All the challs here are solved by me, though the writeup may be based on the author's one or others's ones. I'm planning to include not only kernel-pwn, but also general non-userland pwn including QEMU, V8, multi-arch...

IMPORTANT: If you know some good kernel(non-userland) pwn challs, please tell me and I'll solve it. Then I'll add it on this repo if I feel it good to solve. And if you notice some wrong points in my writeups or blog posts, feel free to contact me.

Good Challs

Frequently Updated now...

Nirugiri

I don't know these challs are difficult or not and good or soso. But at least I feel these challs are worth solving.

Frequently Updated now...

Beginners

If you don't know how to prepare for solving kernel-pwn, please refer to start-kernel-pwning.

Frequently Updated now...

Techniques

I want to know some techniques to pwn in kernelland. If you know something I should know, please tell me. For the techniques I used to solve the challs listed above is listed HERE(under construction).

Frequently Updated now...

Configs to check

Kernel is distributed in the form of bzImage and no information about build configuration is not provided in 99% cases. However, you have to change the way of exploit depending on the configuration. Some config might hide important information. Some config might randomize the memory layout. Some config might make variables only readable... important_config directory collects the important configurations and tries to summarize how to check if it is enabled and how to bypass it.

My Blog

My blog posts contain not only kernel-writeup, but normal userland-pwn and technique frequently used in pwning and so on... Please check it out. NOTE: The most parts of my blog is written when I'm solving the chall as a memo in HackMD and is converted to blog entry with md2html converter . I received some DMs which ask me to write my blog posts in Englinsh and I'm willing to, cuz writing in English is not a so heavy task for me (regardless of the quality of my English). I know that my blog is ill-translated by Google translater :( I'm planning to write them in English someday in the near future.

References

List of usefull resources are listed under reference directory.

If you have any suggestions, feel free to contact me on Twitter.

LICENSE

This repository is licensed under MIT.

Note that this license is applied only to WHAT I WROTE.

Binary of kernel challenges themselves would be in many cases licensed under other licenses.

Please follow these in that case.

If you think this or related repositories violate your rights, please contact me.

More Repositories

1

pwn-writeups

CTF pwn problem writeup
C
33
star
2

lysithea

small cute utils for kernel challenges
Shell
25
star
3

seccamp23c2-assets

Assets used in lecture "ๆ‰‹ใ‚’ๅ‹•ใ‹ใ—ใฆ็†่งฃใ™ใ‚‹Linux Kernel Exploit" at SecurityCamp2023.
C
11
star
4

zakuro-os

Zig port of x64 MikanOS: an experimental, educational, and toy OS.
Zig
9
star
5

gbzg

GameBoy Emulator (DMG and CGB) written in Zig.
Zig
7
star
6

skbctf

Think it as nirugiri.
Vue
6
star
7

dotfiles

DOTFILES: Dont Obfuscate Tiny FILES
Shell
5
star
8

snippet

snippets just for my convenience
Python
4
star
9

wywiwya

WHAT YOU WRITE IS WHAT YOU ARE.
Vue
4
star
10

xtop

extremely-simplified top powered by ncurses.
Rust
4
star
11

qemu-vdevice-testing

Example virtual PCI devices for QEMU.
C
4
star
12

BitvisorPlayground

Start Playing with BitVisor
3
star
13

smallkirby.xyz

Make Nirugiri Greater.
Vue
3
star
14

smallkirby.xyz.jsx

Make Nirugiri Reacter.
TypeScript
3
star
15

rapt

RAPT: simple toy apt written in Rust
Rust
2
star
16

inu.smallkirby.com

Homepage of smallkirby
TypeScript
2
star
17

favrec

TypeScript
2
star
18

zvm

ZVM: experimental toy VMM in Zig backed by KVM
Zig
2
star
19

hatena-archives

Archive of https://smallkirby.hatenablog.com
HTML
2
star
20

p3land

Learning platform for seccamp2023
HTML
2
star
21

favrec-ext

Browser Extension for FavRec
TypeScript
2
star
22

workman.smallkirby

smallkirby can switch keyboard layout to workman cuz they don't work
TypeScript
2
star
23

Markdown.erb

Markdown powered by ERB
TypeScript
2
star
24

smallkirby

the old crazy nostalgic summer in nirugiri.
TypeScript
2
star
25

skbctf-status

healthchecker of skbctf
Go
2
star
26

RRR

๐Ÿšง R_R < R ( Educational VMM powered by KVM ) ๐Ÿšง
Rust
2
star
27

wikirby

Poetic Necropolis
HTML
2
star
28

CommitLimiter

Limit your commits to Github, to commit to your actual life...
Go
1
star
29

skbctf-tsg

distribution files for skbctf-tsg.
1
star
30

rustyps

Rust
1
star
31

aip

Am I Public...?
Go
1
star
32

hello-zig

zigzag study time
Zig
1
star
33

rdpkg

Makefile
1
star
34

DOG-IS-CUTE-THAN-CAT

๐Ÿถ IS CUTE THAN ๐Ÿฑ
Rust
1
star
35

lily

Kotlin
1
star
36

RustyCowsay

The cow says in Rust.
Rust
1
star
37

rapt2

kawaii simple toy apt.
Rust
1
star
38

bdm-nekomanju

keep air clean: work of BDM
Kotlin
1
star
39

hatena-rs

Hatena API library
Rust
1
star
40

mdbook-codename

mdbook-codename is a preprocessor for mdBook that displays the filename of your codeblocks.
Rust
1
star
41

task.smallkirby.xyz

Say uouo fish life
TypeScript
1
star
42

ymir

Ymir: The Type-1 Hypervisor.
Zig
1
star