一个针对2016年至2019年间发布的高通设备的BootROM漏洞利用工具。
在MSM8998(Nazgul)SoC中,添加了命令0x13(SAHARA_RESET_STATE_MACHINE_ID)。该命令调用了boot_sahara_entry,该函数本应重新初始化Sahara。漏洞在于每次调用它都会将堆栈指针减少0x60,并且没有堆栈保护。通过足够多的调用,我们耗尽可用堆栈空间(0x3000),破坏堆栈之外的内存,并使堆栈缓冲区与某些全局函数指针表重叠。secboot_verify_cert_signature将以BIGINT格式将模数和签名读取到堆栈缓冲区中。由于crypto_ftbl->ModExp被缓冲区覆盖,secmath_BIGINT_modexp将从模数跳转到我们的shellcode。
更多信息可在 HEXACON2023 - Bug Tales : Life and Death in the Sahara 找到。
[!CAUTION] 即使SoC存在漏洞,也不意味着你可以利用它! 如果你的SoC在此列出,切勿在其设备上存储任何秘密。 得益于这个CVE,Cellebrite、MSAB和Oxygen Forensics能够解密此类SoC设备上的用户数据。

usage: katana.py [-h] -s SOC -e EXPLOIT [-f FIREHOSE]
A PoC for the CVE-2021-30327 vulnerability in Qualcomm Sahara
options:
-h, --help show this help message and exit
-s, --soc SOC SoC model
-e, --exploit EXPLOIT
Exploit PBL (CVE-2021-30327) with a payload
-f, --firehose FIREHOSE
DevPrg image in case the payload reinitializes Sahara
这是Katana利用的CVE向高通报告了CVE-2021-30327协助嗅探此漏洞利用给了我一个利用此确切漏洞的工具脚本基础