
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
変数 hosts を asses_CVE-2021-4034.yml 内で自分のユースケースに変更してください!
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 を失敗させます。