A galera que trabalha com segurança, servidores Web e bancos de dados ficou estarrecida quando soube que era possível acessar como ROOT um banco de dados MySQL, e remotamente, com o seguinte comando:

$ for i in `seq 1 1000`; do mysql -u root –password=bad -h 127.0.0.1 2>/dev/null; done

Mas como assim ?! Um simples for  dava acesso ao MySQL ? A resposta era sim e uma série de testes foram feitos. Muita gente teve o seu banco de dados MySQL comprometido, perdendo dados e mais dados.

Empresas de hosting iniciaram algumas horas depois da divulgação da vulnerabilidade uma verdadeira operação de guerra. Vários de seus colaboradores tinham começado o processo de bloqueio remoto aos bancos de dados – Deny all 3306. Agendaram janelas de manutenção para implementação de patches de correção liberados pela Oracle – hoje, detentora do MySQL e aí começou o inferno de muita gente.

Colocar uma regra no firewall – Deny all 3306 de uma hora para outra é simples, o problema é que uma série de aplicações fazem acesso remoto ao banco. E aí, o que fazer ? Mapear IP por IP que deverá acesso o banco e isso, meus amigos, é um trabalho de corno, para o cão que chupa manga.

Validar ip por ip em uma cama de milhões é um porre, mas tivemos que fazer. O mais engraçado foi a implementação do patch, pois descobrimos uma porrada de banco em back level, e aí foi um Deus nos acuda.

Mas agora está tudo mais calma, sem grandes incidentes, mas com uma certeza – ainda tem muita vulnerabilidade tosca que será descoberta por aí e que conseguirá te dar um puta trabalho. 🙂

Compartilhar:

Este post tem 6 comentários

  1. Duvida de iniciante. O que seria um banco de dados em back level?

  2. Esse comando seria usado aonde? url do site? ssh?

    É o comando final de um exploit?

    Não entendi..

  3. Meo deos deve ter sido um inferno, ainda bem que aqui ninguém tem acesso remoto a banco de dados.

  4. Comigo isso nao funcionou, mesmo em ambientes que a função memcmp retornam inteiros fora da faixa de -128 a 127. Porque esse exploit é por conta da verificação de hash que o mysql faz.

  5. Testei aqui e o exploit não funcionou.. o que pode ser?

    Erro que da: /bin/sh: mysql: not found

    Tem que por o IP juntamente da porta?

Deixe uma resposta

Fechar Menu