Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-56426 — CVE-2024-56426 Exploit de Bootrom Exynos9830 - SM-G985F | Kitploit
Herramientas/GitHubGitHub/xcracker000/cve-2024-56426
Seguridad AndroidSeguridad de Sistemas EmbebidosExplotaciónIngeniería InversaHacking de HardwareSeguridad MóvilSeguridad de HardwareDesarrollo de PayloadsAnálisis de FirmwareExplotación de Binarios
GitHub
4127hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
xcracker000/cve-2024-56426

CVE-2024-56426

CVE-2024-56426 Exploit de Bootrom Exynos9830 - SM-G985F

Ver Repositorio

Exploit del BootROM SM-G985F / Exynos9830

[!CAUTION] El conjunto de claves actual y los archivos generados son capaces de realizar fusing. Una vez que un dispositivo ha sido fusionado, el cambio de eFuse es irreversible y el dispositivo debe seguir usando imágenes de arranque y material de claves que coincidan con la clave fusionada. El uso de estos archivos o flujos es bajo su propio riesgo debido al comportamiento de fusing; todas las consecuencias siguen siendo responsabilidad del usuario que los ejecuta. Verifique el archivo eFuse, las claves privadas, el FWBL1 firmado, las imágenes LK / sboot.bin y el dispositivo de destino antes de ejecutar cualquier flujo de fusing.

Contenidos

  • Estructura del repositorio
  • Requisitos
  • Preparación de la imagen
  • Compilación del payload
  • Generación de la imagen SBoot firmada
  • Modos de exploit
  • Cadena de arranque del Exynos 9830
  • Diseño de imagen del Exynos 9830
  • Direcciones de carga
  • IDs de fuente de arranque
  • Payload de volcado /mem
  • Atribución upstream
  • Créditos

Estructura del repositorio

RutaPropósito
bootLoaderFiles/Binarios del bootloader, partes divididas del bootloader, imágenes originales, imágenes descifradas y artefactos de volcado.
bootromNotes/Notas de la ROM de arranque, diagramas de flujo y offsets de contexto USB.
exploit/Herramientas Python, ejecutor del exploit, scripts de división/fusión, ayudante de compilación de payload y datos del SoC.
exploit/extra/images/Imágenes del bootloader funcionales consumidas por los flujos del exploit.
exploit/extra/payloads/Binarios de payload compilados copiados desde external/payloads/.
external/Código fuente del payload, Makefile de compilación, notas descompiladas, material de claves compartido y herramientas auxiliares.
external/keys/exynos9830_crecker/Paquete de claves personalizadas compartido Exynos9830 / Exynos990 utilizado por el flujo de cargador firmado.
exynos990reverseEng/Archivos del proyecto de ingeniería inversa del Exynos 990.

Requisitos

Cadena de herramientas para Linux

sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

Cadena de herramientas para macOS

brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu

Dependencias de Python

python3 -m pip install -r requirements.txt

El archivo requirements.txt incluye coloredlogs, cryptography, hexdump, libusb, pyusb y pycryptodome.

Controlador USB de Windows

En Windows, el dispositivo USB BootROM 04e8:1234 debe usar un controlador compatible con WinUSB/libusb antes de que PyUSB pueda abrirlo. Ver exploit/windows/README.md.

El repositorio incluye un paquete de controladores WinUSB en exploit/windows/Exynos_USB_Device.inf, con su catálogo correspondiente y archivo de importación de certificados en el mismo directorio.

Preparación de la imagen

División de sboot.bin

python3 exploit/split.py bootLoaderFiles/originalSboot_K/sboot.bin -o exploit/extra/images

El script de división escribe las partes de la imagen y un archivo split_manifest.json en el directorio de salida.

Parche de clave personalizada para LK

La imagen LK debe usar los IDs de comando de la clave 2 de arranque seguro de ROM para el flujo de clave personalizada:

Comando clave 1ValorComando clave 2Valor
CMD_W_ROM_SEC_BOOT_KEY10x001CMD_W_ROM_SEC_BOOT_KEY20x016
CMD_W_USE_ROM_SEC_BOOT_KEY10x002CMD_W_USE_ROM_SEC_BOOT_KEY20x017
CMD_C_ROM_SEC_BOOT_KEY10x100CMD_C_ROM_SEC_BOOT_KEY20x114
CMD_R_USE_ROM_SEC_BOOT_KEY10x101CMD_R_USE_ROM_SEC_BOOT_KEY20x115

Al aplicar el TSV de parches de LK dentro del proyecto Ghidra, el helper se invocó mediante Ghidra headless de esta manera:

GHIDRA=/path/to/ghidra_12.0.4_PUBLIC
REPO=$(pwd)
"$GHIDRA/support/analyzeHeadless" "$REPO/exynos990reverseEng" exynos990 \
  -process lk.bin \
  -noanalysis \
  -scriptPath "$REPO/external/ghidra" \
  -postScript ApplyLkPatches.java "$REPO/external/ghidra/lk_985_selected_patches.tsv"

Incrusta la clave eFuse de 32 bytes en lk.bin en el offset 0x205008, reemplazando la clave de fábrica:

dd if=external/keys/exynos9830_crecker/crecker.efuse of=exploit/extra/images/lk.bin bs=1 seek=$((0x205008)) count=32 conv=notrunc
xxd -g1 -s $((0x205008)) -l 32 exploit/extra/images/lk.bin

Fusión de las partes divididas

python3 exploit/merge.py exploit/extra/images Exynos9830

El script de fusión escribe sboot.bin en el directorio de trabajo actual.

Compilación del payload

Compila los proyectos de payload en external/payloads/ y copia los binarios resultantes en exploit/extra/payloads/:

./exploit/build_payloads.sh
PayloadRuta de salidaPropósito
mem.binexploit/extra/payloads/mem.binPayload de volcado de memoria del Boot ROM.
loader.binexploit/extra/payloads/loader.binPayload de la ruta UFS usado por --ufs.
Exynos990_boot_custom_key.binexploit/extra/payloads/Exynos990_boot_custom_key.binPayload de cargador firmado con clave personalizada usado por --signed.

El cargador UFS y el payload de clave personalizada incrustan un archivo eFuse de 32 bytes en tiempo de compilación. De forma predeterminada, el Makefile lee external/keys/exynos9830_crecker/crecker.efuse; sobreescríbelo con CUSTOM_KEY_EFUSE=/path/to/crecker.efuse cuando sea necesario.

Generación de la imagen SBoot firmada

El paso de preflight ejecutado por exploit/exploit.py vuelve a firmar el conjunto de imágenes SBoot en exploit/extra/images/ in situ antes de cada ejecución firmada. No se conserva una salida firmada separada. El paso de firma utiliza el paquete de claves compartidas, intencionadamente rastreado, en external/keys/exynos9830_crecker/.

Comando equivalente desde la raíz del repositorio para el conjunto de imágenes completo:

python3 external/tools/sign_sboot_images.py \
  --images-dir exploit/extra/images \
  --keys-dir external/keys/exynos9830_crecker

Esto firma:

Descargar herramienta