Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
android-hardware-attestation-demo — An Android HW Attestation demo | Kitploit
Strumenti/GitHubGitHub/quarkslab/android-hardware-attestation-demo
Android SecurityAuthentication & AuthorizationMobile App PentestingMobile SecurityHardware SecurityLearning & Education
GitHubquarkslab/android-hardware-attestation-demo

android-hardware-attestation-demo

An Android HW Attestation demo

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
39516 giorni faNon ancora revisionato

Bypass dell'attestazione hardware Android — demo

Questo repository accompagna un articolo di Quarkslab sull'attestazione delle chiavi hardware Android e serve a illustrarla.

È una piccola prova di concetto end-to-end che mostra un semplice bypass: un analista su un telefono rooted supera il controllo di attestazione hardware di un backend inoltrando l'attestazione a un secondo dispositivo pulito. Non viene falsificato nulla. Una catena di attestazione genuina, prodotta da un dispositivo non modificato e vincolata al nonce del backend stesso, viene inoltrata al posto della catena rifiutata del dispositivo rooted.

Scopo ed etica. Questo è materiale didattico per la ricerca sulla sicurezza. Usa HTTP semplice e disabilita i controlli di sicurezza apposta (indicatori "solo demo" ovunque). Eseguitelo sui vostri dispositivi e sul vostro backend, su una rete locale affidabile.

Come funziona il bypass

L'attestazione Keystore di un dispositivo rooted segnala un bootloader sbloccato, quindi il backend la rifiuta. Invece di attaccare la crittografia, l'analista intercetta la chiamata di attestazione dell'app e sostituisce una catena recuperata in tempo reale da un dispositivo pulito per la stessa sfida.

L'hook sostituisce KeystoreAttestation.generateAttestedKey(challenge) nell'app demo e non chiama mai il Keystore locale, quindi la catena del dispositivo rooted non viene mai generata. La catena inoltrata è genuina e supera i controlli di avvio verificato e quelli basati su hardware del backend.

Componenti

Ogni componente ha il proprio README con tutti i dettagli; questo file li collega tra loro.

Prerequisiti

  • Due dispositivi fisici. L'attestazione richiede hardware reale; gli emulatori restituiscono una catena basata su software che il backend rifiuta.
    • Un dispositivo "di analisi" rooted che esegue frida-server 17.16.4, con l'app demo installata.
    • Un dispositivo pulito e non modificato con l'app del server di attestazione installata (bootloader bloccato, StrongBox o TEE).
  • Una macchina sulla stessa rete per il backend (Python 3, dipendenze in backend/requirements.txt).
  • Un JDK 17-21 per compilare le due app Android, da Android Studio o da riga di comando con il wrapper Gradle (./gradlew assembleDebug).
  • Node 20 o 22 LTS sulla postazione solo se ricompilate l'agente Frida. L'agente compilato (instrumentation/_agent.js) è incluso nel repository, quindi la ricompilazione è opzionale.
  • Tutti e tre (dispositivi e backend) devono potersi raggiungere a vicenda sulla rete.

Esecuzione end-to-end

Avviate i componenti in quest'ordine.

  1. Backend. Su una macchina raggiungibile da entrambi i dispositivi:

    root@kitploit:~
    cd backend
    pip install -r requirements.txt
    python3 attestation_backend.py      # listens on 0.0.0.0:8080
    
  2. Dispositivo pulito. Compilate e installate l'app del server di attestazione, poi apritela, toccate START SERVER e annotate l'URL mostrato, ad es. http://192.168.1.42:8080.

  3. Dispositivo rooted. Avviate frida-server, compilate e installate l'app demo, apritela e inserite l'indirizzo del backend (host:port).

    Entrambe le app si compilano da Android Studio o da riga di comando con il wrapper Gradle (./gradlew assembleDebug, JDK 17-21); consultate il README di ciascuna app per i dettagli.

  4. Relay. Sulla postazione dell'analista:

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

    Il controller avvia l'app demo, installa l'hook e poi la riprende.

  5. Innesco. Toccate RUN ATTESTATION nell'app demo. Il backend restituisce valido: la catena inoltrata segnala un bootloader bloccato.

  6. Controllo negativo. Fermate control.py e toccate di nuovo . L'app demo ora invia la catena del dispositivo rooted e il backend la rifiuta. Questo è il controllo che il relay elude.

Ricompilazione dell'agente (solo se modificate agent/agent.ts):

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

Struttura del repository

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

Licenza e attribuzione

Copyright 2026 Quarkslab. Sotto licenza MIT. Vedi LICENSE.

Questo repository illustra un articolo di Quarkslab.

Scarica lo strumento
ComponentePercorsoRuoloEseguito su
Client demoapps/QuarkslabAttestationDemo/App target. Richiede un nonce, attesta, invia la catena al backend. Hookato da Frida.Dispositivo di analisi rooted
Server di attestazioneapps/QuarkslabAttestationServer/Oracolo di attestazione. Produce una catena genuina per un dato nonce. Non valida nulla.Dispositivo pulito e non modificato
Strumentazioneinstrumentation/Agente Frida (l'hook) più il controller che inoltra il nonce al dispositivo pulito.Postazione dell'analista + dispositivo rooted
Backendbackend/Parte fiduciaria (relying party). Emette nonce e valida le catene di attestazione.Qualsiasi macchina raggiungibile dai dispositivi
RUN ATTESTATION