
CVE-2021-4034 (PwnKit)에 대한 익스플로잇으로, polkit의 pkexec 바이너리에서 로컬 권한 상승 취약점을 대상으로 하여 영향을 받는 Linux 시스템에서 인증되지 않은 루트 액세스를 가능하게 합니다.
이 글은 제가 작성한 것이 아닙니다. 익스플로잇 사용에는 매우 복잡하고 까다로운 단계들이 있기 때문에, 제가 수행한 실행/지침을 문서화하기 위한 것일 뿐입니다.
파일은 다음 출처에서 가져왔습니다: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
실행에 관한 추가 도움은 여기에서 찾았습니다: https://ine.com/blog/exploiting-pwnkit-cve-20214034
이것은 OSCP의 Blackgate Practice VM에서 테스트/실행되었습니다: 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에 Export하고 다시 빌드를 시도하십시오
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1