固件分析技术(2)-工具使用 – 作者:hahali

历史文章:

固件分析技术(1)-简介

文章首发于公众号:焊死车门

一、固件分析需要的工具以及环境:

虚拟机:我选择的是unbuntu16.04。

需要安装的工具:VMware Tools、python、binwalk、qemu、Firmadyne等。

Attify OS

如果你觉得麻烦不想自己搭建虚拟机安装工具的话,也可以使用Attify OS。这是配置和设置IoT渗透测试所需的各种工具的一个iot虚拟机。

图片[1]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

下载地址:

GitHub:https://github.com/adi0x90/attifyos

百度网盘地址:https://pan.baidu.com/s/1B9sjnSjA-yhC8p-aM4mD8w

提取码:39m0

虚拟机账号密码

用户名:oit 密码 :attify123
数据库:postgre 密码: firmadyne

二、binwalk

(1)安装:

安装git工具

:~$ sudo apt –get update

:~$ sudo apt-get install build-essential autoconf git

下载binwalk

:~$ sudo git clone https://github.com/devttys0/binwalk.git

安装sasquatch SquashFS提取工具

:~$ sudo apt-get install zliblg-dev liblzma-dev liblzo2-dev

:~$ sudo git clone https://github.com/devttys0/sasquatch

安装binwalk

:~$ sudo python setup.py install

(2)binwalk的使用:

获取帮助信息:

binwalk –h

图片[2]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

对固件进行扫描:

binwalk xxx.bin

图片[3]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

提取固件文件:

binwalk –Me xxx.bin

图片[4]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

三、Firmadyne

当分析路由器固件的时候,手边没有实际设备,只能使用软件模拟,当前对于固件模拟比较好的解决方案就是 Firmadyne。

由于安装较为复杂,本人安装没有成功。故使用Attify OS里面的Firmadyne工具。

Firmadyne使用

打开虚拟机,Firmadyne工具目录在/home/tools/ firmadyne

图片[5]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

以DIR-645举例,将固件二进制文件移动或复制到firmadyne工具目录下运行./fat.py

下图中红框表示添加固件文件地址和固件型号

图片[6]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

接下来会让你多次输入数据库口令。口令请看Attify OS 介绍部分。

程序完成初始化及镜像创建并分配IP地址后,Firmadyne将会反馈给我们一个IP地址,并提示用户已经完成了固件仿真(镜像创建时间可能较长)。我们可以通过该地址进行Web界面访问,以及通过SSH与固件进行交互等操作。

图片[7]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科图片[8]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

四、根文件识别与提取

固件文件通常以bin、zip、LZMA、arj等文件压缩类型封装,其中,最常见的为bin和zip格式,bin文件是二进制镜像形式,需要使用binwalk提取squashsf文件系统。

二进制镜像提取文件系统界面如下:

图片[9]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

对于bin文件来说,不一定就是二进制镜像文件,也有可能是数据文件,首先要对文件进行识别,可以借助linux下的file命令,如下所示:

图片[10]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

通过对bin文件的提取,获得了后缀为squashfs的固件文件,从而获得固件的根文件。以D-Link DIR300路由器为例:

图片[11]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

还有些经过加密的压缩包,无法直接解压缩,这是厂商对固件做了保护,防止逆向分析。以D-Link DWR-932B路由器为例:

固件地址:

https://media.dlink.eu/ftp/products/dwr/dwr-932/driver_software/DWR-932_fw_revB_2_02_eu_en_20150709.zip

此固件以zip格式进行压缩打包,并经过加密,无法直接解压。

图片[12]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

使用binwalk进行解包,生成_DWR-932_B1_FW v.02.02EU.zip.extracted文件夹。文件夹下存在40.zip包。

图片[13]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

继续对40.zip解压,发现需要密码。

图片[14]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

使用frackzip工具可以破解该zip密码,密码为:beUT9Z。解压后获得文件夹与文件。

图片[15]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

Yaffs2文件就是它的根文件系统,使用binwalk进行解压时发现无法提取出根文件系统。

图片[16]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

提取后的文件夹中并非根文件系统,百度资料后,了解到932B型号的路由器使用了yaffs的原生态压缩算法,可以使用工具unyaffs提取。

图片[17]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

使用unyaffs进行解压。将镜像文件提取到yaffs2-root目录,获得完整的根文件系统。

图片[18]-固件分析技术(2)-工具使用 – 作者:hahali-安全小百科

来源:freebuf.com 2021-05-14 22:48:22 by: hahali

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论