一步一步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

网络配置方法一(推荐)

  1. 创建网桥virbr0:
sudo brctl addbr virbr0
sudo ifconfig virbr0 192.168.122.1/24 up
  1. 创建tap接口并添加到网桥:
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.122.11/24 up
sudo brctl addif virbr0 tap0
  1. 运行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
  1. 虚拟机内设置IP:
sudo ifconfig eth0 192.168.122.12/24 up

网络配置方法二

  1. 修改/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
  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
  1. 设置权限并重启网络:
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插件,功能强大。

安装步骤:

  1. 按照GitHub说明安装:https://github.com/pwndbg/pwndbg
  2. 安装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搜索插件。

安装方法:

  1. 下载插件
  2. 放入JEB根目录的coreplugins目录
  3. 重新打开JEB

查找结果可在指定位置找到。

五、其他工具安装

Binwalk完整安装

完整版Binwalk对于解压某些固件至关重要:
http://blog.csdn.net/qq1084283172/article/details/65441110

各种平台的gdbserver静态编译版本

下载地址:https://github.com/mzpqnxow/embedded-toolkit

六、常见问题解决

  1. 文件缺失错误

    Could not open 'image-mips.ext2': No such file or directory
    

    确保所有需要的文件(如内核镜像、磁盘镜像)都已下载并放在正确路径。

  2. 虚拟机内网络配置
    如果在虚拟机内安装QEMU,同样需要正确设置网卡配置。

  3. 权限问题
    确保所有脚本有执行权限,必要时使用sudo。

路由器PWN环境搭建指南:MIPS架构分析与调试平台构建 一、环境搭建概述 路由器安全研究主要涉及固件提取、运行环境修复和漏洞利用。大多数路由器采用MIPS架构,因此需要搭建MIPS运行和调试平台。 二、QEMU安装与配置 基础安装 网络配置方法一(推荐) 创建网桥virbr0: 创建tap接口并添加到网桥: 运行QEMU虚拟机: 虚拟机内设置IP: 网络配置方法二 修改 /etc/network/interfaces : 创建 /etc/qemu-ifup 脚本: 设置权限并重启网络: 三、QEMU镜像获取与运行 uClibc交叉编译工具链和QEMU系统镜像 下载地址:https://www.uclibc.org/downloads/binaries/0.9.30.1/ 运行示例: OpenWrt预先编译好的内核(MIPS小端) 下载地址:https://downloads.openwrt.org/snapshots/trunk/malta/generic/ 运行命令: Debian MIPS QEMU镜像 下载地址:https://people.debian.org/~aurel32/qemu/mips/ 运行命令: 四、调试工具安装 Pwndbg安装 Pwndbg是一个支持多种架构的GDB插件,功能强大。 安装步骤: 按照GitHub说明安装:https://github.com/pwndbg/pwndbg 安装MIPS调试支持: 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 六、常见问题解决 文件缺失错误 : 确保所有需要的文件(如内核镜像、磁盘镜像)都已下载并放在正确路径。 虚拟机内网络配置 : 如果在虚拟机内安装QEMU,同样需要正确设置网卡配置。 权限问题 : 确保所有脚本有执行权限,必要时使用sudo。