
PoC per cve-2021-4034
PoC per cve-2021-4034
Basato sul PoC di https://haxx.in: https://haxx.in/files/blasty-vs-pkexec.c. Probabilmente è https://github.com/blasty?! Non lo so.
Con un piccolo aiuto da https://github.com/daimoniac
gcc -Wall cve-2021-4034.c -o cve-2021-4034-exploit
Cambia la variabile hosts in asses_CVE-2021-4034.yml in base al tuo caso d'uso!
ansible-playbook -i </path/to/inventory.yml> </path/to/playbooks/>asses_CVE-2021-4034.yml
Il playbook copia l'exploit sull'host, lo esegue e valuta whoami in più occasioni, controllando che il valore restituito dall'exploit sia "root".
Sugli host in cui l'attività Check result of privilege escalation fallisce, l'escalation dei privilegi è riuscita.
Nel riepilogo del play, gli host che non hanno failed=0 sono vulnerabili.
In profondità? Non ne ho idea. Probabilmente strani miscugli di memoria.
Ciò che è essenziale per il funzionamento di questo playbook Ansible è https://github.com/mike-artemis/cve-2021-4034/blob/main/cve-2021-4034.c#L50. L'exploit semplice di https://haxx.in/files/blasty-vs-pkexec.c apre solo una root-shell e il playbook Ansible rimane bloccato al suo interno. Cambiando il payload dell'exploit in
" static char *a_argv[] = { \"bash\", \"-c\", \"whoami\", NULL };\n"
viene restituito l'utente corrente. Il playbook controlla l'utente per l'escalation dei privilegi e fallisce se questa è avvenuta.