
PoC для cve-2021-4034
PoC для cve-2021-4034
Основано на PoC от https://haxx.in: https://haxx.in/files/blasty-vs-pkexec.c. Вероятно, он — https://github.com/blasty?! Не знаю.
С небольшой помощью от https://github.com/daimoniac
gcc -Wall cve-2021-4034.c -o cve-2021-4034-exploit
Измените переменную hosts в asses_CVE-2021-4034.yml под ваш сценарий использования!
ansible-playbook -i </path/to/inventory.yml> </path/to/playbooks/>asses_CVE-2021-4034.yml
Плейбук копирует эксплойт на хост, выполняет его и несколько раз проверяет вывод whoami, сверяя его с «root» как возвращаемым значением эксплойта.
На хостах, где задача Check result of privilege escalation завершается с ошибкой, повышение привилегий прошло успешно.
В сводке (recap) плейбука хосты, у которых нет failed=0, уязвимы.
Если глубоко? Понятия не имею. Наверное, какие-то странные манипуляции с памятью.
Ключевым для работоспособности этого ansible playbook является https://github.com/mike-artemis/cve-2021-4034/blob/main/cve-2021-4034.c#L50. Обычный эксплойт от https://haxx.in/files/blasty-vs-pkexec.c только открывает root-shell, и ansible playbook застревает в нём. Изменение payload эксплойта на
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
возвращает текущего пользователя. Плейбук проверяет пользователя на повышение привилегий и завершает плейбук с ошибкой, если оно произошло.