网络上有很多安装教程,也看了《揭秘家用路由器 0day 漏洞挖掘技术》,但是由于版本等原因,与其他作者的安装还是略有不同,会遇到很多问题,以下参考我自己安装遇到的问题进行。
我的环境
ubuntu:16.04 内核:4
sudo apt-get install binwalk
sudo git clone https://github.com/devttys0/binwalk.git
在 https://www.pnfsoftware.com/jeb2/mips 下载试用版,但是不知道为啥我的下载速度很慢。
也可以使用吾爱破解
的破解版 https://down.52pojie.cn/Tools/Android_Tools/JEB_3.0.0.201808031948_Pro.zip ,亲测内部可以进行复制粘贴。
需要安装java环境,可以参考:https://blog.csdn.net/lyhkmm/article/details/79524712 进行安装。
有两种方法,一种是直接下载,另一种是通过官网下载包,然后再安装。经过H4lo师傅的踩坑,2.4.0版本
最好。
方法一:
sudo apt-get install qemu
我这样下载下来的是2.5.0版本
,我决定先用一段时间...
方法二:
https://download.qemu.org/ # 自选版本进行下载 ./configure sudo make -j8 # -jx x=内核*2 sudo make install
sudo apt-get install build-essential liblzma-dev liblzo2-dev zlib1g-dev git clone https://github.com/devttys0/sasquatch cd sasquatch ./build.sh
使用sasquatch工具的时候,直接命令行输入 sasquatch加对应的参数就可以执行。
这个我卸载安装了好几次..因为安装的版本编译会出错(我搜索没有找到较好的解决办法),使用会出现头文件找不到等等问题。推荐下面的版本
sudo apt-get install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool //升级一下系统的包 wget http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2 tar -jxvf buildroot-snapshot.tar.bz2 cd buildroot make menuconfig
查看kernel版本进行选择:
uname -r
最后使用
make
进行编译
法一:将PATH添加到/etc/profile
末尾,再source /etc/profile
,网上很多都说有效...对我无效,只是暂时性的
法二:将PATH添加到~/.bashrc
末尾,再source
export PATH="/home/kk/tools/buildroot/output/host/bin:$PATH" # 填自己的编译器所在路径
#include<stdio.h> int main(){ puts("demo"); return 0; }
kk@ubuntu:~/Desktop/iot$ mipsel-linux-gcc -static demo.c -o demo kk@ubuntu:~/Desktop/iot$ ls demo demo.c kk@ubuntu:~/Desktop/iot$ file demo demo: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, not stripped
LSB --> 小端序
https://people.debian.org/~aurel32/qemu/mips/ 自行选择大小端格式mips系统【mips大端机,mipsel小端机】
sudo apt-get install uml-utilities bridge-utils # 安装依赖文件 sudo vim /etc/network/interfaces # 修改主机配置
写入
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp iface br0 inet dhcp bridge_ports eth0 bridge_maxwait 0
创建qemu网络接口启动脚本
sudo vim /etc/qemu-ifup
将原来内容注释,并写入
#!/bin/sh 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 2
更改qemu-ifup权限,重启使配置生效
sudo chmod 777 /etc/qemu-ifup sudo /etc/init.d/networking restart
失败,在网上查询之后,找到了比较好的解决方法
网卡中并没有叫eth0的。
将上面两个文件中的eth0
改为ens33
,再次sudo /etc/init.d/networking restart
,成功。(但是我仍然不确定是否解决了本质问题...)
eth0
,不过我没有用这种方式,可以参考:https://blog.csdn.net/openbox2008/article/details/80051259 我觉得有些麻烦执行:
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
登录
- Hostname: debian-mips - Root password: root - User account: user - User password: user
查看
eth0没有ip,手动设置ifconfig eth0 xxx.xx.xx.xx
,mips虚拟机的ip要和主虚拟机ip在同一网段
很麻烦...我这还遇见这么多错误...
第二种方法,是直接使用tunctl
命令来建立一个虚拟网卡,与模拟的 mips 虚拟机进行通信
sudo tunctl -t tap0 -u `whoami` # 为了与 QEMU 虚拟机通信,添加一个虚拟网卡 sudo ifconfig tap0 10.10.10.1/24 # 为添加的虚拟网卡配置 IP 地址 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 # 开启mips虚拟机
在mips虚拟机中登录后执行
ifconfig eth0 10.10.10.2/24
可以互相ping通说明配置成功
参考:
https://blog.csdn.net/QQ1084283172/article/details/68942660
https://xz.aliyun.com/t/3826#toc-2
https://xz.aliyun.com/t/6071#toc-2
https://blog.csdn.net/youyudehexie/article/details/7583657
https://xz.aliyun.com/t/462#toc-6
感谢BufSnake
知世
2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!
最后于 3小时前 被plkk编辑 ,原因: