
Verschlüsselte SonicOSX-Firmware-Images entschlüsseln
Entwickelt von Team X bei Bishop Fox
Ein Tool zum Entschlüsseln der SonicOSX NSv-Firewall-Firmware (Version 7.1.1+). Führen Sie es zuerst gegen ein OVA-Image aus, um Schlüssel zu extrahieren. Danach kann es auch SIG-Images entschlüsseln. Firmware kann mit einer gültigen Lizenz von der SonicWall-Supportseite bezogen werden.
Die Schlüssel scheinen für jedes Modell spezifisch zu sein, daher funktioniert dieses Tool nur für VMware-NSv-Images. Das Erlangen von Schlüsseln für andere Modelle könnte theoretisch ermöglichen, andere Images zu entschlüsseln.
Dieses Tool wurde veröffentlicht, um gutwillige Sicherheitsforschung zu SonicOSX zu unterstützen. Eine ausführliche Erklärung finden Sie im Bishop-Fox-Blog.
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 ./)
HINWEIS: Führen Sie das Tool beim Entschlüsseln von OVA-Images mit
sudoaus. Erweiterte Rechte sind erforderlich, um Volumes zu mounten.
Docker:
docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/<IMAGE_PATH>
HINWEIS: Führen Sie das Tool beim Entschlüsseln von OVA-Images mit
--privilegedaus. Erweiterte Rechte sind erforderlich, um Volumes zu mounten.
Ein OVA-Image entschlüsseln:
$ 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
Ein SIG-Image entschlüsseln, nachdem die Schlüssel aus einem OVA-Image extrahiert wurden:
$ 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
Der Versuch, ein SIG-Image zu entschlüsseln, bevor die Schlüssel extrahiert wurden, schlägt fehl:
$ 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
Der Versuch, ein Image für ein anderes Modell zu entschlüsseln, schlägt fehl:
$ 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
Dieses Projekt ist unter der GNU General Public License v3.0 lizenziert.