更新环境原因

概述 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

    linux /etc/rc.d/目录的详解-cradmin

    linux /etc/rc.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 版本设想的几种方案:

  1. 解决 firmadyne 模拟路由器固件桥接网络不成功问题,让路由器与宿主机在同一网段。
  2. firmadyne docker 不过这个也是要解决网段问题……
  3. 在 ubuntu 1804 上搭 firmadyne ,放弃分配宿主机网段,直接在 ubuntu 里完成工作

存一下参考文章