## https://sploitus.com/exploit?id=6381794A-FDDA-555D-8FD8-262117D3F2C8
# CVE-2021-4034
PoC de Polkit
## ¿En qué consiste Polkit?
Policy Toolkit (o Polkit) desde que se lanzó en 2009 permite a cualquier atacante sin permisos de root obtener de fácilmente acceso administrativo sobre cualquier sistema de Linux con el paquete de Polkit. Desafortunademente, (o no) está instalado de forma predeterminada en la mayoría de las distribuciones Linux. Con lo cual, ha hecho que esta vulnerabilidad sea extendida.
Afortunadamente, (o no) esta vulnerabilidad no se puede explotar de forma remota lo que hace que sea una vulnerabilidad de escalada de privilegios locales (LPE).
## ¿Pero qué es Polkit?
Polkit forma parte en la mayoría de los sistemas de autorización de Linux. Cuando se realiza cualquier acción que requiere un permiso administrativo. Polkit determina si tiene los permisos necesarios para poder ejecutar la acción. Está integrado en systemd (reemplazo de init). De hecho, a Systemd se le conoce como "sudo de systemd", según THM.
Cuando interactuamos con polkit podemos usar pkexec (programa que contiene la vulnreablidad Pwnkit). Como ejemplo, cuando intentamos ejecutar ```useradd``` con pkexec en una sesion GUI nos sale una ventana en la que nos pide los credenciales. En CLI podemos obtener algo similar a esto:
``` bash
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:
```
## Remedación
Obviamente, Canonical ya ha lanzado versiones parcheadas de este paquete en el administrador de paquetes APT. Si en alguna distribución no se han publicado versiones parcheadas, simplemente se elimina el bit de SUID de pkexec.
```bash
sudo chmod 0777 'which pkexec'
```