
# CVE-2021-4034(PwnKit)용 개념 증명 익스플로잇 — Polkit의 pkexec 유틸리티에 존재하는 로컬 권한 상승 취약점으로, 대부분의 Linux 배포판에 영향을 미칩니다.
Polkit PoC
Policy Toolkit(또는 Polkit)은 2009년 출시 이후로 루트 권한이 없는 공격자가 Polkit 패키지가 설치된 모든 Linux 시스템에서 쉽게 관리자 접근 권한을 얻을 수 있게 합니다. 불행히도(혹은 다행히도?) 대부분의 Linux 배포판에 기본적으로 설치되어 있어 이 취약점이 널리 퍼지게 되었습니다.
다행히도(혹은 불행히도) 이 취약점은 원격으로 악용될 수 없어 로컬 권한 상승(LPE) 취약점입니다.
Polkit는 대부분의 Linux 권한 부여 시스템의 일부입니다. 관리자 권한이 필요한 어떤 작업을 수행할 때, Polkit는 해당 작업을 실행하는 데 필요한 권한이 있는지 결정합니다. 이는 systemd(init의 대체)에 통합되어 있습니다. 실제로 Systemd는 THM에 따르면 'systemd의 sudo'라고도 불립니다.
Polkit와 상호작용할 때 pkexec(Pwnkit 취약점을 포함하는 프로그램)를 사용할 수 있습니다. 예를 들어, GUI 세션에서 pkexec로 useradd를 실행하려고 하면 자격 증명을 요청하는 창이 나타납니다. CLI에서는 다음과 유사한 결과를 얻을 수 있습니다:
user@user:~$ pkexec useradd test1
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run '/usr/sbin/useradd' as the super user
Authenticating as: user,,, (user)
Password:
당연히 Canonical은 이미 APT 패키지 관리자에 이 패키지의 패치된 버전을 출시했습니다. 일부 배포판에서 패치된 버전이 공개되지 않은 경우, 간단히 pkexec의 SUID 비트를 제거하면 됩니다.
sudo chmod 0777 'which pkexec'