Jump to content

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固件解密的兩種通用方法,分享了在解密過程中需要記錄的細節。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...