🧩 前言:為什麼要學會破解 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 |
unshadow → john |
壓縮檔破解 | 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 壓縮檔密碼爆破
– 使用自製密碼清單進行攻擊
喜歡這篇教學?歡迎留言給我更多你想學的資安工具或破解技巧,我會持續更新 🔐