## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NOSFERATUVJR-PWNKIT
# PwnKit
Этот репозиторий содержит эксплойт, который я разработал, чтобы понять, как работает уязвимость Polkit Pkexec: CVE-2021-4034 (Pkexec Local Privilege Escalation). Polkit (ранее известный как PolicyKit) — это компонент, функция которого заключается в управлении привилегиями в Unix-подобных операционных системах. Он предоставляет организованный способ взаимодействия непривилегированных процессов с процессами, обладающими привилегиями. Уязвимость позволяет любому пользователю, обычному пользователю системы, не имеющему административных привилегий, получить максимальные привилегии в системе.
Уязвимость возникает, когда функция `main()` pkexec обрабатывает аргументы командной строки, где аргумент равен `0`. Функция пытается получить доступ к списку аргументов и в итоге пытается получить доступ к `rgvvoid` (контроллеру аргументов командной строки), то есть это происходит, когда pkexec неправильно обрабатывает параметры вызова и в итоге пытается выполнить переменные окружения как команды. Результатом этого является чтение и запись памяти за пределами границ, что злоумышленник может использовать для внедрения переменной окружения, которая может привести к загрузке вредоносного кода.
Это просто понять: тот факт, что эти переменные окружения могут быть внедрены, делает код уязвимым. Способ, который я использовал для эксплуатации уязвимости, был тем же, что использовал Qualys. Процесс прост: достаточно внедрить переменную GCONV_PATH в рабочее окружение pkexec, то есть в любой каталог, доступный обычным пользователям системы. Эта переменная запустит общую библиотеку с правами root. Следует четко понимать, что этот метод шумный и оставляет много следов, поскольку внедрение переменной создает каталог, и он разделяет привилегии с пользователем root.
Если вы обнаружите, что ваша система уязвима, обновите её как можно скорее. Если вы всё ещё считаете, что она уязвима, вы можете удалить SUID-бит у pkexec в качестве временной меры смягчения последствий, вот так: `# chmod 0755 /usr/bin/pkexec`
Более подробно о том, как работает уязвимость, здесь.
## Принцип работы
Эксплойт будет работать мгновенно в уязвимых дистрибутивах на основе Debian, Ubuntu, Fedora и CentOS. Он был создан в учебных целях для изучения уязвимости и чтобы посмотреть, чего я сейчас могу достичь самостоятельно на языке C :D. Не используйте его для того, чего не следует.
root@kitploit:~
$ git clone https://github.com/Nosferatuvjr/PwnKit
$ cd PwnKit
$ chmod +x ./PwnKit.sh
$ ./PwnKit.sh
# id
Или
root@kitploit:~
$ git clone https://github.com/Nosferatuvjr/PwnKit
$ cd PwnKit
$ chmod +x ./PwnKit
$ ./PwnKit
$ ./PwnKit id #shell interativa
### Демонстрация

### Сборка
root@kitploit:~
gcc -shared PwnKit.c -o PwnKit -Wl,-e,entry -fPIC
## Детали техники и ссылки
* https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034
* https://github.com/arthepsy/CVE-2021-4034/
## Свяжитесь со мной:
 