
암호화된 SonicOSX 펌웨어 이미지 복호화
Bishop Fox의 Team X가 개발했습니다.
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
OVA 이미지에서 키를 추출한 후 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
[*] 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에 따라 라이선스가 부여됩니다.