由 Bishop Fox 的 Team X 开发
一款用于解密 SonicOSX NSv 防火墙固件(7.1.1+ 版本)的工具。首先对 OVA 镜像运行它以提取密钥,之后它还可以解密 SIG 镜像。固件可通过有效的许可证从 SonicWall 支持站点 获取。
密钥似乎是每种型号特有的,因此该工具仅适用于 VMware NSv 镜像。理论上,获得其他型号的密钥可以让你解密其他镜像。
该工具已公开,以支持对 SonicOSX 的善意安全研究。详细说明请访问 Bishop Fox 博客。
Debian Linux:
sudo apt update && sudo apt install -y $(awk '{print $1}' requirements/apt.txt)
python3 -m pip install -r requirements/pip.txt
Docker:
docker build -t sonicrack .
Debian Linux:
$ ./sonicrack.py -h
usage: sonicrack.py [-h] [-k KEYS_DIR] [-o OUTPUT_DIR] IMAGE_PATH
A tool to decrypt SonicOSX NSv firmware. Run it against an OVA image first to extract keys, then it can also decrypt SIG images.
positional arguments:
IMAGE_PATH Path to encrypted firmware image (supported file extensions: .ova, .sig)
options:
-h, --help show this help message and exit
-k KEYS_DIR, --keys KEYS_DIR
Directory path where keys are stored (defaults to ./keys)
-o OUTPUT_DIR, --output OUTPUT_DIR
Directory path where decrypted firmware is saved (defaults to ./)
注意:解密 OVA 镜像时请使用
sudo运行。挂载卷需要提升权限。
Docker:
docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/<IMAGE_PATH>
注意:解密 OVA 镜像时请使用
--privileged运行。挂载卷需要提升权限。
解密 OVA 镜像:
$ docker run -it --privileged --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/nsv-vmware.7.1.1-7047-R5557.ova
[*] Extracting files from OVA archive
[*] Extracting keys from bootloader
[*] Decrypting firmware image
[+] Successfully decrypted soniccorex-image-release-nsv-vmware-20240205204943.rootfs.ext4
从 OVA 镜像提取密钥后,解密 SIG 镜像:
$ docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/sw_nsv_vmware_eng.7.1.2-7019-R6288.bin.sig
[*] Decrypting firmware image
[+] Successfully decrypted soniccorex-image-release-nsv-vmware-20240709184216.rootfs.ext4
在提取密钥之前尝试解密 SIG 镜像将无法成功:
$ docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/sw_nsv_vmware_eng.7.1.2-7019-R6288.bin.sig
[-] Keys must be extracted from an OVA image before a SIG image can be decrypted
[-] If already extracted, use --keys to indicate the directory where they are saved
尝试解密其他型号的镜像将无法成功:
$ docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/sw_nsa_6700_eng.7.1.2-7019-R6288.bin.sig
[*] Decrypting firmware image
[-] Failed to decrypt FW key
本项目采用 GNU General Public License v3.0 许可。