
PoC para cve-2021-4034
PoC para cve-2021-4034
Baseado no PoC de https://haxx.in: https://haxx.in/files/blasty-vs-pkexec.c. Provavelmente ele é https://github.com/blasty?! Não sei.
Com uma pequena ajuda de https://github.com/daimoniac
gcc -Wall cve-2021-4034.c -o cve-2021-4034-exploit
Altere a variável hosts em asses_CVE-2021-4034.yml conforme seu caso de uso!
ansible-playbook -i </path/to/inventory.yml> </path/to/playbooks/>asses_CVE-2021-4034.yml
O playbook copia o exploit para o host, executa-o e avalia whoami em várias ocasiões, verificando "root" como valor de retorno do exploit.
Nos hosts onde a tarefa Check result of privilege escalation falha, uma escalada de privilégio foi bem-sucedida.
No resumo do play, os hosts que não têm failed=0 estão vulneráveis.
No fundo? Não faço ideia. Misturas estranhas de memória, provavelmente.
O que é essencial para a operabilidade deste playbook anbible é https://github.com/mike-artemis/cve-2021-4034/blob/main/cve-2021-4034.c#L50. O exploit simples de https://haxx.in/files/blasty-vs-pkexec.c apenas abre um root-shell e o playbook ansible fica preso nele. Alterar o payload do exploit para
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
retorna o usuário atual. O playbook verifica o usuário quanto à escalada de privilégios e falha se isso ocorrer.