【技术原创】Zyxel固件解密
2023-9-28 11:50:0 Author: www.4hou.com(查看原文) 阅读量:19 收藏

导语:本文介绍了Zyxel固件解密的两种通用方法,分享了在解密过程中需要记录的细节。

0x00 前言

本文将要介绍Zyxel固件解密的两种通用方法,记录测试心得。

0x01 简介

本文将要介绍以下内容:

基础知识

通过已知明文攻击解密zip文件

通过跟踪进程参数获得zip加密口令

0x02 基础知识

1.固件下载

固件下载地址:https://portal.myzyxel.com/my/firmwares

需要注册账户,可下载指定版本的固件

2.常见固件类型

ATP

USG FLEX

VPN

ZyWALL/USG

这里以VPN50 5.36(ABHL.0)为例,下载后保存为VPN50_V5.36(ABHL.0).zip

接下来介绍固件解密的两种方法

0x03 通过已知明文攻击解密zip文件

参考资料:https://attackerkb.com/topics/N3i8dxpFKS/cve-2023-28771/rapid7-analysis

VPN50_V5.36(ABHL.0).zip中的文件内容如下:

536ABHL0C0.bin

536ABHL0C0.conf

536ABHL0C0.db

536ABHL0C0.pdf

536ABHL0C0.ri

VPN50_V5.36(ABHL.0)C0-foss.pdf

其中,536ABHL0C0.bin和536ABHL0C0.db被加密,需要解密

解密条件:

1、已知完整的明文文件和zip文件

2、明文文件需要被相同的压缩算法压缩

3、加密算法为ZipCrypto Store

对于VPN50_V5.36(ABHL.0).zip,536ABHL0C0.conf同536ABHL0C0.bin中的db/etc/zyxel/ftp/conf/system-default.conf文件一致,同536ABHL0C0.db中的etc/zyxel/ftp/conf/system-default.conf文件一致,满足条件1

对于条件2,需要确定536ABHL0C0.bin和536ABHL0C0.db的压缩算法,参考资料也未涉及这部分内容,这里详细介绍分析流程

查看536ABHL0C0.bin中db/etc/zyxel/ftp/conf/system-default.conf的压缩信息:zipdetails -v 536ABHL0C0.bin

返回结果:

微信截图_20230609174813.png

1.png得出压缩算法如下:

微信截图_20230609174958.png

所以在压缩536ABHL0C0.conf时需要加入参数-9设定为compress better,即Maximum Compression

完整解密命令如下:

(1)安装pkcrack

2.png

(2)解密536ABHL0C0.bin

3.png

(3)解密536ABHL0C0.db

4.png

需要注意536ABHL0C0.bin和536ABHL0C0.db的system-default.conf绝对路径不同

0x04 通过跟踪进程参数获得zip加密口令

参考资料:https://security.humanativaspa.it/zyxel-firmware-extraction-and-password-analysis/

解密原理:从.ri文件能够提取出zld_fsextract,zld_fsextract能够根据文件内容计算出解压口令进而解密.bin文件

经测试,使用zld_fsextract也可以解开其他固件的.bin文件

1.提取zld_fsextract

5.png

查看文件类型:file zld_fsextract

返回结果:zld_fsextract: ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1 (SYSV), statically linked, stripped

提示zld_fsextract为MIPS结构,需要搭建MIPS环境运行

2.搭建MIPS环境

6.png

3.监控进程启动

7.png

注:

需要加入参数-f跟踪由fork调用所产生的子进程,加入参数-s 199指定trace结果的每一行输出字符串的长度,如果未设置参数-s,无法记录完整的解密口令

返回结果实例:

8.png

从中获得解密口令GfmirkjRUJla2evWFLtqJoI5a6vfOmDgR/OIl7lFSWrXBm3S7yJTmdaMlV19HGr

注:

该解密口令不适用于536ABHL0C0.db

0x05 小结

本文介绍了Zyxel固件解密的两种通用方法,分享了在解密过程中需要记录的细节。

本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址

  • 分享至

取消 嘶吼

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟


文章来源: https://www.4hou.com/posts/rqYW
如有侵权请联系:admin#unsafe.sh