
Déchiffrer les images de firmware SonicOSX chiffrées
Développé par Team X chez Bishop Fox
Un outil pour déchiffrer le firmware du pare-feu SonicOSX NSv (version 7.1.1+). Exécutez-le d'abord sur une image OVA pour extraire les clés, puis il peut également déchiffrer les images SIG. Le firmware peut être obtenu sur le site de support de SonicWall avec une licence valide.
Les clés semblent être spécifiques à chaque modèle, donc cet outil ne fonctionnera que pour les images VMware NSv. Obtenir les clés pour d'autres modèles pourrait, en théorie, vous permettre de déchiffrer d'autres images.
Cet outil a été rendu public pour soutenir une recherche en sécurité de bonne foi sur SonicOSX. Pour une explication détaillée, consultez le blog de 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 ./)
Remarque : exécutez avec
sudolors du déchiffrement des images OVA. Des privilèges élevés sont nécessaires pour monter les volumes.
Docker :
docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/<IMAGE_PATH>
Remarque : exécutez avec
--privilegedlors du déchiffrement des images OVA. Des privilèges élevés sont nécessaires pour monter les volumes.
Déchiffrer une image 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
Déchiffrer une image SIG après avoir extrait les clés d'une image OVA :
$ 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
Tenter de déchiffrer une image SIG avant d'avoir extrait les clés ne fonctionnera pas :
$ 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
Tenter de déchiffrer une image pour un modèle différent ne fonctionnera pas :
$ 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
Ce projet est sous licence GNU General Public License v3.0.