
Decifrare le immagini firmware SonicOSX crittografate
Sviluppato dal Team X di Bishop Fox
Uno strumento per decrittare il firmware del firewall SonicOSX NSv (versione 7.1.1+). Eseguilo prima su un'immagine OVA per estrarre le chiavi, poi potrà decrittare anche le immagini SIG. Il firmware può essere ottenuto dal sito di supporto di SonicWall con una licenza valida.
Le chiavi sembrano essere specifiche per ciascun modello, quindi questo strumento funzionerà solo con le immagini VMware NSv. Ottenere le chiavi per altri modelli potrebbe, in teoria, consentire di decrittare altre immagini.
Questo strumento è stato reso pubblico per supportare la ricerca sulla sicurezza in buona fede riguardante SonicOSX. Per una spiegazione dettagliata, visita il blog di 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 ./)
NOTA: esegui con
sudoquando decritti le immagini OVA. Sono necessari privilegi elevati per montare i volumi.
Docker:
docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/<IMAGE_PATH>
NOTA: esegui con
--privilegedquando decritti le immagini OVA. Sono necessari privilegi elevati per montare i volumi.
Decrittare un'immagine 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
Decrittare un'immagine SIG dopo aver estratto le chiavi da un'immagine 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
Provare a decrittare un'immagine SIG prima di aver estratto le chiavi non funzionerà:
$ 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
Provare a decrittare un'immagine per un modello diverso non funzionerà:
$ 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
Questo progetto è distribuito sotto licenza GNU General Public License v3.0.