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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-4034 — Это моя простая реализация эксплойта для уязвимости PwnKit. | Kitploit
Инструменты/GitHubGitHub/nicoibarburu/cve-2021-4034
Повышение привилегийЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubnicoibarburu/cve-2021-4034

CVE-2021-4034

Это моя простая реализация эксплойта для уязвимости PwnKit.

Репозиторий
524 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Проверка концепции (Proof of Concept): CVE-2021-4034 (PwnKit)

Примечание: Этот репозиторий и его содержимое являются частью дипломного проекта (GrAL), созданного исключительно в образовательных целях и для академических исследований.

Описание

Этот репозиторий содержит проверку концепции (PoC — Proof of Concept) для уязвимости CVE-2021-4034 (также известной как PwnKit). Эта уязвимость повреждения памяти затрагивает компонент pkexec из Polkit в Linux-системах. При запуске pkexec с пустым списком аргументов (argc == 0) переменными окружения можно манипулировать так, чтобы принудить загрузку произвольной общей библиотеки, таким образом добиваясь локального повышения привилегий.

Этапы эксплуатации (Анализ окружения)

Ниже описаны шаги, необходимые для подготовки среды выполнения с целью эксплуатации этой ошибки. Этот процесс показывает, как используется ошибка чтения/записи памяти в pkexec:

1. Подготовка окружения (структура gconv)

Этот эксплойт злоупотребляет тем, как GLib обрабатывает преобразование символов при попытке вывести сообщение об ошибке. Для этого первым шагом является создание определённой структуры каталогов, которая будет служить для GLib локальным хранилищем модулей преобразования GCONV.

2. Манипуляция переменными окружения

Ключ к уязвимости — внедрение переменной окружения GCONV_PATH с использованием записи за границы массива, вызванной состоянием argc == 0 в pkexec. Таким образом программа принуждается к использованию аномальной кодировки символов, что указывает GLib на необходимость поиска модулей преобразования символов в контролируемом каталоге, созданном на предыдущем шаге.

3. Создание вредоносной общей библиотеки (.so)

Для выполнения нашего кода необходимо скомпилировать общую библиотеку (shared object или .so). Когда pkexec попытается обработать кодировку символов, которую не сможет найти, он загрузит эту библиотеку из нашего поддельного каталога gconv. Поскольку pkexec является бинарником с установленным SUID-битом (он выполняется от имени root), при загрузке этой библиотеки наш код получит root-привилегии, получив полный контроль над системой (например, открыв root-оболочку).

4. Конфигурация файла gconv-modules

Наконец, в этом локальном каталоге необходимо создать конфигурационный файл gconv-modules. Этот файл действует как индекс: он сообщает GLib, какую конкретную библиотеку (.so) нужно загрузить для преобразования запрошенной конкретной кодировки символов. Этот файл связывает преобразование, запрашиваемое pkexec, с общей библиотекой, созданной на шаге 3.

Компиляция и очистка

В проекте есть Makefile для автоматизации компиляции C-бинарника и очистки окружения.

  • Для компиляции проекта: $ make

  • Для очистки созданных файлов (временных, папок и бинарников): $ make clean

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