Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/quarkslab/android-hardware-attestation-demo
Sécurité AndroidAuthentification et AutorisationPentesting d'Applications MobilesSécurité MobileSécurité MatérielleApprentissage et Éducation
GitHubquarkslab/android-hardware-attestation-demo

android-hardware-attestation-demo

Une démo d’attestation matérielle Android

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
47651il y a 1 moisPas encore vérifié

Contournement de l'attestation matérielle Android — démo

Ce dépôt accompagne un article Quarkslab sur l'attestation de clé matérielle Android et a pour but de l'illustrer.

Il s'agit d'une petite preuve de concept de bout en bout qui montre un contournement simple : un analyste sur un téléphone rooté contourne le contrôle d'attestation matérielle d'un backend en relayant l'attestation vers un deuxième appareil sain. Rien n'est falsifié. Une chaîne d'attestation authentique, produite par un appareil non modifié et liée au nonce propre au backend, est transmise à la place de la chaîne rejetée de l'appareil rooté.

Portée et éthique. Ce contenu est un support pédagogique destiné à la recherche en sécurité. Il utilise du HTTP en clair et désactive volontairement les contrôles de sécurité (marqueurs « demo only » disséminés dans le code). Exécutez-le contre vos propres appareils et votre propre backend, sur un réseau local de confiance.

Comment fonctionne le contournement

L'attestation Keystore d'un appareil rooté signale un bootloader déverrouillé ; le backend la rejette donc. Plutôt que d'attaquer la cryptographie, l'analyste intercepte l'appel d'attestation de l'application elle-même et le remplace par une chaîne récupérée en direct depuis un appareil sain pour le même défi.

Le hook remplace KeystoreAttestation.generateAttestedKey(challenge) dans l'application de démonstration et n'appelle jamais le Keystore local ; la chaîne de l'appareil rooté n'est donc jamais générée. La chaîne relayée est authentique et satisfait aux contrôles de boot vérifié et de matériel du backend.

Composants

Chaque composant possède son propre README avec tous les détails ; ce fichier les relie entre eux.

Prérequis

  • Deux appareils physiques. L'attestation requiert du vrai matériel ; les émulateurs renvoient une chaîne adossée au logiciel que le backend rejette.
    • Un appareil « d'analyse » rooté exécutant frida-server 17.16.4, avec l'application de démonstration installée.
    • Un appareil propre, non modifié avec l'application du serveur d'attestation installée (bootloader verrouillé, StrongBox ou TEE).
  • Une machine sur le même réseau pour le backend (Python 3, dépendances dans backend/requirements.txt).
  • Un JDK 17-21 pour compiler les deux applications Android, depuis Android Studio ou en ligne de commande avec le wrapper Gradle (./gradlew assembleDebug).
  • Node 20 ou 22 LTS sur le poste de travail uniquement si vous reconstruisez l'agent Frida. L'agent compilé (instrumentation/_agent.js) est inclus dans le dépôt ; une reconstruction est donc facultative.
  • Les trois éléments (appareils et backend) doivent pouvoir communiquer entre eux via le réseau.

Exécution de bout en bout

Démarrez les éléments dans cet ordre.

  1. Backend. Sur une machine joignable depuis les deux appareils :

    root@kitploit:~
    cd backend
    pip install -r requirements.txt
    python3 attestation_backend.py      # listens on 0.0.0.0:8080
    
  2. Appareil sain. Compilez et installez l'application du serveur d'attestation, ouvrez-la, appuyez sur START SERVER et notez l'URL affichée, par ex. http://192.168.1.42:8080.

  3. Appareil rooté. Démarrez frida-server, compilez et installez l'application de démonstration, ouvrez-la et saisissez l'adresse du backend (host:port).

    Les deux applications se compilent depuis Android Studio ou en ligne de commande avec le wrapper Gradle (./gradlew assembleDebug, JDK 17-21) ; consultez le README de chaque application pour les détails.

  4. Relais. Sur le poste de travail :

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

    Le contrôleur lance l'application de démonstration, installe le hook, puis la reprend.

  5. Déclenchement. Appuyez sur RUN ATTESTATION dans l'application de démonstration. Le backend renvoie valid : la chaîne relayée indique un bootloader verrouillé.

  6. Contrôle négatif. Arrêtez control.py et appuyez de nouveau sur . L'application de démonstration envoie désormais la chaîne propre à l'appareil rooté et le backend la rejette. C'est ce contrôle que le relais contourne.

Reconstruction de l'agent (uniquement si vous modifiez agent/agent.ts) :

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

Structure du dépôt

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

Licence et attribution

Copyright 2026 Quarkslab. Sous licence MIT. Voir LICENSE.

Ce dépôt illustre un article Quarkslab.

Télécharger l’outil
ComposantCheminRôleS'exécute sur
Client de démonstrationapps/QuarkslabAttestationDemo/Application cible. Demande un nonce, atteste, envoie la chaîne au backend. Hookée par Frida.Appareil d'analyse rooté
Serveur d'attestationapps/QuarkslabAttestationServer/Oracle d'attestation. Produit une chaîne authentique pour un nonce donné. Ne valide rien.Appareil propre, non modifié
Instrumentationinstrumentation/Agent Frida (le hook) et contrôleur qui relaie le nonce vers l'appareil sain.Poste de travail de l'analyste + appareil rooté
Backendbackend/Partie de confiance. Émet les nonces et valide les chaînes d'attestation.Toute machine joignable depuis les appareils
RUN ATTESTATION