beginner-kernel-exploitation-setup

Introduction

This repository has been created for the talk (KRWX: A tool to learn and assist Kernel Exploitation) given at NoHat @2023.

How to Install

  • ./setup.sh
  • As a beginner friendly repository everything is hard-coded. By default, it will compiles a 6.4 kernel and a debian image from the syzkaller repository. If you want to further customize it, see the ./helpers/ folder.

How to Run

  • ./start.sh ./code/hello_world.c for a first dry run. You can write your own C code and specifiy it
  • When the qemu instance boots up you can type root and you're in. Then ./run to install KRWX module and execute the compiled binary

Requirements

Tested on x86_64 ubuntu machine. Ubuntu is not strictly required, but if you want to use another distro, change the apt command from setup.sh based on your distro (or comment the 2 lines and install necessary requirements by yourself).

sudo is required for some operations (grep -R sudo * if you are suspicious)