IOT环境配置V2
更新环境原因
概述 V1版本情况:
- 采用一台 ubuntu 1804 配有基本 pwn 工具、qemu static v5.2 、完整版 binwalk 等。承担固件包中单个文件模拟调试任务,以及通过 qemu 模拟异架构系统实现少部分路由器系统模拟。
- 采用 attify v3.0 (base ubuntu 18.04) 的 firmware-analysis-toolkit 模拟路由器系统
V1 版本出现几个问题:
首先是个小问题很容易解决,就是用 qemu uesr 模式单文件模拟调试,gdb-multiarch 有时会连不上。查了下资料、问了问师傅推测可能是 gdb 版本问题。
解决方法换个 ubuntu(16、20)就行了,qemu 都是每个系统的标配。
用 ubuntu 1804 qemu system 模式异架构系统,再在 qemu 虚拟机上运行固件。导入固件文件后,启动脚本基本在
/etc/rc.d/init.d
这种方法能成功跑起来次数不多,但 qemu 使用桥接模式,让 qemu 虚拟机可与宿主机同一网段,方便调试抓包等。
当 ubuntu 1804 qemu system 模拟固件不成功,我就会尝试用 attify FAT 模拟,成功率到时挺高的,但由于 FAT 将 firmadyne 全部操作都整合起来,导致难以个性化修改。比较突出就是:
自动生成启动脚本
run.sh
所配置的网络不能与宿主机在同一个网段,而是和 attify 在同一网段,导致如果想抓包,进行整系统测试时,只能在 attify 中完成。自动生成脚本在 attify 中新建一个网卡 192.168.0.2 ,链接到 qemu 虚拟机中,虚拟机网卡为 192.168.0.1 。attify 访问 192.168.0.1 即访问路由器后台
尝试修改修改 run.sh 的启动模式,将网络模式修改为桥接,手动创建网桥、tap0 网卡等。异架构 debian 可以成功分配到宿主机网段 ip 出网,对于路由器固件就不行,原因未知。
firmadyne 是将固件制作成镜像模拟,也就是说 ssh 密码、 root 密码等等都是固件原有的。当模拟起来后,连不上 shell 就别想着查询端口,通过进程查询提供服务的文件 ……
这个问题解决方法就是放弃 FAT ,自己手工完成 firmadyne 模拟准备工作。解压固件后,将
/etc/shadow
替换一下,然后才制作镜像。问题在于说 attify 在进行解压时连不上 PostgreSQL ,使用 FAT 脚本就能连上。
在原有 ubuntu 1804 上搭建 firmadyne ,可能安装脚本部分东西与原有环境有冲突装不上。firmadyne 的 docker 版本没有尝试过。
V2 版本设想的几种方案:
- 解决 firmadyne 模拟路由器固件桥接网络不成功问题,让路由器与宿主机在同一网段。
- firmadyne docker 不过这个也是要解决网段问题……
- 在 ubuntu 1804 上搭 firmadyne ,放弃分配宿主机网段,直接在 ubuntu 里完成工作
存一下参考文章
解决出网问题
将 firmadyne 部署在云端