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 执行摘要中,没有 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 shell,而 Ansible playbook 会被卡在里面。 将利用程序的 payload 改为:
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
就能返回当前用户。Playbook 会检查用户是否实现了权限提升,如果发生权限提升则标记 playbook 为失败。