在师傅们的推荐下,看了点《揭秘家用路由器0day漏洞挖掘技术》的内容,此篇总结调试环境的搭建过程以及搭建过程中遇到的问题。
环境搭建
- MIPS交叉编译环境
- binwalk、sasquatch
- QEMU
- QEMU模拟运行MIPS相关配置
MIPS交叉编译环境
在这里我们使用了buildroot
工具,Buildroot 是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
sudo apt-get install libncurses5-dev patch libncurs*
wget https://buildroot.org/downloads/buildroot-2020.05.tar.bz2
tar -jxvf buildroot-2020.05.tar.bz2
cd buildroot/
make clean
make menuconfig
sudo make
在make menuconfig
的界面,根据揭秘家用路由器0day漏洞挖掘技术
书中描述的参数进行配置文件的更改。
Target Architecture
改为MIPS(little endian)
Toolchain
的Kernel Headers
改为主机Linux的版本
然后就是漫长的等待,经过几十分钟到一个小时,编译完成。在output中的就是编译出来的文件,在buildroot/output/host/usr/bin可以找到生成的交叉编译工具。
binwalk、sasquatch
binwalk
sudo apt-get install binwalk
sasquatch
sudo apt-get install zlib1g-dev liblzma-dev liblzo2-dev
sudo git clone https://github.com/devttys0/sasquatch
cd sasquatch & sudo ./build.sh
QEMU
sudo apt-get install qemu binfmt-support qemu-user-static
QEMU模拟运行MIPS相关配置
网络配置
配置本地网卡
sudo vim /etc/network/interfaces
写入
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet manual
up ifconfig ens33 0.0.0.0 up
auto br0
iface br0 inet dhcp
bridge_ports ens33
bridge_stp off
bridge_maxwait 1
配置 qemu 虚拟机的网卡
echo "Executing /etc/qemu-ifup"
echo "bridge networking"
echo "Bringing up $1 for bridge mode"
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0"
sudo /sbin/brctl addif br0 $1
sleep 3
开启br0网卡,并重启网卡配置
sudo ifup br0
sudo /etc/init.d/networking restart
配置MIPS虚拟机
镜像网站: https://people.debian.org/~aurel32/qemu/mips/
下载debian_squeeze_mips_standard.qcow2和vmlinux-2.6.32-5-4kc-malta
启动虚拟机
sudo qemu-system-mips -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net nic -net tap -nographic
在虚拟机中查看网卡,如果无法连接主机,查看网卡名字,网络接口如果为eth1,则将/etc/network/interfaces 文件中的eth0改为eth1。
可以通过scp
将squashfs
传到MIPS虚拟机中。