0x01 实验目的
0x02 概述
固件升级的一种方案 随着物联网安全安全越来越重视,作为万物互联的核心之一—路由器的安全也越 来越重视,反映在固件方面,就是其针对附件做的一些安全措施,可以使得一些 安全研究员手足无措,不过由于一些历史原因,很可能我们可以通过分析固件的 之前的一些版本,找到研究固件当前版本的一些线索。 下面这张图
是很多路由器厂家会采取的一种更新升级固件并使固件更加“安全“的方案。 这个方案是这样的:最开始发布的固件是没有加密的,也没有附带任何解密的文 件,随着固件更新,解密文件会和较新版本 v1.1 中的未加密版本一起发布,以 便将来进行固件加密,v1.1 版本作为过渡使用。而到了 v1.2 时,固件则是以加 密形式发布的,不过仍附带解密文件。
0x03 实验环境
服务器:attify os
辅助工具:firmwalk.sh(以及3个固件都在附件里)
0x04 实验操作
在本次实验中,我们首先将研究路由器固件升级常见的一种方案,并找到该方案 的漏洞所在,通过实际分析相关的几个固件,最后对新版加密固件的文件系统的 提取。
1 |
用户名:iot 密码:attify |
这次的实验,我们以 D-Link DIR-882 固件为例。我们在分析固件时会发现它被 加密过了,使用 binwalk 根本无法探测,比如这次的固件 v1.20b06
这时候我们可以考虑通过分析旧版本的固件尝试是否有什么线索来解密现在这 个新版本的固件 在 这 里 我 们 可 以 找 到 所 有 旧 版 本 的 固 件 ( ftp://ftp2.dlink.com/PRODUCTS/DIR-882/REVA/ ) , 我 们 找 个 最 早 的 版 本 v1.00b07,下载来后解压尝试binwalk读取
可以看到能识别出信息,或者说是没有加密过的。 那再看看稍微新一点的版本
v1.10b02
可以看到有两个 bin 文件,说明 1.04b02 的过渡版本,它包含在 v1.10b02 固件包 汇中,名字也已经告诉我们了,1.04b02 是未加密的 分别使用 binwalk
而加密后的固件却什么也看不到
我们把 1.04b02 提取出来
进入生成的文件夹
注意到有两个文件,使用 binwalk 提取 A0 进入新文件夹 再次提取8AB758最近进入文件夹
注意到这里有一个 Imgdecrypt 的文件,看名字,应该是用来解密镜像的 file 查看
发现是个可执行文件,尝试执行,缺少相应的 so 文件,这很正常,因为这个文 件是写在 mips 架构上运行的,而我们目前是 x86 为了运行它,我们使用 qemy-mipsel-static
首先将其复制到固件根文件系统的/usr/bin 目录下 在将前面发现是加密的固件 1.20b06 复制过来
1 |
sudo chroot . ./qemu-mipsel-static ./bin/sh |
接着还是同样的办法模拟 mips 架构拿到 shell 此时再执行 imgdecrypt 可以看到 打印出了使用方法 按照其提示,可以看到对原来加密的固件进行了解密 操作如上图所示 这时候再次使用 binwalk 查看被解密后的固件,可以看到已经可以识别了
这给我们的启示就是,在碰到加密的固件时,可以考率查找位于同一产品线、具 有相同处理器体系结构的路由器固件,找那些版本旧一些的,或者过渡版本,或 许就能为我们提供线索。 我们使用 binwalk 如之前未加密的固件一般一步步提取
0x05 敏感信息分析
可以看到文件系统都被提取出来了 这里介绍一个常用的小工具 firmwalk.sh 它将搜索固件文件系统,以获取与敏感信息相关的东西,如:
1 |
etc/shadow and etc/passwd |
我们可以使用它来看看这个文件系统中有哪些敏感信息 命令为./firmwalker.sh 文件系统的路径
password关键字文件
ssl相关文件
私钥相关文件
telnel相关文件
FROM :ol4three.com | Author:ol4three
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论