一步一步PWN路由器之环境搭建
字数 1224 2025-08-22 18:37:22
路由器PWN环境搭建指南:MIPS架构分析与调试平台构建
一、环境搭建概述
路由器安全研究主要涉及固件提取、运行环境修复和漏洞利用。大多数路由器采用MIPS架构,因此需要搭建MIPS运行和调试平台。
二、QEMU安装与配置
基础安装
apt-get install qemu
apt-get install qemu-user-static
apt-get install qemu-system
apt-get install uml-utilities
apt-get install bridge-utils
网络配置方法一(推荐)
- 创建网桥virbr0:
sudo brctl addbr virbr0
sudo ifconfig virbr0 192.168.122.1/24 up
- 创建tap接口并添加到网桥:
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.122.11/24 up
sudo brctl addif virbr0 tap0
- 运行QEMU虚拟机:
sudo qemu-system-mips -M malta -kernel mips_vmlinux-3.2.0-4-4kc-malta \
-hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" \
-netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet -nographic
- 虚拟机内设置IP:
sudo ifconfig eth0 192.168.122.12/24 up
网络配置方法二
- 修改
/etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_maxwait 1
- 创建
/etc/qemu-ifup脚本:
#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /sbin/brctl addif br0 $1
sleep 3
- 设置权限并重启网络:
chmod a+x /etc/qemu-ifup
/etc/init.d/networking restart
三、QEMU镜像获取与运行
uClibc交叉编译工具链和QEMU系统镜像
下载地址:https://www.uclibc.org/downloads/binaries/0.9.30.1/
运行示例:
sudo qemu-system-mips -M malta -nographic -no-reboot -kernel "zImage-mips" \
-hda "image-mips.ext2" -append "root=/dev/hda rw init=/usr/sbin/init.sh panic=1 PATH=/usr/bin console=ttyS0" \
-net nic -net tap -drive file=/tmp/share.img
OpenWrt预先编译好的内核(MIPS小端)
下载地址:https://downloads.openwrt.org/snapshots/trunk/malta/generic/
运行命令:
sudo qemu-system-mipsel -kernel openwrt-malta-le-vmlinux-initramfs.elf \
-M malta -drive file=/tmp/share.img -net nic -net tap -nographic
Debian MIPS QEMU镜像
下载地址:https://people.debian.org/~aurel32/qemu/mips/
运行命令:
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
四、调试工具安装
Pwndbg安装
Pwndbg是一个支持多种架构的GDB插件,功能强大。
安装步骤:
- 按照GitHub说明安装:https://github.com/pwndbg/pwndbg
- 安装MIPS调试支持:
sudo apt install gdb-multiarch
Firmadyne安装
一个路由器运行环境,操作简单但不支持调试:
https://github.com/firmadyne/firmadyne
MIPSROP插件安装
用于检测MIPS架构的ROP gadgets:
https://github.com/devttys0/ida/tree/master/plugins/mipsrop
将插件放入IDA的plug目录即可使用。
PleaseROP插件安装
适用于JEB 2.3+的ARM/MIPS通用ROP gadgets搜索插件。
安装方法:
- 下载插件
- 放入JEB根目录的coreplugins目录
- 重新打开JEB
查找结果可在指定位置找到。
五、其他工具安装
Binwalk完整安装
完整版Binwalk对于解压某些固件至关重要:
http://blog.csdn.net/qq1084283172/article/details/65441110
各种平台的gdbserver静态编译版本
下载地址:https://github.com/mzpqnxow/embedded-toolkit
六、常见问题解决
-
文件缺失错误:
Could not open 'image-mips.ext2': No such file or directory确保所有需要的文件(如内核镜像、磁盘镜像)都已下载并放在正确路径。
-
虚拟机内网络配置:
如果在虚拟机内安装QEMU,同样需要正确设置网卡配置。 -
权限问题:
确保所有脚本有执行权限,必要时使用sudo。