
análisis del desbordamiento de búfer de sudo que afecta a las versiones de sudo <1.8.26 y cómo usar GCC para compilar exploits disponibles públicamente
Análisis del CVE-2019-18634 (https://www.exploit-db.com/exploits/47995)
Sudo 1.8.25p - Desbordamiento de búfer en 'pwfeedback' (PoC)
La opción pwfeedback de Sudo se puede utilizar para proporcionar retroalimentación visual cuando el usuario está ingresando su contraseña. Por cada pulsación de tecla, se imprime un asterisco. Esta opción se añadió en respuesta a la confusión de los usuarios sobre cómo el indicador estándar de Password: desactiva el eco de las pulsaciones de teclas. Aunque pwfeedback no está habilitado por defecto en la versión upstream de sudo, algunos sistemas, como Linux Mint y Elementary OS, sí lo habilitan en sus archivos sudoers predeterminados.
Análisis
Writeup de tryhackme sobre el desbordamiento de búfer de Sudo
Análisis del CVE-2019-18634
Primero iniciamos sesión en la instancia de tryhackme a través de SSH
La vulnerabilidad ocurre porque la función pwfeedback es vulnerable a un desbordamiento de búfer en el heap. Para explotar esta vulnerabilidad, primero verificamos que la máquina tiene la versión vulnerable de sudo (sudo <1.8.26) ejecutando el comando sudo –version
Análisis del CVE-2019-18634
Primero iniciamos sesión en la instancia de tryhackme a través de SSH
La vulnerabilidad ocurre porque la función pwfeedback es vulnerable a un desbordamiento de búfer en el heap. Para explotar esta vulnerabilidad, primero verificamos que la máquina tiene la versión vulnerable de sudo (sudo <1.8.26) ejecutando el comando sudo –version

Confirmando que la máquina tiene una versión vulnerable de sudo, ahora verificamos que la función pwfeedback está presente. Esto se puede hacer de 2 maneras: invocando sudo y escribiendo cualquier cosa en el indicador de contraseña, lo que debería mostrar "*" mientras escribes caracteres para la contraseña, y la segunda forma, más técnica, es usando el comando sudo -l, pero esto también requerirá que el usuario tenga los permisos adecuados que le permitan ver información sobre sudo o poder concatenar el archivo sudoers

Ahora confirmaremos que es posible un desbordamiento de búfer utilizando el caso de prueba de exploit-db https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id ^^La línea de código anterior funciona de la siguiente manera:
Añade 100 caracteres A y canalízalos al comando sudo, que luego terminarán en el búfer del heap de pwfeedback.

Sudo entonces mostrará un error de segmentación ya que no sabe cómo continuar el proceso de sudo
Esto ocurre porque una vez que un búfer estático del heap se inunda, comenzará a inundar los registros de la CPU y el puntero de instrucción, que mantiene el flujo de la siguiente instrucción.
Podemos ejecutar el exploit, que causará un desbordamiento de búfer y nos dará acceso root al sistema https://www.exploit-db.com/exploits/47995
