初步分析

首先下载固件

https://gitee.com/hac425/blog_data/blob/master/iot/DIR823GA1_FW102B03.bin

binwalk 解开固件

发现这是一个 squashfs 文件系统,里面是标准的 linux 目录结构,所以这个固件应该是基于 linux 做的。

首先看看 etc/init.d/rcS , 以确定路由器开启的服务。发现最后会开启一个 goahead 进程

goahead 是一个开源的 web 服务器,用户的定制性非常强。可以通过一些 goaheadapi定义 url 处理函数和可供 asp 文件中调用的函数,具体可以看看官方的代码示例和网上的一些教程。

这些自定义的函数就很容易会出现问题,这也是我们分析的重点。

模拟运行固件

为了后续的一些分析,我们先让固件运行起来,可以使用

https://github.com/attify/firmware-analysis-toolkit

这个工具其实就是整合了一些其他的开源工具,使得自动化的程度更高,具体看工具的 readme.

运行起来后,首先可以用 nmap 扫一下端口,看看路由器开了哪些端口

可以看到目前就开了 http 服务 和 dns 服务。

下面访问一下路由器的 web 接口

第一次访问路由器的 web 接口,就会要求用户做一些初始化设置,比如设置密码等。

攻击面分析

对于一个路由器,我的主要关注点有

  • 后门账户,默认密码
  • 敏感功能未授权访问
  • web 服务对各种请求的处理逻辑

经过上面简单的分析,发现只有 httpdns 服务是暴露在外的。http 服务的第一次访问就会要求输入新密码,所以默认密码的问题也不存在。下面分析 web 服务的处理逻辑。

经过简单的测试发现,web 目录应该是 web_mtn, 目录的结构如下

DIR823GA1_FW102B03.rar (5.782 MB) 下载附件
点击收藏 | 2 关注 | 2
登录 后跟帖