Linux Kernel Pwn 0:1

0x00 Setup 基础概念 vmlinux 是未压缩的可执行内核文件 vmlinuz 是压缩后的可执行文件 包括bzimage\zimage initrd (initial ramdisk)是用于启动时临时引导硬件到内核的临时文件系统 内核向下控制管理硬件,向上提供应用运行环境 源码阅读 https://elixir.bootlin.com 运行环境 apt-get install qemu-system 启动命令示例 qemu-system-x86_64 -initrd rootfs.cpio -kernel bzImage -append 'console=ttyS0 root=/dev/ram oops=panic panic=1' /dev/null -m 64M --nographic -smp cores=1,threads=1 -cpu kvm64,+smep 调试 -s 选项打开gdb:1234调试 qemu-system-i386 -kernel ./bzImage -append "console=ttyS0 oops=panic panic=1" -initrd ./rootfs -nographic -s gdb -q (gdb) set arch i386:x86-64 (gdb) target remote localhost:1234 文件系统 将busybox或其他文件系统通过cpio打包即可,qemu启动时直接作为initrd启动 启动后根目录下的init脚本会被执行 find . | cpio -o -H newc > ....

July 26, 2020 · 2 min · γ