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

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

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

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

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

Категории

Все категории
Loading categories
exploit_playground — Analysis of public exploits or my 1day exploits | Kitploit
Инструменты/GitHubGitHub/externalist/exploit_playground
Android SecurityiOS SecurityVulnerability AnalysisExploitationReverse EngineeringWeb SecurityLearning & EducationCurated ResourcesBinary Exploitation
GitHubexternalist/exploit_playground

exploit_playground

Analysis of public exploits or my 1day exploits

616985 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

О проекте

Здесь я буду публиковать анализ публичных эксплойтов, а также некоторые из моих 1day-эксплойтов.

[ Анализ публичных эксплойтов ]

  • Лично я считаю, что лучший способ изучить публичный эксплойт — это понимать его построчно, пока я не осознаю его до мельчайших деталей. Я буду публиковать некоторые из таких (местами излишне закомментированных ;) ) эксплойтов в надежде, что другие смогут по ним учиться, а также как попытка отдать что-то сообществу. Плюс для целей документирования, потому что со временем эти вещи стираются из головы.

CVE-2016-8655

  • Это подробный анализ эксплойта от rebel.
  • Спасибо rebel за потрясающий эксплойт! :D

CVE-2016-5342

mp3-версия

  • Это прокомментированная версия android LPE-эксплойта от freener
  • arm32
  • Переполнение кучи
  • Этот эксплойт напрямую перезаписывает указатель на функцию другого объекта.

tty-версия

  • Это прокомментированная версия android LPE-эксплойта от freener
  • arm32
  • Переполнение кучи
  • Этот эксплойт перезаписывает указатель на объект внутри другого объекта. Он использует атаку ret2dir, чтобы заставить повреждённый указатель указывать на предсказуемый фиксированный адрес в ядре, где находится полезная нагрузка эксплойта. Данная техника обходит PXN и PAN.

CVE-2016-2434

  • Это прокомментированная версия android LPE-эксплойта от Jianqiang Zhao
  • arm64
  • Обнуление 16 байт по произвольному адресу
  • Этот эксплойт затирает 16 байт полезного глобального объекта, расположенного по фиксированному адресу в ядре.
  • Повреждённый указатель на объект внутри глобального объекта ссылается на полезную нагрузку эксплойта из пользовательского пространства. Такая атака не сработает на устройствах/ядрах с PAN (или эмуляцией PAN).

extra_recipe

  • Моя попытка разобраться в джейлбрейке extra_recipe
  • Меня особенно интересовала часть с обходом KPP. Хотя было несколько слайдов на эту тему, где я мог получить смутное представление об обходе, я действительно хотел вникнуть в детали и увидеть, что на самом деле происходит внутри кода.
  • Также я хотел понять финальные составляющие джейлбрейка (установка Cydia и т.д.).

yalu102 (ViewController.m)

  • Я закомментировал часть, относящуюся к самой ошибке и тому, как она эксплуатировалась.
  • Причина, по которой я изучал yalu102 вместо оригинального эксплойта, в том, что техника port-feng-shui выглядела более чистой и простой для понимания.
  • Анализ останавливается прямо перед обходом kpp.

extra_recipe-master от xerub (jailbreak.c, unjail.m, patchfinder64.c, pte_stuff.h)

  • Я перехожу сюда, потому что здесь было немного больше информации о различных числовых смещениях.
  • Кроме того, patchfinder.c сохранился в исходном виде, в отличие от yalu102, где есть только объектный файл.
  • Часть с Cydia несколько неполна, поэтому после kpp я перехожу в ветку cydia.

extra_recipe-cydia от xerub (unjail.m)

  • Попытка понять составляющие джейлбрейка после tfp0 и пост-эксплуатации.

empty_list (sploit.c)

  • Детальный разбор эксплойта ядра empty_list от Ian Beer.
  • В нём используются потрясающие техники: начав с очень слабых примитивов, он строит более мощный AAR и, наконец, полноценный task port. Магия портов в коде эксплойта невероятна. И всё это с переполнением кучи на 8 NULL-байт. Просто сносит голову.
  • Я набросал несколько наивных идей по повышению надёжности. Надеюсь, кто-нибудь выпустит в будущем более надёжную версию эксплойта. :)
  • Спасибо Ian Beer за потрясающий эксплойт!

