前言
本文由 本人 首发于 先知安全技术社区: https://xz.aliyun.com/u/5274
初步分析
首先下载固件
https://gitee.com/hac425/blog_data/blob/master/iot/DIR823GA1_FW102B03.bin
用 binwalk
解开固件
发现这是一个 squashfs
文件系统,里面是标准的 linux
目录结构,所以这个固件应该是基于 linux
做的。
首先看看 etc/init.d/rcS
, 以确定路由器开启的服务。发现最后会开启一个 goahead
进程
goahead
是一个开源的 web
服务器,用户的定制性非常强。可以通过一些 goahead
的 api
定义 url
处理函数和可供 asp
文件中调用的函数,具体可以看看官方的代码示例和网上的一些教程。
这些自定义的函数就很容易会出现问题,这也是我们分析的重点。
# 模拟运行固件
为了后续的一些分析,我们先让固件运行起来,可以使用
https://github.com/attify/firmware-analysis-toolkit
这个工具其实就是整合了一些其他的开源工具,使得自动化的程度更高,具体看工具的 readme
.
运行起来后,首先可以用 nmap
扫一下端口,看看路由器开了哪些端口
可以看到目前就开了 http
服务 和 dns
服务。
下面访问一下路由器的 web
接口