
Я не писал это. Это лишь документирование моего выполнения/инструкций по использованию эксплойта, так как здесь есть несколько очень сложных и запутанных шагов, которым нужно следовать.
Файлы взяты из следующего источника: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
Дополнительная помощь по выполнению найдена здесь: https://ine.com/blog/exploiting-pwnkit-cve-20214034
Это было протестировано/выполнено на практической виртуальной машине Blackgate от OSCP: Ubuntu 20.04 Kernel 5.8.0-63-generic
Как узнать, уязвима ли система:
Проверьте наличие доступных SUID и убедитесь, что /usr/bin/pkexec является SUID-бинарником:
find / -perm -4000 2>/dev/null
Проверьте права доступа к бинарнику:
ls -al /usr/bin/pkexec
Проверьте версию pkexec:
/usr/bin/pkexec --version
Уязвимая версия, найденная на Blackgate: pkexec version 0.105
Убедитесь, что компилятор доступен на машине жертвы.
gcc version
Скопируйте файлы на машину жертвы (Makefile, evil-so.c, exploit.c) И скомпилируйте с помощью команды 'make all'. Выполните './exploit'
Проверьте оболочку
если вы получите ошибку, сообщающую, что cc: error trying to exec 'cc1': execvp: No such file or directory.
используйте команду locate cc1, чтобы найти бинарники:
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
# Затем экспортируйте расположение в PATH для ссылки, попробуйте собрать снова
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1