
Расшифровка зашифрованных образов прошивки SonicOSX
Разработано командой X в Bishop Fox
Инструмент для расшифровки прошивки межсетевого экрана 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
Расшифровка образа SIG после извлечения ключей из образа 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
Попытка расшифровать образ 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.