一、引言
文章目的
本文深入剖析D-Link DWR-932B路由器的固件安全,揭示可能导致攻击者未经授权访问和控制设备的严重漏洞,包括硬编码凭据、弱根密码以及管理与更新机制中的关键缺陷,如未认证的远程命令执行和不安全的固件更新协议。研究采用静态与动态分析相结合的方法,并通过逆向工程定位问题。本文可能存在一些不足,请大家斧正!此分析提醒人们在不断扩展的IoT生态系统中,强化安全实践的重要性,适合安全爱好者、网络管理员及关注家庭网络安全的人士。
文章简介大纲:
一、引言
二、基础知识:固件分析入门
三、基础知识:网络安全协议与 IoT 设备
四、固件获取与初始访问:固件文件解包(核心1)
五、敏感配置文件分析:寻找信息泄露
六、弱密码破解:存在Root弱密码爆破问题
七、使用 Firmwalker:扫描进行信息搜集(核心2)
八、逆向分析存在风险的二进制程序(核心3)
九、参考资料
IoT 设备的普及与固件安全的重要性
随着物联网(IoT)设备的快速增长,智能家居设备、路由器和摄像头等设备已成为我们日常生活的一部分。研究表明,这些设备的安全性直接关系到用户隐私和网络安全,因为固件是设备的核心软件,包含了操作系统的配置和功能。如果固件存在漏洞,攻击者可能远程控制设备,窃取数据或发起网络攻击。因此,固件安全分析成为保护 IoT 设备的关键。
D-Link DWR-932B 路由器的简介及其在 IoT 中的应用
D-Link DWR-932B 是一款支持 4G LTE 的便携式路由器,广泛用于家庭网络、小型办公室和移动场景。它通过提供无线网络连接,支持多个设备同时联网,是 IoT 生态系统中的重要节点。它的固件管理了网络配置、Wi-Fi 连接和远程管理功能,因此成为安全研究的重要目标。
二、基础知识:固件分析入门
什么是固件及其作用
固件(Firmware)是存储在设备硬件中的软件,控制嵌入式设备的基本功能,如路由器的 Wi-Fi 连接和网络设置。研究表明,固件安全直接影响 IoT 设备的安全性,如果存在漏洞,攻击者可能远程控制设备或窃取数据。
常见的固件格式及其解包工具
常见的固件格式包括 ZIP(用于分发)和 YAFFS2(用于闪存文件系统)。解包工具如:
- binwalk:识别和提取文件系统,示例命令为 binwalk -e firmware.bin (Binwalk GitHub)。
- unyaffs:解包 YAFFS2 文件系统,示例为 unyaffs image.yaffs2 (Unyaffs GitHub)。
- 其他工具如 unsquashfs 用于 SquashFS 文件系统。
固件分析的基本流程
固件分析的流程包括:
- 获取固件:从官方网站下载,如 D-Link 路由器的固件。
- 解包固件:使用上述工具提取文件系统。
- 静态分析:检查敏感文件如 .conf 和 /etc/shadow,逆向分析危险二进制程序。
常用工具介绍
常用工具包括:
- IDA Pro:逆向工程二进制文件 (IDA Pro 官网)。
- firmwalker:扫描固件中的敏感文件和漏洞:craigz28/firmwalker: Script for searching the extracted firmware file system for goodies!
三、基础知识:网络安全协议与 IoT 设备
网络安全协议是物联网(IoT)设备通信的核心,它们确保设备之间能够安全、高效地交换数据。以下是对几种常见网络协议(UPnP、FOTA、SSH、SSL/TLS)的简介,这些协议在 IoT 设备中广泛使用,了解它们的作用有助于提升设备的安全性。
UPnP(通用即插即用)
- 简介:UPnP 是一种网络协议,主要用于设备自动发现和配置网络服务。它在家庭网络中尤为常见,例如路由器、智能电视和其他 IoT 设备通过 UPnP 实现无缝连接和通信。UPnP 的设计目标是简化设备的联网过程,无需用户手动配置。
- 作用:在 IoT 设备中,UPnP 允许设备快速加入网络并与其他设备交互,例如通过路由器自动开放端口以支持远程访问或媒体流传输。
FOTA(固件空中升级)
- 简介:FOTA 是一种通过网络远程更新设备固件的技术,是 IoT 设备维护和安全更新的关键机制。它允许制造商在设备部署后推送补丁或功能改进,而无需物理接触设备。
- 作用:FOTA 确保 IoT 设备能够及时修复安全漏洞或提升性能,例如智能家居设备通过 FOTA 获取最新的安全更新以抵御新兴威胁。
SSH(安全外壳协议)
- 简介:SSH 是一种加密协议,提供安全的远程登录和文件传输功能。它最初设计用于服务器管理,但在 IoT 设备中也被广泛用于远程管理和调试,例如访问智能设备的命令行界面。
- 作用:在 IoT 场景中,SSH 为开发者或管理员提供了一种安全的途径来监控和维护设备,尤其是在设备分布于不同地理位置时。
SSL/TLS(安全套接层/传输层安全)
- 简介:SSL/TLS 是用于加密网络通信的协议,广泛应用于保护数据传输的安全性。在 IoT 设备中,SSL/TLS 常用于 HTTPS 请求、API 通信或设备与云端之间的数据交换,确保数据在传输过程中不被窃听或篡改。
- 作用:SSL/TLS 为 IoT 设备提供端到端的通信安全,例如智能摄像头通过 TLS 加密上传视频流,防止未经授权的访问。
四、固件获取与初始访问:固件文件解包
固件下载地址:https://ftp.dlink.de/dwr/dwr-932/archive/driver_software/DWR-932_fw_revb_202eu_ALL_multi_20150119.zip
固件解压缩:PLC_1earn/1earn/Security/IOT/固件安全/实验/Dlink_DWR-932B路由器固件分析.md at master · dbshow/PLC_1earn
破解固件压缩包密码
解压和binwalk发现存在问题,无法将目标固件提取,所以大概率存在密码:
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ unzip DWR-932_B1_02.02EU.zip
Archive: DWR-932_B1_02.02EU.zip
warning [DWR-932_B1_02.02EU.zip]: 64 extra bytes at beginning or within zipfile
(attempting to process anyway)
[DWR-932_B1_02.02EU.zip] 02.02EU password:
password incorrect--reenter:
password incorrect--reenter:
skipping: 02.02EU incorrect password
[DWR-932_B1_02.02EU.zip] 2K-cksum.txt password:
skipping: 2K-cksum.txt incorrect password
skipping: 2K-mdm-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm-recovery-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-recovery-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm9625-usr-image.usrfs.yaffs2 incorrect password
skipping: appsboot.mbn incorrect password
skipping: mba.mbn incorrect password
skipping: qdsp6sw.mbn incorrect password
skipping: rpm.mbn incorrect password
skipping: sbl1.mbn incorrect password
skipping: tz.mbn incorrect password
skipping: wdt.mbn incorrect password
爆破失败格式不正确:
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ fcrackzip -u -v -b DWR-932_B1_02.02EU.zip
found id beba4000, 'DWR-932_B1_02.02EU.zip' is not a zipfile ver 2.xx, skipping
no usable files found
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ file DWR-932_B1_02.02EU.zip
DWR-932_B1_02.02EU.zip: data
修复压缩包:
zip -FF DWR-932_B1_02.02EU.zip --out fixed.zip
继续爆破:
fcrackzip -u -v -b fixed.zip
解压密码是:beUT9Z
开始解析压缩包内的文件
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ sudo apt install unyaffs
2K-mdm-image-boot-mdm9625.img # 引导镜像(Bootloader相关)
2K-mdm-image-mdm9625.yaffs2 # YAFFS2格式文件系统(可能是根文件系统)
2K-mdm9625-usr-image.usrfs.yaffs2 # 用户空间文件系统(关键配置和程序)
2K-mdm-recovery-image-mdm9625.yaffs2 # 恢复模式镜像(可能包含修复工具)
appsboot.mbn # 应用处理器引导加载程序(类似ABOOT)
sbl1.mbn # 次级引导加载程序(高通平台关键启动组件)
rpm.mbn # 资源与电源管理分区
tz.mbn # TrustZone安全分区
DWR-932_B1_02.02EU