
Lasst uns unsere Bootchain kapern - CVE-2021-30327
Ein BootROM-Exploit für Qualcomm-Geräte, die zwischen 2016 und 2019 veröffentlicht wurden.
Mit dem MSM8998 (Nazgul)-SoC wurde der Befehl 0x13 (SAHARA_RESET_STATE_MACHINE_ID) hinzugefügt. Der Befehl
ruft boot_sahara_entry auf, das Sahara neu initialisieren soll. Der Fehler besteht darin, dass jeder Aufruf
den Stack-Pointer um 0x60 verringert und es keinen Stack-Guard gibt. Mit genügend Aufrufen erschöpfen wir den verfügbaren
Stack-Speicher (0x3000), korrumpieren den Speicher jenseits des Stacks und lassen Stack-Puffer mit einigen der globalen Funktionszeigertabellen
überlappen. secboot_verify_cert_signature liest den Modulus und die Signatur im BIGINT-Format in Stack-Puffer.
Da crypto_ftbl->ModExp von den Puffern überschrieben wurde, springt secmath_BIGINT_modexp von dem Modulus in unseren Shellcode.
Mehr Details finden sich unter HEXACON2023 - Bug Tales : Life and Death in the Sahara
[!CAUTION] Nur weil der SoC anfällig ist, heißt das nicht, dass Sie ihn ausnutzen können! Wenn Ihr SoC hier aufgeführt ist, speichern Sie KEINE Geheimnisse auf einem Gerät damit. Cellebrite, MSAB und Oxygen Forensics können die Benutzerdaten auf Geräten mit solchen SoCs entschlüsseln, dank dieser CVE.

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
Dies ist die CVE, die Katana ausnutztHat CVE-2021-30327 an Qualcomm gemeldetHat beim Aufspüren dieses Exploits geholfenHat mir ein Tool gegeben, das genau diese Schwachstelle ausnutzteSkriptbasis