xmin. guest@xmin ~ $
~/ $
[환경 구축] 2025년 11월 1일

리눅스 커널 퍼징을 위한 qemu, BusyBox 빌드

리눅스 커널 퍼징을 위한 QEMU 설치 및 BusyBox 빌드, rootfs 생성 과정

busyboxfuzzFuzzingLinux Kernelqemu

본 블로그는 로컬 환경에서 실시되었으며, wsl과 로컬 환경 동일합니다.

linux-6.17.6 버전을 기준으로 작성 되었으며, 모든 설치 과정은 동일하니 linux-6.17.6 부분만 각자 다운받은 버전으로 변경하면 됩니다.

본 블로그의 작업 디렉토리는 /usr/src/kernel 입니다.

qemu 설치

sudo apt install qemu-utils qemu-system-x86 qemu-kvm

이 명령어 한 줄이면 qemu 설치는 끝난다.

BusyBox 빌드

cd /usr/src/kernel sudo cp /Downloads/busybox-1.37.0.tar.bz2 ./ sudo tar -xvf ./busybox-1.37.0.tar.bz2 cd busybox-1.37.0 make menuconfig

menuconfig 설정 옵션:

Settings -> Build options -> build static binary 선택

Networking Utilities -> inetd 선택 해제

Networking Utilities -> tc 선택 해제

sudo apt update sudo apt install -y libncurses-dev libnl-3-dev libnl-genl-3-dev linux-headers-$(uname -r) sudo make CONFIGPREFIX=../result install

busybox 빌드 출력이 성공하면 계속 진행:

cd ../result/ mkdir var dev etc lib proc tmp sys

cat << 'EOF' > ./init #!/bin/sh

mount -t proc none /proc mount -t sysfs none /sys mount -t devtmpfs devtmpfs /dev

exec 0</dev/console exec 1>/dev/console exec 2>/dev/console

echo "7 4 1 7" > /proc/sys/kernel/printk

cp /proc/kallsyms /tmp/kallsyms

setsid cttyhack setuidgid 1000 sh

umount /proc umount /sys poweroff -d 0 -f EOF

chmod 755 ./init find . cpio -o --format=newc > ../rootfs.cpio

cd ../ mkdir rootfs mv ./rootfs.cpio ./rootfs cd ./rootfs cpio -id -v < rootfs.cpio