
암호화된 Fortienet FortiOS 펌웨어 이미지 복호화
암호화된 Fortinet FortiOS 펌웨어 이미지 복호화
Bishop Fox Team X 개발

이 도구는 Linux 환경에서 실행되도록 제작되었습니다.
시스템에 python3 및 gzip 패키지를 설치하세요.
Fortinet 지원 사이트에서 암호화된 펌웨어 이미지를 다운로드한 다음, 해당 이미지를 대상으로 이 도구를 실행하세요.
❯ ./forticrack.py -h
Usage: python3 forticrack.py <FILENAME>
FortiCrack은 기지 평문(known-plaintext) 공격을 사용하여 파일 암호화 키를 도출한 다음 이미지 데이터를 복호화합니다. 자세한 내용은 저희 블로그에서 확인할 수 있습니다: Fortinet 펌웨어 암호화 깨기
❯ ./forticrack.py FGT_100D-v6-build9451-FORTINET.out
___ __ __ ___ __ __ __
|__ / \ |__) | | / ` |__) /\ / ` |__/
| \__/ | \ | | \__, | \ /~~\ \__, | \
[+] Decrypting FGT_100D-v6-build9451-FORTINET.out
[+] Loaded image data
[+] Found key: oAbBIcDde7FfgGHhiIjJ7KlLmsnN3OPP
[+] Validated: FG100D-6.04-FW-build1966-23031
[+] Decrypted: FGT_100D-v6-build9451-FORTINET.decrypted
이 글을 작성하는 시점을 기준으로 암호화된 모든 Fortinet 펌웨어 이미지는 동일한 취약한 암호화 방식을 사용하지만, 모든 이미지가 동일한 알려진 평문을 가지는 것은 아닙니다. 이 공격은 대부분의 이미지에 대해 작동하지만, 특정 제품의 경우 키를 성공적으로 도출하려면 익스플로잇을 수정해야 할 수도 있습니다.
이 프로젝트는 GPL v3에 따라 라이선스가 부여됩니다.