
Preuve de concept pour cve-2021-4034
PoC pour cve-2021-4034
Basé sur le PoC de https://haxx.in : https://haxx.in/files/blasty-vs-pkexec.c. C'est probablement lui, https://github.com/blasty ?! Je ne sais pas.
Avec un peu d'aide de https://github.com/daimoniac
gcc -Wall cve-2021-4034.c -o cve-2021-4034-exploit
Changez la variable hosts dans asses_CVE-2021-4034.yml pour votre cas d'utilisation !
ansible-playbook -i </path/to/inventory.yml> </path/to/playbooks/>asses_CVE-2021-4034.yml
Le playbook copie l'exploit sur l'hôte, l'exécute et évalue whoami à plusieurs reprises, puis vérifie que « root » est la valeur de retour de l'exploit.
Sur les hôtes où la tâche Check result of privilege escalation échoue, une élévation de privilèges a réussi.
Dans le récapitulatif du play, les hôtes qui n'ont pas failed=0 sont vulnérables.
Au fond ? Je n'en ai aucune idée. Des mélanges de mémoire bizarres, probablement.
Ce qui est essentiel pour le fonctionnement de ce playbook Ansible est https://github.com/mike-artemis/cve-2021-4034/blob/main/cve-2021-4034.c#L50. L'exploit simple de https://haxx.in/files/blasty-vs-pkexec.c ouvre seulement un root-shell et le playbook Ansible reste bloqué dedans. Changer la charge utile de l'exploit en
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
renvoie l'utilisateur actuel. Le playbook vérifie si l'utilisateur a obtenu une élévation de privilèges et fait échouer le playbook si c'est le cas.