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
android-hardware-attestation-demo — Un demo de atestación de hardware para Android | Kitploit
Herramientas/GitHubGitHub/quarkslab/android-hardware-attestation-demo
Seguridad AndroidAutenticación y AutorizaciónPentesting de Apps MóvilesSeguridad MóvilSeguridad de HardwareAprendizaje y Educación
GitHubquarkslab/android-hardware-attestation-demo

android-hardware-attestation-demo

Un demo de atestación de hardware para Android

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
47651hace 1 mesAún no revisado

Bypass de atestación de hardware de Android — demo

Este repositorio acompaña a un artículo de Quarkslab sobre la atestación de claves (Key Attestation) de hardware de Android y existe para ilustrarlo.

Es una prueba de concepto pequeña y de extremo a extremo que muestra un bypass simple: un analista en un teléfono rooteado burla la verificación de atestación de hardware de un backend retransmitiendo la atestación a un segundo dispositivo limpio. Nada se falsifica. Una cadena de atestación genuina, producida por un dispositivo sin modificar y vinculada al nonce del propio backend, se reenvía en lugar de la cadena rechazada del dispositivo rooteado.

Alcance y ética. Este es material educativo para la investigación en seguridad. Usa HTTP sin cifrar y desactiva las comprobaciones de seguridad a propósito (marcadores de «solo demo» por todas partes). Ejecútalo contra tus propios dispositivos y tu propio backend, en una red local de confianza.

Cómo funciona el bypass

La atestación de Keystore de un dispositivo rooteado informa de un bootloader desbloqueado, por lo que el backend la rechaza. En lugar de atacar la criptografía, el analista intercepta la llamada de atestación de la propia app e intercambia esa cadena por una obtenida en vivo de un dispositivo limpio para el mismo desafío.

El hook reemplaza KeystoreAttestation.generateAttestedKey(challenge) en la app demo y nunca llama al Keystore local, por lo que la cadena del dispositivo rooteado nunca se genera. La cadena retransmitida es genuina y supera las comprobaciones de arranque verificado (verified boot) y respaldadas por hardware del backend.

Componentes

Cada componente tiene su propio README con todos los detalles; este archivo los une.

Requisitos previos

  • Dos dispositivos físicos. La atestación requiere hardware real; los emuladores devuelven una cadena respaldada por software que el backend rechaza.
    • Un dispositivo de «análisis» rooteado que ejecute frida-server 17.16.4, con la app demo instalada.
    • Un dispositivo limpio y sin modificar con la app del servidor de atestación instalada (bootloader bloqueado, StrongBox o TEE).
  • Una máquina en la misma red para el backend (Python 3, dependencias en backend/requirements.txt).
  • Un JDK 17-21 para compilar las dos apps de Android, ya sea desde Android Studio o desde la línea de comandos con el wrapper de Gradle (./gradlew assembleDebug).
  • Node 20 o 22 LTS en la estación de trabajo solo si recompilas el agente de Frida. El agente compilado (instrumentation/_agent.js) está incluido en el repositorio, por lo que recompilar es opcional.
  • Los tres (dispositivos y backend) deben poder alcanzarse entre sí a través de la red.

Ejecución de extremo a extremo

Levanta los componentes en este orden.

  1. Backend. En una máquina accesible desde ambos dispositivos:

    root@kitploit:~
    cd backend
    pip install -r requirements.txt
    python3 attestation_backend.py      # listens on 0.0.0.0:8080
    
  2. Dispositivo limpio. Compila e instala la app del servidor de atestación, luego ábrela, toca START SERVER y anota la URL que muestra, p. ej. http://192.168.1.42:8080.

  3. Dispositivo rooteado. Inicia frida-server, compila e instala la app demo, ábrela e introduce la dirección del backend (host:port).

    Ambas apps se compilan desde Android Studio o desde la línea de comandos con el wrapper de Gradle (./gradlew assembleDebug, JDK 17-21); consulta el README de cada app para más detalles.

  4. Retransmisión. En la estación de trabajo:

    root@kitploit:~
    cd instrumentation
    python3 control.py --host <clean-device-ip> --port 8080
    

    El controlador lanza la app demo, instala el hook y luego la reanuda.

  5. Disparador. Toca RUN ATTESTATION en la app demo. El backend devuelve válido: la cadena retransmitida informa de un bootloader bloqueado.

  6. Control negativo. Detén control.py y toca RUN ATTESTATION de nuevo. La app demo ahora envía la cadena del propio dispositivo rooteado y el backend la rechaza. Esta es la verificación que la retransmisión evade.

Recompilar el agente (solo si cambias agent/agent.ts):

root@kitploit:~
cd instrumentation
nvm use          # Node 22 from .nvmrc
npm install
npm run build    # regenerates _agent.js

Estructura del repositorio

root@kitploit:~
apps/
  QuarkslabAttestationDemo/     target client app (Android Studio project)
  QuarkslabAttestationServer/   clean-device attestation oracle (Android Studio project)
instrumentation/                Frida agent + relay controller
backend/                        Python attestation validator
LICENSE                         MIT

Licencia y atribución

Copyright 2026 Quarkslab. Licenciado bajo la Licencia MIT. Consulta LICENSE.

Este repositorio ilustra un artículo de Quarkslab.

Descargar herramienta
ComponenteRutaFunciónSe ejecuta en
Cliente demoapps/QuarkslabAttestationDemo/App objetivo. Solicita un nonce, atesta y envía la cadena al backend. Hookeada por Frida.Dispositivo de análisis rooteado
Servidor de atestaciónapps/QuarkslabAttestationServer/Oráculo de atestación. Produce una cadena genuina para un nonce dado. No valida nada.Dispositivo limpio y sin modificar
Instrumentacióninstrumentation/Agente de Frida (el hook) más el controlador que retransmite el nonce al dispositivo limpio.Estación de trabajo del analista + dispositivo rooteado
Backendbackend/Parte confiadora (relying party). Emite nonces y valida cadenas de atestación.Cualquier máquina accesible desde los dispositivos