Vulnerabilidad grave en MySQL/MariaDB

Iniciado por Aryenal.Bt, Junio 13, 2012, 01:04:56 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 13, 2012, 01:04:56 AM Ultima modificación: Agosto 08, 2014, 09:29:10 PM por Expermicid
El sábado 9 de Junio  Sergei Golubchik, coordinador de seguridad de MariaDB publicaba un post en la lista OSS-SEC sobre una grave vulnerabilidad que afectaba a diferentes versiones de MySQL y MariaDB.

Se evidencia la posibilidad de autenticarse como usuario con máximos privilegios (root) únicamente realizando conexiones simultáneas, con CUALQUIER contraseña introducida como parámetro y contra un servidor vulnerable. Al cabo de un número indeterminado de intentos fallidos, el servidor aceptará la conexión y se realizará la autenticación de forma satisfactoria. Sin más. Sin shellcodes raras, sin casuísticas extrañas: únicamente tenemos que tener delante un servidor vulnerable, que cumpla con las siguientes versiones:

Son vulnerables todas las versiones de MariaDB y MySQL hasta la 5.1.61, 5.2.11, 5.3.5 y 5.5.22
NO SON vulnerables las versiones de MySQL 5.1.63, 5.5.24 y 5.6.6
NO SON vulnerables las versiones de MariaDB 5.1.62, 5.2.12, 5.3.6 y 5.5.23

Con la siguiente línea en shell script, teniendo instalada una base de datos vulnerable en el sistema local, y contando con el cliente 'mysql', se podría realizar una autenticación como usuario root sin conocer la contraseña:

Código: php
for i in `seq 1 1000`; do mysql -u root --password=blablabla -h 127.0.0.1 2>/dev/null; done


Básicamente, se ejecutará la sentencia de autenticación mediante cliente por consola (comando mysql) como usuario root (-u root) y cualquier contraseña (--password=blablabla) contra el servidor vulnerable  presente en el mismo sistema donde se ejecuta este script (-h 127.0.0.1), sin mostrar ningún mensaje de error por pantalla (2>/dev/null).

Vamos a ver el ejemplo real. Las siguientes pruebas se han realizado sobre una Fedora Core 16, con MySQL versión 5.5.21:


En primer lugar, y para este ejemplo, cambiaremos la contraseña original de MySQL para el usuario root, que antes la teníamos establecida a 'password', para que ahora sea 'SuperPassWordDeLaMuerte':


Seguidamente, salimos de la sesión de root, y nos quedamos como usuario sin privilegios, y ejecutamos la secuencia anterior, que realizará conexiones como usuario root y cualquier contraseña, programando un total de 1000 intentos. A continuación se ejecutará la consola de mysql satisfactoriamente:


Obviamente, este "ataque" ya se encuentra integrado como exploit de Metasploit Framework, permitiendo además el volcado de hashes de todos los usuarios, todo ello con el módulo mysql_authbypass_hashdump:


Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muy buena vulnerabilidad..

Lo que me pregunto es... Esto se puede hacer remoto?? o solamente es para local??

gracias!