Honggfuzz

Honggfuzz 筆記,透過 docker 執行 Honggfuzz 並啟用 qemu 模式進行 fuzzing。

Getting Started

理論基礎請參見 Fuzzing 筆記

透過 docker 安裝並且執行

docker run --rm -it -v $(pwd):/work --privileged zjuchenyuan/honggfuzz:latest /bin/bash

為了黑箱測試必須啟用 qemu 模式,相關模塊需要另外編譯 。

cd qemu_mode/
apt update
apt install libglib2.0-dev libpixman-1-dev
make
cd honggfuzz-qemu/ && make

如果出現 run if fatal: unable to access 'https://git.qemu.org/git/capstone.git/': server certificate verification failed.

export GIT_SSL_NO_VERIFY=1
make

返回並且測試 qemu 模式

cd /honggfuzz

開始 fuzzing,似乎沒有啟用 qemu 模式也可以找到 crash ,這邊取 pwnable.tw 的題目,可以找到一些 crash 但效率非常低(存疑,等待驗證)。

honggfuzz -i /work/in/ -t 1 -s -- /work/silver_bullet

而 qemu 選擇正確的架構集之後,可以修復EXITED, exit code: 255 的問題,而且找非常容易找到 crash,跑30 分鐘大概可以找到 500 左右個獨特的 crash (存疑,等待驗證)。

honggfuzz -i /work/in/ -t 1 -s -- ./qemu_mode/honggfuzz-qemu/i386-linux-user/qemu-i386 /work/hacknote

Persistent Mode

問題

exited with status: EXITED, exit code: 255

請確保使用正確的架構,不同架構會導致 qemu 退出

./qemu_mode/honggfuzz-qemu/x86_64-linux-user/qemu-x86_64 ./a.out
./qemu_mode/honggfuzz-qemu/i386-linux-user/qemu-i386

參考


Vulnerability Fuzzing Testing Zero-Day Pwn