
análisis del desbordamiento de búfer de sudo que afecta a sudo versión <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 - 'pwfeedback' Desbordamiento de búfer (PoC)
La opción pwfeedback de Sudo se puede utilizar para proporcionar retroalimentación visual cuando el usuario introduce 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 prompt estándar Password: deshabilita el eco de las pulsaciones de teclas. Aunque pwfeedback no está habilitada por defecto en la versión upstream de sudo, algunos sistemas, como Linux Mint y Elementary OS, sí la 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 mediante 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 mediante 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

Una vez confirmado 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 prompt de contraseña, lo que debería mostrar “*” mientras se escriben 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 usado en 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 es como sigue:
Añade 100 caracteres A y los canaliza hacia el comando sudo, que terminarán en el búfer del heap de pwfeedback.

Sudo entonces mostrará un fallo de segmentación ya que no sabe cómo continuar el proceso de sudo
Esto ocurre porque una vez que se inunda un búfer estático del heap, comienza 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 provocará un desbordamiento de búfer y nos dará acceso root al sistema https://www.exploit-db.com/exploits/47995
