-
-
[翻译]逆向分析Trendnet TS-402
-
发表于:
2017-3-13 14:14
11291
-
Trendnet TS-S402是一个网络存储机柜,销售给个人用于个人数据存储。像每个物联网(IoT)设备一样,它由制造商编程或配置的软件上运行,然后发送到终端用户,即固件。此特定设备的固件版本2.00.10及以下版本具有严重的漏洞,允许远程root访问。因此,这个目标为逆向工程提供了一个很好的练习,同时不幸地提供了一个在物联网中太常见的漏洞的例子:后门通用设计。在这篇文章中,我们将介绍Binwalk并提供必要的背景信息,在消费级设备上使用TS-S402作为实际示例的大量固件,并且提供视频信息。
Trendnet TS-S402网络存储机柜
0x01 Trendnet TS-S402
在逆向任何设备之前,重要的是要真正了解其功能,组件和任何其他信息,可能有助于分析其固件。产品的网页突出显示以下功能:
· 从Internet(FTP)和本地网络访问您的数据
· 微处理器:Marvell 88F5182
· IDE控制器:ITE IT8211F
· 实时操作系统:嵌入式Linux(内核版本2.4.25)
· 文件协议:Microsoft网络(CIFS / SMB)Internet(HTTP 1.1)FTP,FTPS(SSL FTP)
为什么这些事实很重要?并不是所有的都将是有用的,但有些可能会提供一个全面的想法,一旦你打算开始分析固件文件。在许多情况下,特别是对于消费级设备,可逆的固件是相当简单的,常见的开源工具将为您提供重要的支持。但如果你转向工业固件,意识到设备是很重要的,因为你会面临未听到的操作系统,库和未知文件格式。在这种情况下,我们可以期望看到基于Linux的操作系统(OS)托管HTTP和FTP服务器,以及Samba兼容性。制造商甚至慷慨地提供底层的微处理器,这对于对二进制中的漏洞进行更深入的分析是有帮助的。
0x02 逆向固件
我们正在查找的漏洞仅存在于固件版本2.00.10及以下版本中,您可以从公司的存储库下载。解压缩存档,您将获得以下文件:
· TS-S402_FW_2_00_10.bin
· readme.txt
· release_TS-S402.txt
· REMOTE_PACKAGE_2_20.bin
阅读发行说明和README文件总是一个好放大。这样做可以节省你的时间和头痛的问题试图搞清楚的东西。如果你正在进行bug搜索,发行说明可以列出这个版本中包含的更改和修补程序,提供潜在的提示修补旧版本的漏洞。
两个“.bin”文件包含设备的程序和操作系统。在这种情况下,基于文件名,TS-S402_FW_2_00_10.bin是主要的固件文件,因此,这篇文章的重点。 第一步总是检查是否可以使用file命令确定文件类型。 如果我们幸运,它是一个已知的文件类型和一些存在的应用程序来提取相关的文件/信息。
但是我们不是那么幸运。file命令返回“data”,这意味着它找到的文件是没有任何特定结构或格式的二进制数据。所以我们需要使用一个更强大的工具:binwalk。Binwalk是非常有用的逆向工程工具包,可以从未知的二进制文件分析和提取文件。但是请注意,它也可能返回相当多的误报。识别他们的唯一方法是经验和反复试验。如果还没有完成,使用apt使用sudo apt-get install binwalk安装binwalk并运行以下命令:
上面的命令要求binwalk检出TS-S402_FW_2_00_10.bin文件,并尝试找到有趣的文件或结构里面。我们使用“-x lzma”参数来排除关于LZMA压缩数据的任何发现:在这种情况下,这些是不正确的。 您将获得以下结果:
换句话说,似乎有一个32字节的报头后跟一个GZip压缩文件。此时,我们要将此gzip文件从二进制文件中进行进一步调查。您可以使用dd命令这样做,但binwalk提供了-e选项为您提取文件
文件将被输出到文件名为_TS-S402_FW_2_00_10.bin.extracted的目录中,您将在其中找到一个名为20的文件,该文件是较大固件中文件的偏移量。再次使用文件命令,我们现在得到一个更有趣的结果:
这一次,文件命令清楚地识别了TAR存档,这意味着我们可以使用以下命令直接解压文件:
这个存档包含更多的文件:uImage和文件系统:
· uImage
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!