
pwnage24mtk — Actualizado!
Exploit de certificado para dispositivos MTK. Hay una falla lógica en el proceso de verificación de certificados de MTK. Similar a CVE-2023-20696.
pwnage24mtk
Exploit de certificado para dispositivos MTK.Hay una falla lógica en el proceso de verificación de certificados de MTK.Similar a CVE-2023-20696. Parcheado. CVE-2023-20696 CVE-2025-20730
Hay algunos problemas sobre la detección de arquitectura.Necesitan ser corregidos cuando tenga tiempo.O cualquiera puede hacer un pull request. Esta es una versión codificada al estilo 'vibe',y la reescribiré más tarde.Pero ahora es utilizable.
Descargo de responsabilidad
Este proyecto es solo para fines de investigación. Asegúrate de obtener autorización antes de usarlo. No está permitido para uso ilegal. No está permitido usar este exploit para proporcionar servicios pagados.
Para dispositivos mtk,el preloader verifica bl2_ext/lk/atf y luego salta a él.
Estas imágenes están firmadas con certificados ASN.1.
Pero hay una falla lógica en el proceso de análisis de ASN.1.
Para dispositivos V5/V6 antiguos, el contenido del certificado se identifica mediante bypass_mode 1.
En este modo, cualquier objeto será procesado.
Por lo tanto, podemos crear un certificado falso con un objeto 0x3(bit string).
El certificado falso no está modificado. Por lo tanto, puede pasar la validación.
El certificado real está debajo del certificado falso.Y podemos poner el hash de la imagen y el hash de la cabecera de la imagen al inicio del certificado real.
Para dispositivos V6 nuevos, el contenido del certificado se identifica mediante bypass_mode 0
En este modo, cualquier objeto será omitido excepto 0x30.
Por lo tanto, podemos poner el hash de la imagen y el hash de la cabecera de la imagen al inicio del certificado.
Luego mantener las otras cosas sin modificar.
Entonces podemos modificar el contenido de la imagen.
Por lo tanto, obtenemos control sobre EL3.
Puedes parchear BL2_EXT para eliminar la verificación de lk, atf o gz.
Y luego parchear LK para eliminar la verificación de lk_main_dtb(de lo contrario se bloqueará)
Y necesitas parchear LK para eliminar todos los bloqueos del cargador de arranque, incluido set_lock_state, para evitar bloquearse nuevamente o algunos bloqueos.
Uso:
python parse-part-img.py [the original image file] --split -o out
Luego puedes ver imágenes separadas (como lk,bl2_ext,lk_main_dtb,aee)
después de parchear Para dispositivos v6 nuevos python sign_mtk_cert.py [single image file] -w Para dispositivos v6 antiguos/dispositivos v5 python sign_mtk_cert.py [single image file] -w --legacy
Luego inserta la nueva imagen firmada de nuevo
python build-part-img.py replace [original image file] --name [the single image name you want to insert back] -- file [the new signed single image]
Ejemplo:
