
Временно удаляет пароль root с помощью CVE-2026-31431
[!WARNING] Используйте это только на системах, которыми вы владеете или на тестирование которых у вас есть разрешение.
Временно удаляет пароль root, использует CVE-2026-31431 для независимого от архитектуры повышения привилегий до root без знания пароля текущего пользователя.
Пожалуйста, используйте ответственно, только на системах, которые вам разрешено тестировать. Поддержка этого метода зависит от вашей системы, но он работал на всех производных Debian, которые я тестировал.
PoC, на котором это основано, по сути заменял ваш UID на все нули в /etc/passwd, фактически давая вам root. Этот подход вместо этого удаляет пароль root, поэтому при выполнении su вы мгновенно получаете root. Это сохраняет вашего пользователя в целости для стабильности, с оговоркой, что любой пользователь на машине может повысить привилегии до момента очистки. Поскольку это не модификация бинарных файлов, это также должно работать на всех архитектурах (проверено на Aarch64 и x64).
python exploit.py [ --shell | --clean | --noclean ]
Без аргументов программа запускается, вносит изменения в /etc/passwd и затем откатывает их.
--noclean предотвращает откат изменений после завершения.--clean только выполнит очистку после предыдущего запуска, не запуская эксплойт.--shell не будет выполнять очистку, но запустит root-оболочку через su после выполнения эксплойта.
На
Удаление 'x', который указывает, что пароль хранится в /etc/shadow, будет восприниматься так, как будто у пользователя вообще нет пароля, что позволяет легко войти.
На момент написания текста существовали только хорошо известные PoC для CopyFail: один перезаписывал SUID-исполняемый файл, а другой заменял UID вашего пользователя нулями. Оба имеют довольно разные сценарии использования при тестировании системы. Перезапись SUID требует шелл-кода, адаптированного под архитектуру системы, а изменение вашего UID требует повторной аутентификации с паролем текущего пользователя, который вы можете не знать. RootRemover часто можно использовать, если эти требования мешают.
Это разработано для случаев, когда вы получаете оболочку с пользователем nologin, например www-data, а не для машины, где у вас есть известный пароль или вы достаточно хорошо знаете архитектуру, чтобы подготовить шелл-код.
*LK*' или '*NP*' (это можно исправить цепочками записей, просто у меня не было времени реализовать это)su (отсутствие аргументов всегда означает root, PoC с патчем UID в логах выглядит просто как переключение на вашего пользователя)Сам код эксплойта взят из репозитория rootsecdev, я в основном меняю записываемые байты по причинам, описанным выше.