路由器破解初探之环境搭建
最近在学习iot安全,路由器的破解应该是入门点,而在路由器的漏洞挖掘过程中,环境搭建是一个坑点巨多的点,毕竟,贫穷使我选择仿真,本文记录一些我踩过的坑,希望能对想入坑的人提供一些帮助
环境搭建
注:我的安装环境是ubuntu 16.04(本来选择18.04的,结果18.04会有玄学问题2333
在linux下安装IDA
如何在ubuntu下安装IDA呢?
其实也不是很难,我这里直接采用wine模拟器来安装运行IDA
建议运行环境(ubuntu16.04,可支持IDA7.0,但是最好使用IDA6.8,可以使用更多的插件)
安装命令如下:1
sudo apt-get install wine
安装wine后可以直接按安装IDA或者将物理机的IDA拉近虚拟机中即可
然后为了方便可以写一个启动脚本1
2#!bin/sh
wine pwd/idag.exe
当然,由于某些DLL文件的缺失可能会导致无法成功安装或启动,我们可以通过将本机的DLL文件放入IDA的根目录下来解决该问题,还有一些运行的报错可以通过错误信息来依次解决,因为原因可能有很多,这里就不再阐述
安装IDA的MIPS插件和脚本
下载插件
1
git clone https://github.com/devttys0/ida.git
复制脚本
我们需要将plugins下的所有的python文件都复制到IDA的相同目录中,还需要把scripts也复制过去
第一步的命令大概如下:1
cp -r `find pwd/plugins -iname *.py` pwd/plugins/
ghidra
在反编译过程中,有时候IDA会有一些玄学问题,这里使用ghidra就可能会舒服很多,虽然爆出了很多后门,但是插件的数量以及在一些方面的优势还是不可小视的
下载地址1
https://ghidra-sre.org/
这里也提供一个9.1版本的百度云链接吧,提取码:8upz
启动环境需要1
2
34 GB RAM
1 GB storage (for installed Ghidra binaries)
Dual monitors strongly suggested
以及1
Java 11 64-bit
binwalk
我们可以选择直接安装binwalk,但是这样安装的binwalk功能上可能会有些缺陷,有些固件会无法提取,因此这里采取下载源代码自己编译的方法来安装
直接安装方法
1
sudo apt-get install binwalk
下载源代码自己编译
1
2
3
4
5
6
7
8sudo apt-get install git build-essential autoconf
sudo git clone https://github.com/devttys0/binwalk.git
sudo apt-get install libqt4-opengl python-qt4 python-qt4-gl python-numpy python-scipy python-pip
sudo pip install pyqtgraph
sudo apt-get install zlib1g-dev liblzma-dev liblzo2-dev
git clone https://github.com/devttys0/sasquatch
cd sasquatch && sudo make && sudo make install
sudo python setup.py install
sasquatch SquashFSt提取工具
1 |
|
qemu
和Binwalk相同,也有两种方法
直接安装一步到位
1
2
3
4
5
6
7
8
9
10
11
12sudo apt install libglib2.0-dev libgcrypt20-dev autoconf automake libtool
sudo apt-get install libglib2.0 libglib2.0-dev
sudo apt install -y pkg-config
sudo apt install -y libpixman-1-dev
sudo apt install -y libfdt-dev
sudo apt install libsdl2-dev
sudo apt install libsnappy-dev
sudo apt install libgtk-3-dev
sudo apt install libjpeg-turbo8-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libspice-server-dev
sudo apt-get install qemu自己编译
git
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17git clone git://git.qqmu-project.org/qemu.git/qemu.git
git submodule update --init pixman
git submodule update --init dtc
sudo apt install libglib2.0-dev libgcrypt20-dev autoconf automake libtool
sudo apt-get install libglib2.0 libglib2.0-dev
sudo apt install -y pkg-config
sudo apt install -y libpixman-1-dev
sudo apt install -y libfdt-dev
sudo apt install libsdl2-dev
sudo apt install libsnappy-dev
sudo apt install libgtk-3-dev
sudo apt install libjpeg-turbo8-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libspice-server-dev
sudo ./configure --static && sudo make -j8 && sudo make install
注: 使用configure 使用static参数的时候,依赖可能会根据不同环境导致依赖缺失,可以根据报错来解决依赖问题wget
可根据需求不同来选择不同的版本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18sudo apt install libglib2.0-dev libgcrypt20-dev autoconf automake libtool
sudo apt-get install libglib2.0 libglib2.0-dev
sudo apt install -y pkg-config
sudo apt install -y libpixman-1-dev
sudo apt install -y libfdt-dev
sudo apt install libsdl2-dev
sudo apt install libsnappy-dev
sudo apt install libgtk-3-dev
sudo apt install libjpeg-turbo8-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libspice-server-dev
sudo arm-softmmu
wget https://download.qemu.org/qemu-4.1.0.tar.xz
tar xvJf qemu-4.1.0.tar.xz
cd qemu-4.1.0
sudo ./configure --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --audio-drv-list=alsa,pa
sudo make -j8
sudo make install
这里也贴出官方的安装教程
To download and build QEMU 4.1.0:
1
2
3
4
5wget https://download.qemu.org/qemu-4.1.0.tar.xz
tar xvJf qemu-4.1.0.tar.xz
cd qemu-4.1.0
./configure
makeTo download and build QEMU from git:
1
2
3
4
5
6git clone https://git.qemu.org/git/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure
makeDebian/Ubuntu:
1
apt-get install qemu
MIPS交叉编译环境
在x86平台上编译MIPS架构的应用程序,需要我们在Ubuntu下建立交叉编译环境,编译过程中,会下载一些依赖包,需要网络畅通,这里有一个点很难受,就是如果你的内核版本在选项中没有出现的时候,可能需要我们选择更高版本的内核版本
1 |
|
在make menuconfig那一步的时候,我们需要更改几个地方
- “Target Architecture”改为”MIPS(littke endian)
- “Target Architecture Variant”改成”mips32”
- “tool chains”->”Kernel Headers”改成机器环境的kernel版本,可使用uname -r查看
本机内核版本,如果没有,可以选择4.4
笔者本机的内核版本是4.15,但是选项中没有4.15,因此我开始时选择了4.14,但是在编译过程中,4.14会在下载时报404,因此推荐选择4.4.x
然后sudo make -j8即可
注:这里需要保持网络联通,编译时间可能需要很久
firmadyne
一个非常简单的路由器运行环境,此环境下无法调试1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16sudo apt-get install busybox-static fakeroot git dmsetup kpartx netcat-openbsd nmap python-psycopg2 python3-psycopg2 snmp uml-utilities util-linux vlan
git clone --recursive https://github.com/firmadyne/firmadyne.git
之后要进入到文件夹内,修改firmadyne.config,将其中的
FIRMWARE_DIR=/home/vagrant/firmadyne/
修改为完整路径
然后可以执行安装
sudo ./download.sh
sudo -H pip install git+https://github.com/ahupp/python-magic
sudo -H pip install git+https://github.com/sviehb/jefferson
sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils
sudo apt-get install postgresql
sudo -u postgres createuser -P firmadyne
sudo -u postgres createdb -O firmadyne firmware
sudo -u postgres psql -d firmware < ./firmadyne/database/schema
之后就可以利用这个模拟固件了
到此基本的环境就基本搭建完毕了,enjoy:)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!