网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

wifi营销建设团结互助,让我们共同进步!

当前位置:主页 > 服务项目 > 网络工程 > wifi营销建设 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

已加密路由器固件的分析和解密过程详解

文章来源:重庆网络安全 发布时间:2020-02-22 14:39:10 围观次数:
分享到:

摘要:检查路由器的品牌和型号信息,然后访问相应制造商的官方网站以下载路由器的相应固件。下载完成后,将固件文件放入binwalk,以便我们可以在QEMU中模拟路由固件。

 检查路由器的品牌和型号信息,然后访问相应制造商的官方网站以下载路由器的相应固件。下载完成后,将固件文件放入binwalk,以便我们可以在QEMU中模拟路由固件。


 通常,需要以不同方式分析每个非binwalk友好的固件,因此我们无法为您提供所有类型的加密固件的通用动手教程。但是,在本文中,我们将向您展示几种常见的固件分析方案,并提供处理这种类型的加密固件的一般指南。此外将提供解密D-Link DIR-882固件的示例。


  加密固件的三种方案


  解密固件的最简单方法是在固件中寻找解密程序。那么我们该怎么办? 如果路由器可以解密并更新新固件,则解密程序必须在固件映像中的某个位置。如果遇到加密的固件,则可以访问制造商的官方网站并查找该固件的旧版本,然后下载所有旧固件并开始分析。


  下面给出了三种常见的固件发行方案。


  场景1


  设备固件未加密,不包含任何解密过程。解密程序随附了较新版本(v1.1)的未加密版本的固件,用于将来的加密固件更新。此后发布的固件是加密的固件。

blob.png

 此时,我们可以从固件v1.1中获得解密程序,然后使用它来解密固件v1.2的最新版本。

 

  场景2


  设备固件已在原始版本中加密。制造商决定更改加密方案,并发布了未加密的转换版本v1.2,其中包括新的解密程序。

blob.png

 与方案1相似,我们可以从v1.2映像中获取解密程序,并将其应用于最新的加密固件。阅读固件版本的发行公告可以帮助我们识别未加密的转换版本。发行公告通常会指导用户在升级到最新版本之前先升级到中间版本,该最新版本可能是固件的未加密转换版本。


  场景3


  设备固件已在原始版本中加密。但是,供应商决定更改加密方案并发布包含新版本解密程序的未加密转换版本。

blob.png

 在这种情况下,可能难以获得解密程序。 一种方法是购买设备并直接从设备硬件中提取未加密的固件。另一种方法是对固件进行更深入的分析,以期“破解加密”。


  场景4


  通过使用十六进制编辑器查看固件的内容,我们可以快速,直观地了解正在处理的内容。查看二进制或十六进制模式的固件源代码,您是否看到0xFF或0x00字节的数据字段? 文件代码是否具有特定的模式?它们是由随机十六进制字节组成的同质块吗? 如果有,则固件源代码很可能已被带有静态密钥的简单XOR字段替换。您可以看到,是否有一个十六进制字节比其他字节出现得更频繁?


  方案5:压缩,加密还是混淆?


  熵可以帮助我们更好地分析固件。固件的某些部分具有具有高熵,表明这些位置已加密。低熵字节表示低随机性,结构和可预测性。与其他分析结合使用时,它可以帮助我们确定固件是否已压缩,加密或混淆。在此分析阶段,许多binwalk选项可能会有所帮助。


  理论与实践


  接下来,我们将刚刚学到的知识应用于加密的D-Link DIR-882固件映像:

blob.png

 我们可以从制造商的FTP服务器上找到该路由器固件的所有较旧版本。使用binwalk测试固件v1.00B07的最早版本,它将正确检测uImage标头和LZMA压缩数据:

blob.png

 这表明我们现在处于场景1中。浏览了固件映像的所有可用版本之后,我们发现固件的v1.04B02版本是转换后的版本,它包含在v1.10B02固件包中。此外,我们可以计算图像的熵,以快速确定已加密的图像。

blob.png

接下来,使用binwalk从v1.04B02固件中提取文件系统:

blob.png

 提取成功后,我们可以开始分析固件更新过程,并确定解密固件的方法。幸运的是,在快速浏览文件系统后,我们在/ bin目录中找到了一个看似有趣的代码文件“ imgdecrypt”。

blob.png

 我们在主机设备和代码文件之间的处理器体系结构差异上遇到了一个小问题。幸运的是,我们可以使用QEMU执行跨体系结构的chroot。首先,我们需要将qemu-mipsel-static代码复制到固件根文件系统中的/ usr / bin /目录中,然后将加密的固件复制到未加密固件的文件系统中。最后,使用chroot输入固件根目录,然后获取可用的shell。

blob.png

 我们可以看到binwalk成功地检测到了解密固件中的不同区域。


  总结一下


  以上是处理加密固件的一般方法。值得一提的是,制造商有时会对多个路由器使用相同的加密方案,并且imgdecrypt文件也可以用于解密DIR-878和DIR-867固件。因此,当我们找到解密程序或解密方案时,可以使用它来尝试在同一产品系列中具有相同处理器体系结构的其他路由器产品。


本文由 重庆网络安全 整理发布,转载请保留出处,内容部分来自于互联网,如有侵权请联系我们删除。

相关热词搜索:加密路由器固件 加密路由器固件分析 解密路由器固件 重庆网络安全

上一篇:第一页
下一篇:最后一页

热门资讯

鼠标向下滚动