首页
社区
课程
招聘
[原创]路由器固件调试方案
2020-3-17 10:35 11433

[原创]路由器固件调试方案

2020-3-17 10:35
11433

0x01前言


本文主要介绍在研究路由器固件安全时常用的两种调试方法,分别是IDA远程调试和gdb远程调试。这里需要注意,由于路由器基本都是mips架构,所以下文是以mips为例展开的,不过如果碰到了arm的,也是同理的。


0x02 IDA Pro远程调试


使用qemu-system模式运行的脚本如下:



这里涉及的两个文件分别是内核文件和磁盘镜像文件


这里注意,我们这里涉及到的固件是大端格式的,如下所示:



所以是用*mips,而不是*mipsel


为了后面的调试,我们还需要准备好gdbserver,可以自己编译,不过我建议使用网上已经静态编译好的gdbserver。这里给出rapid7放出来的:

https://github.com/rapid7/embedded-tools



这次用到的是大端的,所以使用gdbserver.mipe即可


在运行该脚本之前,除了准备好这两个文件之外,还要执行下图的命令



将其复制到当前目录下


此时路径下的文件包括:



这样就可以启动了



启动成功后如图所示


输入root/root即可


查看ip



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



再将gdbserver上传



回到debian看到上传成功



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



接下来挂载根文件系统



这样,文件系统在mips系统中就成功挂载并运行了


接下来通过gdbserver进行远程调试:



命令中的ip就是debian的ip,端口号自行设置,后面跟着的是要调试的程序


然后在win中打开ida,载入本地的cgibin,在main下断点




接着debugger->select a debugger




选择remote gdb debugger


点击ok即可


debugger->process options




上面填入在debian中的路径,下面是ip以及对应的端口,点击ok即可


debugger->attach to process




选择第一个,点击ok后,即可进行调试




点击左上角的箭头后,就会自动运行,命中下的断点




说明调试环境已经搭建好了。


0x03 GDB远程调试


打开两个终端:

一个终端使用qemu-user模式运行stack_bof_01




与直接运行不同,这里通过-g指定了端口


接下来在另一个终端通过gdb调试




-multiarch是为了支持其他架构用的,比如我们这里的mips架构


接下来首先设置架构为mips



然后设置ip和端口




通过pwndbg的扩展,我们就可以很方便的进行调试了




0x04


看完这篇文章,其实大家都知道我的重点放在了ida动态调试上,个人觉得这是最可靠的调试方案。不过这期间涉及到的功能实现都是有很多方案可以备选的:比如在上传文件系统,gdbserver到debian时我用的scp,当然还可以用其他的,ftp也可以,用python也行(python -m SimpleHTTPServer)


如果是新手看到这篇文章的话,一定要注意,文中我虽然是qemu-system模式和IDA远程调试结合进行分析,qemu-user模式和gdb-multiarch结合进行分析。但是实际上,是可以自由组合的。另外,radare2也是可以用于mips的调试的,但是就我个人经验而言没有必要,所以就不再介绍。


最后给出一篇扩展的文章:https://www.ringzerolabs.com/2018/03/the-wonderful-world-of-mips.html


里面介绍了qemu的两种模式仿真,与radare2本地/远程调试,gdb远程/本地调试,ida远程调试等一共九种组合方案的实现。学有余力的话可以去看看。


详情可以参考附件


阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

最后于 2020-4-14 18:32 被Editor编辑 ,原因: 添加图片
上传的附件:
收藏
点赞2
打赏
分享
最新回复 (7)
雪    币: 16157
活跃值: (2143)
能力值: ( LV9,RANK:147 )
在线值:
发帖
回帖
粉丝
orz1ruo 2020-3-17 11:10
2
2
图炸了
雪    币: 2434
活跃值: (2302)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
gtict 2020-3-17 11:30
3
1
图不见
雪    币: 5325
活跃值: (206)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
w霸气侧漏 2020-3-18 21:24
4
1
无图   无图。。。。。。。。。。。
雪    币: 1419
活跃值: (855)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
英俊 2020-3-21 12:19
5
0
没有图!
雪    币: 32403
活跃值: (18850)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2020-3-22 09:53
6
0
看了一下,图片的URL是:<img src="file:////Users/yale/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image002.png" width="415" height="40"></p>

建议楼主重新帖一下图。
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
git_60961smithCoderLeo 2020-4-12 11:14
7
0
图没了
雪    币: 1910
活跃值: (3333)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
KingSelyF 1 2020-4-13 23:56
8
0
附件应有尽有
游客
登录 | 注册 方可回帖
返回