[資安工具] 005 用 John the Ripper 破解密碼 Hash:從原理到實作全指南

🧩 前言:為什麼要學會破解 Hash?

在資訊安全領域中,密碼幾乎永遠不會以明文儲存,而是經過加密或雜湊(Hash)處理。但這並不代表完全不可逆。在滲透測試、密碼強度分析、CTF 競賽等場景中,破解雜湊值是重要技能之一。

👉 延伸閱讀:Hash 是什麼?常見演算法與攻擊手法


🧱 John the Ripper 是什麼?

John the Ripper(簡稱 John)是一款強大的開源密碼破解工具,可支援多種雜湊演算法與系統格式:

  • 常見支援:MD5、SHA1、SHA256、bcrypt、NTLM、LM…
  • 可破解 /etc/shadow 密碼、zip 檔案密碼、甚至是 Kerberos TGT Hash
  • 支援多種破解模式:字典、變形規則(rules)、暴力(incremental)

📦 版本差異

  • Community 版:基礎功能
  • Jumbo 版:支援更多演算法與 zip、rar 等模組(建議使用)

🧰 什麼時候要用 John?

使用場景 描述
滲透測試 破解獲得的 hash 值
密碼安全檢測 測試企業/使用者密碼是否易被猜出
CTF 競賽 常見 MD5、SHA1、bcrypt 題型
學習練習 建立密碼攻防觀念與技能

🧠 常見應用情境與 hash 對應

應用場景 工具搭配
Linux /etc/shadow unshadowjohn
壓縮檔破解 zip2john, rar2john 轉換
NTLM / bcrypt --format=nt, bcrypt
自製 hash 練習 openssl 產生 → john 破解

📌 查詢支援格式:

john --list=formats

🧪 破解 MD5:實作案例教學

🔹 1. 建立原始密碼

echo -n "password123" > plaintext.txt

🔹 2. 使用 OpenSSL 產生 MD5 hash

openssl dgst -md5 plaintext.txt
# MD5(plaintext.txt)= 482c811da5d5b4bc6d497ffa98491e38

🔹 3. 建立 hash 檔案

echo -n "482c811da5d5b4bc6d497ffa98491e38" > hash.txt

🔹 4. 使用預設字典破解(失敗示範)

john --format=raw-md5 hash.txt

結果輸出:

Proceeding with wordlist:/usr/share/john/password.lst
Proceeding with incremental:ASCII
0g 0:00:00:31 … Session aborted

未能成功破解,因為預設字典中無 password123

🔹 5. 使用 rockyou.txt 成功破解

john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

輸出:

password123      (?)
1g 0:00:00:00 DONE

🔹 6. 顯示破解結果

john --show --format=raw-md5 hash.txt
# 482c811da5d5b4bc6d497ffa98491e38:password123

⚙️ 常用參數與進階技巧

參數 功能說明
--format= 指定 hash 類型,如 raw-md5, nt, bcrypt
--wordlist= 指定字典檔,如 rockyou.txt
--rules 套用字典變形規則,提高命中率
--incremental 啟用暴力破解模式
--fork=4 使用多核心加速破解
--show 顯示已破解密碼與 hash
--session=xxx 儲存破解進度,支援暫停與恢復

🔐 防禦觀點:如何強化密碼安全?

  • ❌ 避免使用常見密碼(如 123456, qwerty, password123
  • ✅ 使用具備鹽值(salt)的雜湊演算法(如 bcrypt, scrypt)
  • ✅ 密碼長度至少 12 字元,混合大寫、小寫、數字、符號
  • ✅ 強制定期更改密碼與開啟多因子驗證

📚 延伸閱讀與資源


🎓 結語

破解 hash 雖然看似高深,但透過 John the Ripper 搭配正確字典,你也可以快速上手。這是一門基本功,無論是參與 CTF 還是滲透測試,都值得掌握!

🚀 下一步建議練習:
– bcrypt 雜湊破解
– zip 壓縮檔密碼爆破
– 使用自製密碼清單進行攻擊

喜歡這篇教學?歡迎留言給我更多你想學的資安工具或破解技巧,我會持續更新 🔐

飛飛
飛飛