
暗号化されたSonicOSXファームウェアイメージを復号化します。
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 の下でライセンスされています。