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

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

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

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

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

Категории

Все категории
Loading categories
PS5-IPV6-Kernel-Exploit — Экспериментальный эксплойт ядра на основе webkit (Arb. R/W) для PS5 на прошивке <= 4.51FW | Kitploit
Инструменты/GitHubGitHub/cryptogenic/ps5-ipv6-kernel-exploit
Безопасность встроенных системПовышение привилегийАнализ уязвимостейЭксплуатацияОбратная инженерияПост-эксплуатацияЭксплуатация Бинарных Файлов
GitHubcryptogenic/ps5-ipv6-kernel-exploit

Популярное

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

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

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

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

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

PS5-IPV6-Kernel-Exploit

Экспериментальный эксплойт ядра на основе webkit (Arb. R/W) для PS5 на прошивке <= 4.51FW

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

PS5 3.xx / 4.xx Kernel Exploit


Сводка

В этом репозитории содержится экспериментальная реализация ROP на WebKit для эксплуатации ядра PS5, основанная на Use-After-Free (UAF) в IPV6 от TheFlow, который был опубликован на HackerOne. Стратегия эксплуатации в основном основана на PoC TheFlow для BSD/PS4 с некоторыми изменениями, чтобы учесть раздражающую раскладку памяти PS5 (подробнее см. раздел Research Notes). Эксплойт устанавливает примитив произвольного чтения / (полу-произвольной) записи. Данный эксплойт и его возможности имеют множество ограничений, поэтому в основном он предназначен для разработчиков, желающих поэкспериментировать и провести реверс-инжиниринг некоторых частей системы.

Благодаря последним улучшениям стабильности надёжность составляет около 80%. Этот документ будет содержать исследовательскую информацию о PS5, а эксплойт будет продолжать развиваться и улучшаться со временем.

Те, кто заинтересован в участии в исследовании/разработке для PS5, могут присоединиться к discord, который я создал, здесь.

Эксплойт теперь должен поддерживать следующие прошивки:

  • 3.00
  • 3.10
  • 3.20
  • 3.21
  • 4.00
  • 4.02
  • 4.03
  • 4.50
  • 4.51

Что включено

  • Получение произвольного чтения/записи и возможность запуска базового RPC-сервера для чтения/записи (или дамп-сервера для больших объёмов чтения) (необходимо вписать свои адрес/порт в файл эксплойта в строках 673-677)
  • Включение меню отладочных настроек (примечание: вам придётся полностью выйти из настроек и зайти обратно, чтобы увидеть его).
  • Получение root-привилегий

Ограничения

  • Этот эксплойт обеспечивает чтение/запись, но не выполнение кода. Это связано с тем, что мы не можем дампнуть код ядра для поиска гаджетов, так как страницы .text ядра помечены как eXecute Only Memory (XOM). Попытка прочитать указатели .text ядра вызовет panic!
  • Из-за вышесказанного + гипервизор (HV) принудительно включает защиту записи ядра, этот эксплойт также не может устанавливать какие-либо патчи или хуки в пространство ядра, что означает отсутствие homebrew-кода на данный момент.
  • Присутствует и применяется тонкозернистая защита целостности потока управления (CFI) на основе Clang.
  • Защита доступа/исполнения супервизора (SMAP/SMEP) не может быть отключена из-за HV.
  • Примитив записи несколько ограничен, так как байты 0x10-0x14 должны быть нулевыми (или валидным сетевым интерфейсом).
    • Однако благодаря более новой работе с pipe теперь возможно полное произвольное чтение/запись.

Как использовать

  1. Настройте fakedns через dns.conf, указав manuals.playstation.net на IP-адрес вашего ПК
  2. Запустите поддельный DNS: python fakedns.py -c dns.conf
  3. Запустите HTTPS-сервер: python host.py
  4. Зайдите в расширенные сетевые настройки PS5 и установите основной DNS на IP-адрес вашего ПК, оставив вторичный как 0.0.0.0
    1. Иногда руководство всё равно не загружается, и требуется перезагрузка; неясно, почему, это очень странно
  5. Зайдите в руководство пользователя в настройках, примите запрос недоверенного сертификата, запустите
  6. Опционально: запустите скрипты rpc/dump-сервера (примечание: адрес/порт должны быть подставлены в двоичном виде в exploit.js).

