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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2017-13253 — PoC-код для CVE-2017-13253 | Kitploit
Инструменты/GitHubGitHub/tamirzb/cve-2017-13253
Безопасность AndroidКриминалистика памятиАнализ уязвимостейЭксплуатацияРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubtamirzb/cve-2017-13253

CVE-2017-13253

PoC-код для CVE-2017-13253

Репозиторий
371125 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

CVE-2017-13253

PoC-код для CVE-2017-13253.

Полное описание доступно здесь. Обратите внимание, что цифры немного отличаются от поста в блоге, так как я обнаружил, что вероятность сбоя выше при куче 0x2000 (конечно, если запускать достаточно много раз, он всё равно должен произойти).

По вопросам/проблемам/комментариям обращайтесь ко мне в Twitter (@tamir_zb).

Сборка

Для сборки:

  1. Загрузите исходный код Android.
  2. Поместите этот репозиторий в AOSP/external.
  3. Выполните следующие команды:
root@kitploit:~
    cd AOSP
    source build/envsetup.sh
    make icrypto_overflow

Результат

Запуск этого на непропатченной версии Android (8.0-8.1 до марта 2018) должен привести к переполнению. Это может привести к сбою, в зависимости от того, доступна ли перезаписанная память для записи.

Код должен вывести результат метода decrypt, который может различаться:

  • Если он запускается на пропатченной версии Android (март 2018 или позже), то decrypt должен вернуть BAD_VALUE (-22).
  • Если сбоя не происходит (перезаписанные данные доступны для записи), то decrypt должен вернуть количество скопированных данных.
  • Если производитель реализует HAL как отдельный процесс (например, Pixel 2), то decrypt должен вернуть UNKNOWN_ERROR (-32).
  • Если производитель реализует HAL в том же процессе (например, Nexus 5X), то decrypt должен вернуть 0.

Вот частичный дамп сбоя, полученный при запуске этого PoC:

root@kitploit:~
Build fingerprint: 'google/walleye/walleye:8.1.0/OPM1.171019.011/4448085:user/release-keys'
Revision: 'MP1'
ABI: 'arm'
pid: 761, tid: 5232, name: HwBinder:761_1  >>> /vendor/bin/hw/[email protected] <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xee20f000
    r0 ee20f000  r1 ee20d021  r2 00001eff  r3 00000001
    r4 00000001  r5 00000000  r6 ed117008  r7 00000000
    r8 00000000  r9 fffff82a  sl ee20d000  fp ee20efff
    ip 08000000  sp ed2893c8  lr ed369e6b  pc edda7f0c  cpsr 20070010

backtrace:
    #00 pc 00018f0c  /system/lib/libc.so (__memcpy_base+244)
    #01 pc 00004e67  /vendor/lib/mediadrm/libdrmclearkeyplugin.so (clearkeydrm::CryptoPlugin::decrypt(bool, unsigned char const*, unsigned char const*, android::CryptoPlugin::Mode, android::CryptoPlugin::Pattern const&, void const*, android::CryptoPlugin::SubSample const*, unsigned int, void*, android::AString*)+82)
    ...

memory map (205 entries):
(fault address prefixed with --->)
    ...
    ee20d000-ee20efff rw-         0      2000  /dev/ashmem/MemoryHeapBase (deleted)
--->ee20f000-ee20ffff ---         0      1000  [anon:thread signal stack guard page]
    ...

Как видите, адрес сбоя — это память сразу после разделяемой памяти. Поскольку эта память защищена от записи, переполнение привело к ошибке сегментации.

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