
Scripted Linux Privilege Escalation for the CVE-2022-0847 "Dirty Pipe" vulnerability

Bash-скрипт для проверки и эксплуатации уязвимости CVE-2022-0847 Linux "Dirty Pipe"
Этот скрипт позволяет непривилегированному пользователю на уязвимой системе выполнять следующее:
Этот репозиторий содержит 2 эксплойта:
Заменяет пароль root на пароль "piped" и создает резервную копию исходного файла /etc/passwd в /tmp/passwd.bak. Затем эксплойт предоставляет вам доступ к повышенной оболочке root и восстанавливает исходный файл passwd при выходе из оболочки.

Внедряет и перезаписывает данные в памяти процесса SUID, доступной только для чтения, который выполняется от root.

Клонируйте этот репозиторий и перейдите в рабочую директорию
git clone https://github.com/rexpository/linux-privilege-escalation.git
cd linux-privilege-escalation
Проверьте, уязвима ли текущая целевая система
./check.sh
Установите GCC для компиляции эксплойта
sudo apt-get install gcc
Скомпилируйте и запустите bash-скрипт для автоматизации компиляции обоих эксплойтов
chmod +x compile.sh
./compile.sh
Запустите нужный бинарный файл эксплойта
./exploit-1
или
./exploit-2 /usr/bin/sudo
Эта уязвимость находится в инструменте pipe, используемом для однонаправленной связи между процессами, отсюда и название "Dirty Pipe".
Непривилегированный локальный пользователь может использовать эту уязвимость для перезаписи якобы только для чтения файлов в ядре Linux и, таким образом, повысить свои привилегии в системе.
Эта уязвимость возникает из-за использования частично неинициализированной памяти структуры буфера pipe во время её создания. Отсутствие нулевой инициализации нового элемента структуры приводит к устаревшему значению flags, которое может быть использовано злоумышленником для получения доступа на запись к страницам в кэше, даже если они изначально были помечены атрибутом только для чтения.
Чтобы обеспечить защиту вашей инфраструктуры от этой и подобных угроз: