
Descriptografar imagens de firmware SonicOSX criptografadas
Desenvolvido pela Equipe X na Bishop Fox
Uma ferramenta para descriptografar o firmware do firewall SonicOSX NSv (versão 7.1.1+). Execute-a primeiro em uma imagem OVA para extrair as chaves; em seguida, ela também pode descriptografar imagens SIG. O firmware pode ser obtido no site de suporte da SonicWall com uma licença válida.
As chaves parecem ser específicas para cada modelo, portanto esta ferramenta só funcionará para imagens VMware NSv. Obter chaves para outros modelos poderia, em teoria, permitir descriptografar outras imagens.
Esta ferramenta foi tornada pública para apoiar pesquisas de segurança de boa-fé sobre o SonicOSX. Para uma explicação detalhada, visite o blog da 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: Execute com
sudoao descriptografar imagens OVA. São necessários privilégios elevados para montar volumes.
Docker:
docker run -it --rm -v .:/data sonicrack ./sonicrack.py --keys /data/keys --output /data /data/<IMAGE_PATH>
NOTA: Execute com
--privilegedao descriptografar imagens OVA. São necessários privilégios elevados para montar volumes.
Descriptografar uma imagem 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
Descriptografar uma imagem SIG após extrair as chaves de uma imagem 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
Tentar descriptografar uma imagem SIG antes de extrair as chaves não funcionará:
$ 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
Tentar descriptografar uma imagem de um modelo diferente não funcionará:
$ 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
Este projeto é licenciado sob a GNU General Public License v3.0.