CVE-2018-4233

  • Это прокомментированная версия iOS Webkit-эксплойта от @niklas_b.
  • Огромное спасибо kudima (@begger_dd) за очень понятный, лаконичный и тщательно аннотированный разбор! :)
  • В разборе объясняется ошибка JIT type confusion, некоторые ограничения на преобразования boxing/unboxing (которые могут приводить к нестабильности), а также подробно описывается, как строятся ранние/поздние примитивы AAR/AAW. Он также даёт понимание изменений в техниках эксплуатации после последнего раунда смягчений (index masking, отравление backing store у ArrayBuffer, некоторые изменения механизма W^X JIT, изменения в структуре JSObject и т.д.).

jsc_ConcatMemcpy_infoleak

  • Это прокомментированная версия WebKit infoleak-эксплойта от kudima (исправлен в 2018.8.27).
  • Он возник из-за неполного исправления одной из ошибок, сообщённых lokihardt. Патч из отчёта lokihardt исправил примитив type confusion Double -> Object, но не исправил обратное направление: Object -> Double.
  • Он засоряет кучу webkit «бабочками» (butterflies), содержащими один объект и маркер, а затем вызывает ошибку concat и заполняет значительную часть нескольких double-массивов неинициализированными данными кучи. Он перебирает неинициализированные double-массивы, полученные в результате срабатывания ошибки concat, пока не находит адрес ранее размещённого объекта, и раскрывает его.
  • Ещё раз спасибо kudima (@begger_dd) за отличный эксплойт и разбор! :)

jsc_prop_enum_uaf

  • Это ещё один вклад от kudima. Это прокомментированная версия WebKit-эксплойта kudima для удалённого выполнения кода (исправлен в этом коммите). Он исправлен в iOS 12.1 и работает вплоть до iOS 12.0.1.
  • Проблема в том, что при выполнении кода в baseline-jitted циклах forin можно внедрить код, который освобождает объект StructureID, лежащий в основе JSObject, и запускает сборщик мусора, но сборщик мусора не помечает член "JSPropertyNameEnumerator->m_cachedStructureID", и объект StructureID, на который указывает "JSPropertyNameEnumerator->m_cachedStructureID", освобождается на этапе sweep, что приводит к висячему указателю.
  • После освобождения объекта StructureID сборщиком мусора можно внедрить код, который создаёт новый объект StructureID, занимающий слот ранее освобождённого "StructureID object".
  • Освободив StructureID объекта A, а затем заставив объект B создать новый StructureID, который займёт его место, можно создать ситуацию type confusion, поскольку "JSPropertyNameEnumerator->m_cachedInlineCapacity" установлен в размер инлайновых свойств объекта A, в то время как "JSPropertyNameEnumerator->m_cachedStructureID" указывает на новый объект Structure ID, представляющий объект B. Это позволяет пройти проверку в 'op_get_direct_pname' и даёт объекту B доступ к инлайновым свойствам за пределами его границ.
  • Это можно использовать для построения более мощных примитивов, таких как AAR/AAW, и далее применять их для выполнения произвольного кода.
  • Спасибо kudima (@begger_dd) за классный эксплойт и очень подробный разбор! :)

[ 1Day ]

CVE-2017-2547

  • Однажды я посмотрел на эксплойт singi после его презентации на Zer0con 2018 и решил его улучшить.
  • Это автономная версия эксплойта до того, как я интегрировал его в pwnjs.
  • Улучшения включают:
    • Повышенная надёжность (безупречно работает после длительных сеансов браузинга с загрязнённой памятью)
    • Убраны все хардкод-смещения, чтобы обеспечить совместимость с различными версиями браузеров
    • Использована другая техника эксплуатации (стандартная техника misalign)
    • В итоге интегрирован в фреймворк pwnjs путём создания webkit-прототипа
    • Код стал гораздо более читаемым, добавлено много комментариев
  • Особая благодарность
    • qwertyoruiop и Samuel Grob за потрясающую статью в phrack и публичные эксплойты
    • Brian Pak и Andrew Wesie за отличный фреймворк pwnjs!
Скачать инструмент