today-0day
NotionGithubSiteContact
Korean
Korean
  • Introduction
    • 🚩Windows Driver 0-day Research
    • πŸ«‚Team. 우리 μ˜€λŠ˜λΆ€ν„° 0-day
  • backgrounds
    • Windows Driver
    • Related Works
  • Our Approach
    • κ°œμš”
    • πŸ‡Init Analyzer
    • 😑angr-PT
    • πŸ₯ŒMS Fuzzer
      • Playmaker mode
      • Qemu-nyx
      • Redqueen
      • Multiple Driver Tracing
      • Call Stack Parser
    • How to Use
  • Appendix
    • References
    • Achievments
    • πŸ”—Team page
    • πŸ”—CODE BLUE 2024
Powered by GitBook
On this page
  • 0. Tested Environment
  • 1. Install dependencies
  • 2. Enroll github SSH Keys
  • 3. Clone this repo & change kernel to 6.0.0-nyx+
  • 4. Build the Windows VM Template
  • 5. Import the template into Vagrant
  • 6. Import into libvirt
  • 7. Run Fuzz
  1. Our Approach

How to Use

PreviousCall Stack ParserNextReferences

Last updated 2 months ago

0. Tested Environment


CPU : Intel i-7 12700K
RAM : 84G
GPU : Nvidia Geforce 1060 super
OS : Ubuntu 20.04.6 LTS

1. Install dependencies


sudo apt-get update -y
sudo apt-get install gcc git make curl vim python3 python3.8-venv -y

2. Enroll github SSH Keys


$ ssh-keygen -t rsa -C <example@example.com>

$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nz...

put this string to github -> profile -> settings -> SSH and GPG Keys -> New SSH key

3. Clone this repo & change kernel to 6.0.0-nyx+


cd ~
git clone git@github.com:0dayResearchLab/msFuzz.git kAFL
cd kAFL
make deploy
reboot

4. Build the Windows VM Template


cd ~/kAFL
make deploy -- --tags examples,examples-template-windows
cd ./kafl/examples/templates/windows
make build

5. Import the template into Vagrant


make import

6. Import into libvirt


cd ../../windows_x86_64
make init

7. Run Fuzz


cd ~/kAFL
make env
cd kafl/examples/windows_x86_64/
mkdir -p bin/driver 
cp ../../fuzzer/Utils/Harness_for_nyx.sys ./bin/driver


1. vi src/driver/vuln_test.c -> Change Symbolic Link Name / target sys ( Target Driver Name )

2. Qemu Booting
-> vagrant up --no-provision

3. Make Qemu Snapshot named 'ready_provision'
-> vagrant snapshot save --force 'ready_provision'

4.a
    make target -> automatic loading the Driver to Qemu that located in bin/driver/target.sys & bin/driver/vuln_test.exe
4.b
    make no_target -> automatic loading the Driver to Qemu that located in vuln_test.exe / call_stack.sys
4.c
    make environment yourself


6. mkdir -p ./seed

7. ./run.sh


8. Show GUI
cd ~/kAFL
make env
cd kafl/examples/windows_x86_64/
kafl gui -w work

9. make revoke -> Revoke the Snapshot from fuzzed to Stage #3 ( 'ready_provison' )
LogoGitHub - 0dayResearchLab/msFuzz: Targeting Windows Kernel Driver FuzzerGitHub