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

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

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

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

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

Категории

Все категории
Loading categories
iomfb-exploit — Эксплойт для CVE-2021-30807 | Kitploit
Инструменты/GitHubGitHub/jsherman212/iomfb-exploit
Безопасность iOSКриминалистика памятиАнализ уязвимостейЭксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubjsherman212/iomfb-exploit

iomfb-exploit

Эксплойт для CVE-2021-30807

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

Популярное

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

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

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

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

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

Статья здесь: https://jsherman212.github.io/2021/11/28/popping_ios14_with_iomfb.html

Эксплойт для CVE-2021-30807. Если вы действительно хотите создать джейлбрейк на его основе, потребуется настройка под ваше устройство и версию iOS, поскольку у меня нет утечки информации для этого.

Для настройки для A11 и ниже используйте pongo для загрузки xnuspy и соберите с SAMPLING_MEMORY=1 make -B. Это включит тест, который собирает память, возвращаемую kernel_memory_allocate, сортирует эти указатели и выдает диапазон. Вы увидите что-то вроде этого:

root@kitploit:~
sample_kernel_map: 0xffffffe8ebe9c000 [0x10000 bytes from behind]
sample_kernel_map: to add to alloc_averager:
[0xffffffe8ce934000, 0xffffffe8ebf98000],

(просто игнорируйте предупреждения, которые он выдает)

Тест предназначен для запуска через 30 секунд после загрузки устройства.

Внутри alloc_averager.py есть несколько образцов, которые я уже запускал для своих телефонов. Он берет среднее всех средних каждого диапазона. Создайте «список образцов» для вашего устройства и добавьте туда диапазон. Повторите тест несколько раз, пока в этом списке не будет 5–10 записей. alloc_averager.py сообщит о вероятности успеха для предполагаемого значения, сгенерированного на основе списка. Если вас устраивает вероятность, возьмите это значение и замените им значение GUESSED_OSDATA_BUFFER_PTR в начале IOMobileFramebufferUserClient.c.

Очень важно не включать выбросы в этот список. После нескольких запусков теста вы, скорее всего, столкнетесь с диапазоном, который выбивается из остальных уже имеющихся диапазонов.

Вам потребуется найти смещения для вашего устройства/версии, чтобы запустить этот тест.

Во-первых, чтобы найти kernel_memory_allocate, просто сделайте перекрестную ссылку (xref) на kernel_memory_allocate: VM is not ready. Когда у вас будет смещение, установите значение kma на него внутри install_kernel_memory_alloc_hook.

Во-вторых, чтобы изолировать тест от других выделений, которые делает XNU, я проверяю конкретный адрес возврата. Этот адрес находится внутри OSData::initWithCapacity. Вы можете легко найти vtable OSData, сделав перекрестную ссылку (xref) на строку "OSData". Первая перекрестная ссылка на эту строку будет в функции, имеющей перекрестную ссылку на vtable для OSData::MetaClass. Прямо над этим vtable находится vtable OSData, а OSData::initWithCapacity находится по смещению +0x78.

Как только вы найдете OSData::initWithCapacity, найдите единственную инструкцию BL к kernel_memory_allocate и возьмите смещение инструкции непосредственно под ней. Внутри kernel_hooks.c используйте это смещение в единственном операторе if в единственной функции этого файла.

Для A12+ потребуется использовать что-то вроде Correlium.

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