Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
android-hardware-attestation-demo — An Android HW Attestation demo | Kitploit
Инструменты/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

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
39516 дней назадЕщё не проверено

Android hardware attestation bypass — demo

Этот репозиторий сопровождает статью Quarkslab об аппаратной Android Key Attestation и создан для её иллюстрации.

Это небольшой сквозной proof of concept, демонстрирующий простой обход: аналитик на рутованном телефоне обходит проверку аппаратной аттестации бэкендом, ретранслируя аттестацию на второе, чистое устройство. Ничего не подделывается. Подлинная цепочка аттестации, созданная немодифицированным устройством и привязанная к собственному nonce бэкенда, пересылается вместо отклонённой цепочки рутованного устройства.

Область применения и этика. Это учебный материал для исследований в области безопасности. Здесь используется обычный HTTP и намеренно отключены проверки безопасности (повсюду пометки «demo only»). Запускайте его на своих собственных устройствах и своём собственном бэкенде, в доверенной локальной сети.

Как работает обход

Аттестация Keystore рутованного устройства сообщает о разблокированном загрузчике, поэтому бэкенд отклоняет её. Вместо атаки на криптографию аналитик перехватывает вызов аттестации в самом приложении и подменяет цепочку на полученную в реальном времени с чистого устройства для того же самого challenge.

Хук заменяет KeystoreAttestation.generateAttestedKey(challenge) в демо-приложении и никогда не вызывает локальный Keystore, поэтому цепочка рутованного устройства никогда не создаётся. Ретранслированная цепочка подлинна и проходит проверки бэкенда на verified boot и аппаратную защиту.

Компоненты

У каждого компонента есть собственный README с полными подробностями; этот файл связывает их воедино.

Предварительные требования

  • Два физических устройства. Аттестация требует реального оборудования; эмуляторы возвращают цепочку с программной защитой, которую бэкенд отклоняет.
    • Рутованное «аналитическое» устройство с запущенным frida-server 17.16.4 и установленным демо-приложением.
    • Чистое, немодифицированное устройство с установленным приложением сервера аттестации (заблокированный загрузчик, StrongBox или TEE).
  • Машина в той же сети для бэкенда (Python 3, зависимости в backend/requirements.txt).
  • JDK 17-21 для сборки двух Android-приложений, либо из Android Studio, либо из командной строки с помощью Gradle wrapper (./gradlew assembleDebug).
  • Node 20 или 22 LTS на рабочей станции, только если вы пересобираете агент Frida. Скомпилированный агент (instrumentation/_agent.js) сохранён в репозитории, так что пересборка необязательна.
  • Все три стороны (устройства и бэкенд) должны быть доступны друг другу по сети.

Сквозной запуск

Поднимайте компоненты в следующем порядке.

  1. Бэкенд. На машине, доступной с обоих устройств:

    root@kitploit:~
    cd backend
    pip install -r requirements.txt
    python3 attestation_backend.py      # слушает на 0.0.0.0:8080
    
  2. Чистое устройство. Соберите и установите приложение сервера аттестации, затем откройте его, нажмите START SERVER и запишите показанный URL, например http://192.168.1.42:8080.

  3. Рутованное устройство. Запустите frida-server, соберите и установите демо-приложение, откройте его и введите адрес бэкенда (host:port).

    Оба приложения собираются из Android Studio или из командной строки с помощью Gradle wrapper (./gradlew assembleDebug, JDK 17-21); подробности — в README каждого приложения.

  4. Ретрансляция. На рабочей станции:

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

    Контроллер запускает демо-приложение, устанавливает хук, затем возобновляет его.

  5. Запуск. Нажмите RUN ATTESTATION в демо-приложении. Бэкенд возвращает valid: ретранслированная цепочка сообщает о заблокированном загрузчике.

  6. Отрицательный контроль. Остановите control.py и снова нажмите . Теперь демо-приложение отправляет собственную цепочку рутованного устройства, и бэкенд отклоняет её. Это та проверка, которую обходит ретрансляция.

Пересборка агента (только если вы изменяете agent/agent.ts):

root@kitploit:~
cd instrumentation
nvm use          # Node 22 из .nvmrc
npm install
npm run build    # перегенерирует _agent.js

Структура репозитория

root@kitploit:~
apps/
  QuarkslabAttestationDemo/     целевое клиентское приложение (проект Android Studio)
  QuarkslabAttestationServer/   оракул аттестации на чистом устройстве (проект Android Studio)
instrumentation/                агент Frida + контроллер ретрансляции
backend/                        Python-валидатор аттестации
LICENSE                         MIT

Лицензия и указание авторства

Copyright 2026 Quarkslab. Лицензия MIT. См. LICENSE.

Этот репозиторий иллюстрирует статью Quarkslab.

Скачать инструмент
КомпонентПутьРольГде запускается
Демо-клиентapps/QuarkslabAttestationDemo/Целевое приложение. Запрашивает nonce, выполняет аттестацию, отправляет цепочку бэкенду. Перехватывается Frida.Рутованное аналитическое устройство
Сервер аттестацииapps/QuarkslabAttestationServer/Оракул аттестации. Создаёт подлинную цепочку для заданного nonce. Ничего не проверяет.Чистое, немодифицированное устройство
Инструментированиеinstrumentation/Агент Frida (хук) плюс контроллер, который ретранслирует nonce на чистое устройство.Рабочая станция аналитика + рутованное устройство
Бэкендbackend/Проверяющая сторона. Выдаёт nonce и проверяет цепочки аттестации.Любая машина, доступная с устройств
RUN ATTESTATION