资讯动态 news

客服


如何分析和解密已加密的路由器固件

发布于:2020-12-16 21:42 编辑:admin  

咱们直奔主题!现在,检查你的路由器品牌及类型信息,然后去对应厂商的官方网站下载你路由器对应的固件。下载完结之后,把固件文件丢到binwalk里,这样咱们就能够在QEMU中模仿路由固件了。此刻,你将会看到如下图所示的画面:

一般来说,每一个非binwalk友爱的固件都要用不同的办法来进行剖析,因而咱们无法给咱们供给一个针对一切类型加密固件的通用手把手教程。不过,咱们将在这篇文章中给咱们演示几种常见的固件剖析场景,并供给一个处理这类加密固件的一般性没有。除此之外,沃恩还将供给一个解密D-Link DIR-882固件的示例。

解密固件最简略的办法便是在固件中寻觅解密程序。那咱们该怎么做呢?假如路由器能够解密新固件并进行更新,那么解密程序就必定坐落就固件镜像中的某个当地。假如你遇到的是加密固件,那你就能够拜访厂商官网并寻觅这个固件的旧版别,然后下载一切的旧版别固件并开端剖析。

下面给出的是三种常见的固件发布场景。

设备固件在进场时未加密,也未包括任何解密程序。解密程序与较新版别中未加密版别的固件一同供给,以便将来进行加密固件更新。尔后发布的固件为加密固件。

此刻,咱们能够从固件v1.1处获取解密程序,然后用它来解密最新版别的固件v1.2。

设备固件在原始版别中加密,厂商决议更改加密计划并发布一个未加密的转化版别v1.2,种田包括了新的解密程序。

跟场景1相似,咱们能够从v1.2映像获取解密程序,并将其应用到最新的加密固件中。阅览固件版别的发布公告能够协助咱们辨认未加密的转化版别。发布公告通常会指示用户在升级到最新版别之前先升级到中心版别,而中心版别很或许便是未加密的转化版别固件。

设备固件在原始版别中加密。可是,厂商决议更改加密计划,并发布包括新版解密程序的未加密转化版别。

此刻,获取解密程序会比较困难。一种办法是购买设备并直接从设备硬件中提取未加密的固件,另一种办法便是对固件进行更深层次的剖析,期望能够“破解加密”。

纷乱运用十六进制编辑器来检查固件内容,咱们能够敏捷且直观地了解咱们正在处理的目标。运用二进制或十六进制形式检查固件源码,你看到了0xFF或0 00字节的数据域吗?文件代码有特定的形式吗?它们是由随机十六进制字节组成的同质块吗?假如有的话,很有或许固件源码满意被带有静态密钥的简略异或域替代了。你能够看看,是否有一个十六进制字节比其他字节呈现得愈加频频呢?

熵能够协助咱们更好地剖析固件,固件中有一部分具有高熵,标明这些当地纷乱了加密处理。一段低熵字节代表的是低随机性、结构化和可猜测性。 当与其他剖析相结合时 ,它能够协助咱们确认固件是纷乱紧缩得、加密得仍是混杂处理得。在这个剖析阶段, binwalk的很多选项 或许会供给协助。

接下来,咱们将刚学到的常识应用到加密的D-Link DIR-882固件镜像中:

咱们能够从厂商的FTP服务器找到这款路由器的一切旧版别固件。运用binwalk对最前期版别的固件v1.00B07进行测验,它将正确检测到uImage头以及LZMA紧缩数据:

这标明,咱们现在处于场景1中。阅读了固件镜像的一切可用版别之后,咱们发现固件的v1.04B02版别便是转化版别,它包括在v1.10B02固件包中。除此之外,咱们还能够核算镜像的熵来快速确认哪个镜像已进行了加密处理。

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

提取成功之后,咱们就能够开端剖析固件的更新过程了,并确认解密固件的办法。走运的是,快速阅读文件体系后,咱们在/bin目录中找到了一个形似有戏的代码文件“imgdecrypt”。

咱们遇到了一个小问题,即主机设备和代码文件之间的处理器架构存在差异。走运的是,咱们能够运用QEMU履行跨架构chroot。手足,咱们需要将qemu-mipsel-static代码拷贝到固件root文件体系中的/usr/bin/目录,然后将加密固件拷贝到未加密固件的文件体系中。最终,运用chroot进入到固件root,然后获取到可用的shell。

咱们能够看到,binwalk成功检测到了解密固件中的不同区域。

以上便是处理加密固件的一般办法。值得一提的是,厂商有时会对多个路由器运用相同的加密计划,并且imgdecrypt这个文件还能够用来解密DIR-878和DIR-867的固件。因而,咱们在找到一个解密程序或解密计划时,能够用它来试试同一产品线中具有相同处理器体系结构的其他路由器产品。

* 参阅来历: thezdi ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM