Sploitus

Exploit for PwnKit

kitploit · 2026-08-28

Exploit Code

MARKDOWN63 lines
## 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
    

### Демонстрация

![](https://assets.kitploit.com/production/public/readmes/38384/907a536d16a77a451c64dd54eff2043ad3cc8d8e5450c0976ab0d11413b33dca.png)

### Сборка

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/




## Свяжитесь со мной:

![](https://img.shields.io/badge/Github-Nosferatuvjr-green?style=for-the-badge&logo=github) ![](https://img.shields.io/badge/IG-@vivald0x6f-red?style=for-the-badge&logo=instagram)