Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
BootStomp — BootStomp: un buscador de vulnerabilidades de bootloader | Kitploit
Herramientas/GitHubGitHub/ucsb-seclab/bootstomp
Seguridad AndroidAnálisis de VulnerabilidadesExplotaciónFuzzingAnálisis de BinariosAnálisis de Firmware
GitHubucsb-seclab/bootstomp

BootStomp

BootStomp: un buscador de vulnerabilidades de bootloader

Ver Repositorio
41666hace 7 añosRevisado por Kitploit

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
Sitio web

BootStomp

License

BootStomp es un buscador de errores en cargadores de arranque. Analiza dos clases diferentes de fallos: vulnerabilidades de corrupción de memoria y de almacenamiento de estado. Para más información, consulta el artículo de BootStomp en https://seclab.cs.ucsb.edu/academic/publishing/#bootstomp-security-bootloaders-mobile-devices-2017.

Para ejecutar los análisis de BootStomp, lee las siguientes instrucciones. Ten en cuenta que BootStomp funciona con cargadores de arranque compilados para arquitecturas ARM (tanto de 32 como de 64 bits) y que los resultados pueden variar ligeramente dependiendo de las versiones de angr y Z3. Esto se debe al tiempo que angr tarda en analizar los bloques básicos y a los resultados de concretización de expresiones de Z3.


Estructura del directorio

  • analysis: Contiene los resultados del análisis (por ejemplo, IDBs de IDA) de imágenes de arranque de diferentes dispositivos.
  • tools: Contiene herramientas que se pueden usar para trabajar con varias imágenes.

Requisitos previos

  • angr (http://angr.io/)

$ pip install angr

  • IDA PRO (https://www.hex-rays.com/products/ida/)
  • IDA Decompiler (https://www.hex-rays.com/products/decompiler/)

Cómo ejecutarlo

Ejecutar BootStomp usando Docker

La forma más sencilla de usar BootStomp es ejecutarlo en un contenedor Docker. La carpeta docker contiene un Dockerfile apropiado. Estos son los comandos para usarlo.

root@kitploit:~
cd docker
# build the docker image
docker build -t bootstomp .
# run the docker image (if you need, use proper options to have persistent changes or shared files)
docker run -it bootstomp

# now you are inside a docker container
cd BootStomp
# run BootStomp's taint analysis on one of the examples
# this will take about 30 minutes
python taint_analysis/bootloadertaint.py config/config.huawei
# the last line of the output will be something like:
# INFO    | 2017-10-14 01:54:10,617 | _CoreTaint | Results in /tmp/BootloaderTaint_fastboot.img_.out

# you can then "pretty print" the results using:
python taint_analysis/result_pretty_print.py /tmp/BootloaderTaint_fastboot.img_.out

La salida debería ser algo como esto:

root@kitploit:~
...
17)
===================== Start Info path =====================
Dereference address at: 0x5319cL
Reason: at location 0x5319cL a tainted variable is dereferenced and used as address.
...
Tainted Path 
----------------
0x52f3cL -> 0x52f78L -> 0x52f8cL -> 0x52fb8L -> 0x52fc8L -> 0x52fecL -> 0x53000L -> 0x53014L -> 0x5301cL -> 0x53030L -> 0x53044L -> 0x53050L -> 0x5305cL -> 0x53068L
===================== End Info path =====================
# Total sinks related alerts: 5
# Total loop related alerts: 8
# Total dereference related alerts: 4

Ejecutar BootStomp manualmente

Detección automática de fuentes y sumideros de contaminación

  1. Carga el binario del cargador de arranque en IDA (nosotros usamos la v6.95). Dependiendo de la arquitectura de la CPU del teléfono del que se haya extraído, se necesita IDA de 32 o 64 bits.
  2. Desde la barra de menú, ejecuta Archivo => Fichero script => find_taint.py
  3. La salida aparecerá en el archivo taint_source_sink.txt en el mismo directorio que el cargador de arranque.

Archivo de configuración

Crea un archivo de configuración JSON para el binario del cargador de arranque (consulta los ejemplos en config/), donde:

  • bootloader: ruta del archivo del cargador de arranque
  • info_path: ruta del archivo de información de fuentes/sumideros (es decir, taint_source_sink.txt)
  • arch: número de bits de la arquitectura (las opciones disponibles son 32 y 64)
  • enable_thumb: considerar el modo Thumb (cuando sea necesario) durante el análisis
  • start_with_thumb: inicia el análisis con el modo Thumb activado
  • exit_on_dec_error: detiene el análisis si no se pueden decodificar algunas instrucciones
  • unlock_addr: dirección de la función de desbloqueo. Este campo solo es necesario para encontrar vulnerabilidades de almacenamiento de estado inseguro.

Encontrar vulnerabilidades de corrupción de memoria

Ejecuta

python bootloadertaint.py ruta-del-archivo-de-configuración

Los resultados se almacenarán en /tmp/BootloaderTaint_[cargador-de-arranque].out, donde [cargador-de-arranque] es el nombre del cargador analizado. Ten en cuenta que las rutas que involucran bucles pueden aparecer más de una vez.

Encontrar vulnerabilidades de almacenamiento de estado inseguro

Ejecuta

python unlock_checker.py ruta-del-archivo-de-configuración

Los resultados se almacenarán en /tmp/UnlockChecker_[cargador-de-arranque].out, donde [cargador-de-arranque] es el nombre del cargador analizado. Ten en cuenta que las rutas que involucran bucles pueden aparecer más de una vez.

Comprobar los resultados

Para comprobar los resultados de BootStomp, usa el script result_pretty_print.py, de la siguiente manera:

python result_pretty_print.py archivo-de-resultados

Exploit para CVE-2017-2729

Otras referencias

  • Código fuente del kernel y de lk para MediaTek MT65x2
  • Detalles de MediaTek: Particiones y Preloader
  • Ingeniería inversa de Aboot de Android
  • Cargador de arranque Android basado en (L)ittle (K)ernel
  • Descripción general del cargador de arranque Little Kernel por Qualcomm
  • android: arm: bootloader: cómo (L)ittle (K)ernel carga boot.img
  • BootUnlocker para dispositivos Nexus
  • Verificación de arranque
  • Liberando mi tableta (hackeo de Android, SW y HW)
  • Cómo bloquear el modo download de Samsung usando una función no documentada de aboot
  • Ataques a BIOS y Secure Boot descubiertos
  • Seguridad de Apple iOS
  • Depuración de cargadores de arranque de teléfonos HTC
  • Depurador para HBOOT
  • Analizando HBOOT
Descargar herramienta