
cve-2021-4034용 PoC
cve-2021-4034에 대한 PoC
https://haxx.in의 PoC 기반: https://haxx.in/files/blasty-vs-pkexec.c. 아마 그는 https://github.com/blasty일까요? 잘 모르겠습니다.
https://github.com/daimoniac의 약간의 도움 포함
gcc -Wall cve-2021-4034.c -o cve-2021-4034-exploit
asses_CVE-2021-4034.yml의 변수 hosts를 사용 사례에 맞게 변경하세요!
ansible-playbook -i </path/to/inventory.yml> </path/to/playbooks/>asses_CVE-2021-4034.yml
Playbook은 익스플로잇을 호스트에 복사하고, 실행하며 여러 차례 whoami를 평가하고 익스플로잇의 반환 값으로 "root"를 확인합니다.
Check result of privilege escalation 작업이 실패한 호스트에서는 권한 상승이 성공한 것입니다.
Play recap에서 failed=0이 아닌 호스트는 취약합니다.
깊이 들어가면? 저는 모릅니다. 아마도 이상한 메모리 뒤섞기일 겁니다.
이 ansible playbook의 작동에 필수적인 것은 https://github.com/mike-artemis/cve-2021-4034/blob/main/cve-2021-4034.c#L50 입니다. https://haxx.in/files/blasty-vs-pkexec.c의 일반 익스플로잇은 단순히 root 셸을 열고, ansible playbook이 그 안에 갇히게 됩니다. 익스플로잇의 페이로드를 다음과 같이 변경합니다.
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
현재 사용자를 반환합니다. Playbook은 권한 상승을 위해 사용자를 확인하고, 발생하면 playbook을 실패 처리합니다.