Актуальные уязвимости. CVE-2021-4034 aka Pwnkit.
E7 | CORSCVE-2021-4034 - (в просторечии называемая «Pwnkit») — это ужасающая уязвимость, связанная с локальным повышением привилегий (Local Privilege Escalation), расположенная в пакете «Polkit», установленном по умолчанию почти во всех основных дистрибутивах операционной системы Linux (а также во многих других операционных системах * nix). Другими словами, она влияет практически на все основные системы Linux на планете.

Проникнув в систему (стадия эксплуатацции уязвимости), чаще всего изначально мы имеем минимальные права в системе, но нам необходим root (стадия постэксплуатации). Уязвимости, связанные с Privilege Escalation, как можно понять из названия, помогают нам повысить свои привилегии в системе с nobody до root, что позволит нам получить полный контроль над целевой системой.
Краткий обзор.
CVE-2021-4034 (также известная как «pwnkit») была обнаружена исследователями Qualys и анонсирована в январе 2022 года; технические рекомендации по безопасности для этой уязвимости можно найти здесь. Уязвимость существует в каждой версии пакета «Policy Toolkit» (или Polkit) с момента его первого выпуска в 2009 году и позволяет любому непривилегированному злоумышленнику легко получить полный административный доступ к любой машине Linux с установленным пакетом Polkit. Polkit установлен по умолчанию в большинстве дистрибутивов Linux, что делает эту уязвимость чрезвычайно распространенной.
Простота эксплуатации и вездесущий характер Polkit делают его абсолютно разрушительной уязвимостью; однако, к счастью, его нельзя использовать удаленно, что делает Pwnkit чисто локальной уязвимостью повышения привилегий (LPE).
Что такое Polkit?
Polkit является частью системы авторизации Linux. По сути, когда вы пытаетесь выполнить действие, требующее более высокого уровня привилегий, Polkit можно использовать для определения наличия у вас необходимых разрешений. Он интегрирован с systemd и гораздо более настраиваем, чем традиционная система sudo. Действительно, его иногда называют «sudo of systemd», предоставляя систему, с помощью которой можно назначать разрешения пользователям.
Уязвимость Pwnkit существует в утилите pkexec — основном интерфейсе к системе Polkit.
Версии pkexec, выпущенные до патча, не могут безопасно обрабатывать аргументы командной строки, что приводит к уязвимости «записи за пределами границ», позволяющей атакующему манипулировать средой, в которой запускается pkexec. Проще говоря, эксплоит, используя уязвимые переменные, запускает оболочку bash с root-правами.
Эксплуатация.
Использовать Pwnkit невероятно просто, в сети доступно множество эксплойтов (например этот). Предполагается, что мы уже получили доступ к системе, проэксплуатировав уязвимость веб-приложения или сервера (или же завладев паролем), и имеем reverse-shell либо ssh-соединение.
Для начала проверим, какие у нас права на целевыой машине изначально

Cкачаем эксплоит с Github на атакуемую машину, перейдем в директорию с исходниками эксплойта и скомпилируем его командой gcc cve-2021-4034-poc.c -o exploit

Запустим эксплойт с помощью команды ./exploit, чтобы получить мгновенный root-доступ

Исправление уязвимости.
Как обычно, обновление уязвимого пакета Polkit до последней версии. В дистрибутивах, которые еще не выпустили исправленные версии пакета, рекомендуемое исправление состоит в том, чтобы просто удалить бит SUID из двоичного файла pkexec. Это можно сделать с помощью команды:
sudo chmod 0755 `which pkexec`
Это далеко не идеально, однако это работает как временное решение, пока все больше дистрибутивов не начнут выпускать версии polkit с исправленной уязвимостью CVE-2021-4034 (Pwnkit).
Вы можете убедиться, что система исправлена, попытавшись запустить на ней копию эксплойта. Если эксплойт возвращает меню справки pkexec, система исправлена:

Подписывайся - E7|Pentest