Будущая работа

  • Исправить сокеты для чистого выхода из браузера (высший приоритет)
  • Написать патчи данных (второй приоритет)
    • Включить отладочные настройки
    • Пропатчить creds для uid0
    • Джейлбрейк через перезапись cr_prison
  • Повысить надёжность UAF
  • Повысить надёжность victim-сокета (третий приоритет)
  • Использовать более хорошую / стабильную цель для утечки, чем kqueue (больше не требуется)
  • Добавить поддержку релокаций в ELF-загрузчик
    • Добавить поддержку большего количества релокаций и, возможно, полной динамической компоновки?

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

Чтобы использовать ELF-загрузчик, запускайте эксплойт до завершения. По завершении он запустит сервер на порту :9020. Подключитесь и отправьте ваш ELF на PS5 через этот порт, и он будет запущен. Если ELF не роняет браузер, можно продолжать запускать ELF-файлы бесконечно.

Этапы эксплойта

Эксплойт работает в 5 этапов и в основном следует той же стратегии, что и PoC от theflow.

  1. Запуск начального UAF на ip6_pktopts и получение двух сокетов, указывающих на один и тот же pktopts / перекрывающихся (master-сокет <-> overlap spray-сокет)
  2. Освобождение pktopts на master-сокете и подмена его спреем ip6_rthdr, содержащим перекрытие с тегом tclass.
  3. Шаг инфоутечки. Используйте перекрытие pktopts/rthdr для утечки kqueue из слаба 0x200 и pktopts из слаба 0x100.
  4. Шаг произвольного чтения/записи. Снова подмените pktopts и найдите перекрывающийся сокет, чтобы использовать IPV6_RTHDR как примитив чтения/записи.
  5. Шаг очистки + патчинга. Увеличьте счётчик ссылок повреждённых сокетов для чистого выхода из браузера + пропатчите данные для включения отладочного меню и пропатчите ucreds для uid0.
  6. Запуск ELF-загрузчика, который будет принимать и загружать/запускать ELF-файлы. В настоящее время WIP, релокации пока не поддерживаются.

Заметки о стабильности

Стабильность этого эксплойта составляет около 30% 80-90% и имеет две потенциальные точки отказа. В порядке убывания наблюдаемой вероятности:

  1. Этап 1 не может перехватить UAF, что вызывает немедленный крах или скрытое повреждение, приводящее к краху.
  2. Этап 4 не может найти victim-сокет

Research Notes

  • Судя по различным тестам и дампам с помощью примитива чтения, похоже, что PS5 вернулся к размеру страницы 0x1000 по сравнению с 0x4000 у PS4.

    • После дальнейших исследований размер страницы действительно по-прежнему 0x4000, однако из-за некоторых безумных изменений в аллокаторе разные слабы могут быть размещены в одной виртуальной странице.
  • Также похоже, что на PS5 соседние страницы редко принадлежат одному и тому же слабу, так как в соседних страницах вы получите совершенно разные данные. Раскладка памяти кажется более разбросанной.

  • Часто, когда PS5 паникует (по крайней мере в контексте webkit), будет ужасный звуковой вывод, так как аудиобуфер каким-то образом повреждается.

  • Иногда это повреждение звука сохраняется до следующей загрузки; непонятно, почему.

  • Как и на PS4, после паники PS5 потребуется вручную дважды нажать кнопку питания на консоли для перезагрузки.

  • Это нормально, что PS5 тратит нелепое количество времени на перезагрузку после паники, если она изолирована от интернета (к сожалению). Ожидайте, что загрузка займёт 3-4 минуты.

Участники / Особая благодарность

  • Andy Nguyen / theflow0 — Уязвимость и стратегия эксплойта
  • ChendoChap — Разнообразная помощь с тестированием и исследованиями
  • Znullptr — Исследования/RE
  • sleirsgoevy — Исследования/RE + идеи стратегии эксплойта
  • bigboss — Исследования/RE
  • flatz — Исследования/RE + помощь с патчами
  • zecoxao — Исследования/RE
  • SocracticBliss — Исследования/RE
  • laureeeeeee — Фоновые знания низкоуровневых систем и помощь

Благодарность тестерам

  • Dizz (4.50/4.51)
Скачать инструмент