-
-
[原创]路由器固件调试方案
-
发表于:
2020-3-17 10:35
13240
-
本文主要介绍在研究路由器固件安全时常用的两种调试方法,分别是IDA远程调试和gdb远程调试。这里需要注意,由于路由器基本都是mips架构,所以下文是以mips为例展开的,不过如果碰到了arm的,也是同理的。
使用qemu-system模式运行的脚本如下:

这里涉及的两个文件分别是内核文件和磁盘镜像文件
这里注意,我们这里涉及到的固件是大端格式的,如下所示:

所以是用*mips,而不是*mipsel
为了后面的调试,我们还需要准备好gdbserver,可以自己编译,不过我建议使用网上已经静态编译好的gdbserver。这里给出rapid7放出来的:
be3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5j5i4m8A6k6o6N6Q4x3V1k6W2L8h3u0W2k6r3c8W2k6q4)9J5k6s2c8G2L8$3I4K6

这次用到的是大端的,所以使用gdbserver.mipe即可
在运行该脚本之前,除了准备好这两个文件之外,还要执行下图的命令

将其复制到当前目录下
此时路径下的文件包括:

这样就可以启动了

启动成功后如图所示

输入root/root即可
查看ip

将之前提取出的文件系统通过scp上传到机器上

再将gdbserver上传

回到debian看到上传成功

然后将gdbserver复制到squashfs-root目录下

接下来挂载根文件系统

这样,文件系统在mips系统中就成功挂载并运行了
接下来通过gdbserver进行远程调试:

命令中的ip就是debian的ip,端口号自行设置,后面跟着的是要调试的程序
然后在win中打开ida,载入本地的cgibin,在main下断点

接着debugger->select a debugger
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-4-14 18:32
被Editor编辑
,原因: 添加图片