-
-
[分享]loT设备如何进行固件分析系列一
-
发表于:
2021-12-9 14:57
9500
-
物联网(IoT)设备一般指通过某种方式连接到网络的嵌入式设备。在过去的几年中,loT设备数量不断增长,loT设备几乎已经融入各行各业,如工业、能源业等领域,物联网设备已经成为了攻击者的首要目标,如果物联网设备存在安全隐患,将会给企业、国家和个人带来安全隐患。
现阶段有多种方法可以检测物联网设备中的漏洞。本文将探索固件分析,这种方法的优点是不需要被测设备的实体,而且固件是loT设备的核心,这也是从固件分析开始的原因。
固件入门
固件是—种写入硬件设备的软件,固件中包含底层代码,这些代码能够帮助软件实现对硬件的操作。运行固件的设备一般称为嵌入式系统。智能手机(iPhone、小米)、智能汽车(特斯拉、蔚来)、无人机(大疆)都属于运行固件的嵌入式设备。
固件分析流程
固件分析流程通常包括固件提取、固件分析、文件系统提取、文件系统加载、文件系统分析五项。
固件分析推荐工具
·Kali Linux:笔者入门安全的第一工具,非常6的一款系统。下载链接https∶//e3cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3E0S2L8r3W2Q4x3X3g2G2M7X3N6Q4x3V1k6V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4b7e0k6Q4z5o6u0Q4c8e0k6Q4z5f1g2Q4z5f1y4Q4c8e0S2Q4z5e0W2Q4z5f1q4Q4c8e0k6Q4z5p5u0Q4z5f1k6Q4c8e0k6Q4z5f1y4Q4b7V1q4Q4c8e0S2Q4b7V1k6Q4z5e0m8Q4c8e0S2Q4b7e0q4Q4z5p5y4Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0N6Q4z5f1u0Q4b7U0c8Q4c8e0k6Q4z5p5g2Q4b7e0g2Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0S2Q4b7V1c8Q4b7V1c8w2j5h3I4A6i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1^5i4K6V1&6i4K6W2m8i4@1f1$3i4K6S2n7i4K6W2r3i4@1f1&6i4K6V1#2i4K6W2o6i4@1f1#2i4K6R3K6i4K6S2r3i4@1f1K6i4K6R3H3i4K6R3J5
·Binwalk:用于提取固件映像,Kali Linux中已经默认安装Binwalk。
·fcrackzip:密码破解工具。
·Ettercap:该软件能够拦截网段上的流量,捕获密码并针对多种常见协议进行主动窃听。Kali Linux中已经默认安装Ettercap。
·Wireshark:免费开源的网络数据包分析软件,Kali Linux中已经默认安装Wireshark。
·SSLstrip:web登录密码嗅探神器,Kali Linux中已经默认安装SSLstrip。
·Flashrom:Flashrom是一种通用闪存编程实用程序,Kali Linux中未默认安装Flashrom需自行安装该工具。
·Qemu:免费的可执行硬件虚拟化的开源托管虚拟机,用于固件仿真。
固件提取
笔者一般获取固件的方法主要包括:
-从loT设备厂商网站下载,这是获取固件最简单的方法。
-中间人攻击,获取loT固件下载地址或固件包。有时候loT设备厂商不支持网站下载固件,例如华为厂商,此时就需要选择该方法或第三种方法。
-直接从loT设备存储芯片提取固件。如果以上两种方法均无法获取固件,还可以尝试通讨UART、JTAG等接口直接提取转储固件。该方法需要拆解loT设备找到其中的存储固件的闪存芯片,然后通过UART接口或烧录夹、编程器等工具提取转储固件。
固件分析
提取到固件后,接下来就需要对固件进行深入分析,发现固件中的安全隐患。
固件通常由bootloader、内核、文件系统以及其他资源组成,其中文件系统是固件分析过程中最重要的一部分,文件系统中一般包括口令、存在漏洞的服务、私钥等。
本文以某路由器为例,演示如何提取固件中的文件系统进行分析。
1)使用binwalk提取固件压缩包时,发现该压缩包被加密,这是路由器厂商为了保护固件而进行的密码保护,防止攻击者进行逆向。

2)我们可以使用fcrackzip工具进行密码破解,得出密码后再次进行解压。

3)解压固件压缩包完成,查看文件

4)发现解压后的有一部分yaffs2格式的文件系统,需要使用unyaffs工具来提取。

5)在yaffs2文件夹中查看提取到完整的文件系统

6)我们可以查看不同目录下的文件进行安全审计,寻找可能存在漏洞的文件。最常见是遍历所有.conf配置文件,运行find查询来查找所有配置文件:

7)在该路由器固件中,inadyn-mt.conf配置文件保存了访问网站 57eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2F1L8#2)9J5k6r3W2H3i4K6u0W2j5$3!0E0 的用户名和密码等敏感信息,如下图所示:

以上分析方式属于固件手工分析,我们还可以采用自动化的方式来挖掘漏洞,常见的自动化工具有Craig Smith开发的工具Firmwalker,该工具通过静态分析来识别固件中可能包含的常见敏感信息。本文由于篇幅限制,不再阐述该工具的使用。下个系列会为大家讲解该工具,敬请期待。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!