3 分析硬件
在本章中,我们将探讨如何从安全角度了解物联网设备的硬件,以便进行内部和外部分析。
进行硬件分析可以帮助您完成以下任务:
- 从真实物联网设备中提取固件。
- 获取设备的root shell以获得不受限制的访问权限。
- 执行实时调试,绕过安全保护和限制。
- 为设备编写新固件。
- 扩展设备功能。
在某些情况下,打开设备可能会导致设备无法正常工作(由于物理防篡改)或无法重新安装。这就是为什么在执行物联网设备渗透测试时,您总是应该要求客户提供两套(或更多)设备,以便对其中一套设备执行物理安全评估,对另一套设备执行其余的漏洞测试。
3.1 外部检查
设备物理分析的第一步是进行外部检查。这包括通过观察设备的各个方面对设备进行基本的全面检查,其中包括以下内容:
有哪些按钮,有多少按钮。
- 外部接口选项: 以太网端口、SD 卡插槽等。
- 设备的显示屏类型。
- 设备的电源和电压要求。
- 设备是否有任何认证及其含义。
- 背面是否有 FCC ID 标签。
- 设备使用何种螺丝。
- 该设备是否与您在市场上看到的具有类似功能的其他设备相似(也许它只是一个重新命名的型号)。
- 等等。
通过初步分析,您可以更好地了解整个设备及其功能,同时还能帮助您了解设备的一些内部细节。
在打开设备之前,您可以通过初步分析做几件事。初步分析通常包括对设备进行目视检查,并查看有关设备的其他信息来源。这一步还包括使用设备并确定其正常功能。一旦确定了设备的正常功能,就可以提出颠覆设备功能的目标方法。
3.1.1 使用真实设备
让我们使用一个示例设备,按照刚才的描述开始研究它。在本例中,设备是导航系统,型号是 Navman N40i。
只需在谷歌上快速搜索一下,就能了解到该设备的各种规格,例如以下这些:
- 运行 Windows CE 5.0。
- 230 万像素摄像头。
- 五小时续航。
- 400MHz Samsung 2400。
- 64MB SDRAM。
- 256 MB ROM。
- SiRF STAR II GPS 芯片。
如果我们以后决定查找 Navman 系统中的漏洞,这些有用的信息将很有帮助。这个快速示例说明了拿到设备后应如何操作,以及应执行的初步分析。
3.1.2 查找输入和输出端口
下一步是了解设备的输入和输出(I/O)是如何工作的,以及 I/O 端口和其他连接的数量。下图我们可以看到Navman系统包括一个3.5英寸的屏幕,正面有五个按钮,左侧有一个LED指示灯。
下图中我们可以看到电源按钮和几个点击按钮。
音量控制按钮和耳机插孔。
两个螺丝和一个基座连接器。
SD 卡插槽、GPS 天线端口和 USB 端口。
要进行良好的检查,您需要分析外部和内部组件,同时创建攻击面地图。
3.1.3 内部检查
要打开设备,我们需要拧开螺丝。物联网设备可能有不同类型的螺丝,一般的螺丝刀往往无法拧开设备中一些不太常见的螺丝。在对设备进行物联网开发时,请确保随身携带一把好的螺丝刀。此外,在打开设备时要特别小心,以免损坏设备及其内部电路。我见过的最常见的错误之一就是试图强行打开设备,这往往会导致设备物理损坏,在某些情况下会使其无法使用。
如果你是第一次看到设备的内部结构,你可能会被眼前的景象所吸引。设备内部通常涉及许多组件,包括印刷电路板 (PCB printed circuit board)、连接器、天线、外设等。试着小心打开目标设备,并逐一取出所有连接的电缆、色带或其他外设。
顶部有摄像头模块、电池、耳机、GPS 连接器和 GPS 天线,LCD 通过带状电缆连接。电路板背面如下:
现在我们来看看不同的组件并分析其功能,首先是处理器。下图显示了导航系统中使用的处理器。
处理器是任何物联网设备的重要组件之一。本例中使用的处理器是三星ARM处理器S3C2440AL。如果我们上网查找S3C2440AL,就能找到该处理器的数据表,从而获得更多相关信息。该处理器的数据表可在 http://www.keil.com/dd/docs/datashts/samsung/s3c2440_um.pdf 上找到。它包含 I/O 端口、中断、实时时钟 (RTC)、串行外设接口 (SPI Serial Peripheral Interface) 等信息。
接下来,我们可以查看器件中的其他组件,如SDRAM和ROM:
所用元件的编号为K4M561633G,通过上网查询,我们可以看到这是富昌电子公司生产的4M × 16Bit × 4 Banks移动SDRAM,我们还可以在其中看到512 MB ROM。
接下来,我们可以继续查找不同的组件,确定它们的零件编号,然后上网查询,了解更多相关信息。识别元器件的另一种方法是查看其标识和在线参考目录,如 https://www.westfloridacomponents.com/manufacturer-logos.html 。
要查找数据表,可以直接在网上搜索元件编号,也可以访问数据表目录网站,如 http://www.alldatasheet.com/ 或 http://www.datasheets360.com/。
还有最后一点我们还没有讨论,这可能是最重要的方面,即调试端口和接口。通常,设备会暴露出通信接口,可利用这些接口进一步访问设备,执行读取调试日志等操作,甚至在目标设备上获取未经验证的 root shell。在我们的设备中,设备暴露了一些接口,我们可以利用这些接口通过UART和JTAG与设备通信。
只要查看PCB并识别 UART 的 Tx 和 Rx 以及 JTAG 的 TRST、TMS、TDO、TDI 和 TCK,就可以找到这些接口。如果你不熟悉这些术语,也不用担心,因为在本书的其他章节中,我们将把大部分硬件黑客时间花在这里。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
3.1.4 分析数据表
设备的官方网站上可能没有很多技术信息。这时FCC ID数据库就能帮上忙了。
美国联邦通信委员会(FCC Communication Commission)是监管各种发射无线电通信的设备(也就是大多数物联网设备)的总机构。之所以要监管,是因为无线电频谱有限,而且有不同频率的设备在运行。
在没有监管机构的情况下,任何人都可以决定制造和选择自己的设备,使用可能已被其他设备使用的频率,从而导致干扰其他设备的通信。
因此,任何使用无线电通信的设备都必须经过一系列审批程序,其中包括多项测试,然后由FCC对设备进行审批。对于特定制造商的特定型号,设备的FCC ID将是相同的。不过,需要注意的是,FCC ID并不是传输许可,而只是美国政府监管机构的批准。
您可以通过印在设备上的FCC ID或在网上查找不同来源的信息。另外,不要被那些仅仅符合FCC法规的设备所迷惑,因为这些设备可能不需要FCC ID,因为它们并不进行无线通信,只是无意中产生少量无线电噪音。
测试过程的信息可在FCC网站上查阅,除非制造商特别要求对文件保密。您可以提供设备的FCC ID,在FCC官方网站 https://apps.fcc.gov/oetcf/eas/reports/GenericSearch.cfm 或通过第三方非官方网站(如 fccid.io 或 fcc.io)搜索设备信息。
我们将使用 dimax 3116W 备,这是一款可通过手机和网络应用程序控制的IP摄像机。
在https://fccid.io网站上查询该设备的 FCC ID(NDD9530401309)
在网站上,我们可以看到有关该设备的各种信息,如频率范围、进入实验室设置、内部图片、外部图片、用户手册、授权书(PoA)等。
在分析FCC ID信息时,最值得关注的是设备的内部图片。您可以在https://fccid.io/document.php?id=2129020上找到这些图片。
值得注意的一个有趣事实是,在这种情况下,图片还显示该IP摄像机具有 UART 接口,如图片中显示的四个焊盘所示。在接下来的章节中,我们将利用这一点在设备上获取root shell。
另一个值得了解的有趣事实是,有时制造商会不要求对设备的敏感信息(如设备原理图)进行保密。获取设备的原理图非常有用,因为它可以告诉我们用于制造设备的不同电子元件是什么,帮助我们更深入地了解设备。
3.1.5 元件封装
在嵌入式设备的制造和开发过程中,有多种封装方式可供选择。根据组件使用的封装类型,我们需要相应的硬件适配器和其他组件与之进行交互分析。这里列出了最常用的封装类型,如图 3-15 所示。
-
DIL
- 单列直插式封装
- 双列直插式封装
- TO-220
-
SMD
- CERPACK
- BGA
- SOT-23
- QFP
- SOIC
- SOP
3.2 无线电芯组
您可以在设备中寻找的其他重要信息之一是各种无线电芯片组。这些芯片组可以让你了解特定设备使用的通信方法,即使没有在任何地方记录或提及。
下图是Wink Hub的内部图片,除了JTAG等硬件通信接口外,它还使用了Wi-Fi、ZigBee和ZWave等多种通信协议。
文章来源:https://www.toymoban.com/news/detail-711135.html
3.3 小结
随着本书的深入,我们将详细探讨其他硬件组件。不过,如果想深入了解各种硬件组件,我强烈建议您阅读 Nicholas Collins 所著的《Hardware Hacking》(硬件黑客)一书,该书可在http://www.nicolascollins.com/texts/originalhackingmanual.pdf网站上查阅。文章来源地址https://www.toymoban.com/news/detail-711135.html
到了这里,关于物联网黑客手册3分析硬件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!