Cracking Password

密碼攻擊類型

1. 線上攻擊(Online Attacks)

  • 被動式線上攻擊(Passive Online Attacks)
    • 透過監聽(sniffing)網路流量來分析使用者傳送的密碼。常見工具像是Wireshark、tcpdump。
    • 如果使用者未送出密碼,或密碼傳輸過程中經過加密(例如 HTTPS、SSH),則難以成功取得。
  • 主動式線上攻擊(Active Online Attacks)
    • 攻擊者與目標系統進行直接互動,反覆嘗試猜測密碼(例如暴力破解、字典攻擊、憑證填充等)。
    • 容易被偵測,例如登入失敗紀錄、異常流量、帳號鎖定機制、速率限制(rate limiting)等
    • 遇到MFA和CAPTCHA等機制基本上是無效,除非另外對這些機制繞過

2. 離線攻擊(Offline Attacks)

攻擊者先取得密碼雜湊檔(如 /etc/shadow、資料庫 dump),再離線進行破解(使用 Hashcat、John the Ripper 等工具)。

  • 不會直接與目標系統互動,因此不易被發現。
  • 依靠目標所用的加密方式與密碼強度決定破解難度。

3. 非電子攻擊(Non-Electronic Attacks)

不透過系統入侵,而是依靠社交工程、觀察等方式取得密碼。例如觀察他人輸入密碼、電話詐騙、釣魚信件。


常見密碼攻擊方式

Passive Online Attacks

  • Wire Sniffing:監聽網路中的資料封包,試圖取得帳密等敏感資訊。
  • Man-in-the-Middle:攻擊者假冒為網關或伺服器,攔截並監聽雙方的通訊資料。
  • Replay Attacks:將已擷取的合法封包重播,以試圖重新登入或執行原本的操作。

Active Attacks

  • Password Guessing:弱密碼攻擊,使用簡單的常見弱密碼如 123456、admin 嘗試登入。
  • Dictionary Attack:使用預先準備的字典檔(常見密碼組合)來嘗試登入。
  • Brute-force Attack:嘗試所有可能的字元組合,直到破解出正確密碼。
  • Hybrid Attack:先用字典攻擊,再針對每個字典裡的詞彙加各種數字或字母進行暴力破解
  • Rule-based Attack:根據密碼建立的特定規則(如大寫在開頭、結尾加數字)來生成攻擊字串。可將少量密碼字典檔變成大量的密碼字典檔
  • Pre-computed Hashes:將常見密碼預先計算成 hash 值,再用這些值去比對資料庫或驗證系統。
  • Rainbow Attack:優化的Pre-computed Hashes,使用事先計算好的 Hash 對照表(Rainbow Table)來比對目標的 Hash 值。Rainbow Table是將所有常見密碼與其對應的 Hash 值預先計算並儲存,可大幅減少破解 Hash 的時間,但需耗費大量儲存空間。

Other Attacks

這些屬於非傳統破解方法,可能包含社交操作或物理設備監控。

  • Shoulder Surfing:也稱肩膀衝浪,在別人輸入密碼時從旁偷看。
  • Keyboard Sniffing:使用軟體或硬體記錄受害者的鍵盤輸入行為。
  • Social Engineering:透過欺騙、誘導或冒充等手法,讓使用者主動交出密碼。
  • Syllable Attack:也稱音節攻擊將單詞分解為常見音節組合,增加猜中密碼的機率。
  • Distributed Network Attack:利用多台機器平行發動密碼猜測,大幅提升速度與成功率。

大規模密碼攻擊方式

password spraying

密碼噴灑攻擊是使用單一密碼去嘗試大量不同帳號,以避開帳號鎖定或登入速率限制。

類型攻擊方式容易觸發密碼失敗多次被鎖定?適用場景
傳統暴力破解對單一帳號嘗試多個密碼容易觸發鎖定針對性破解
Password Spraying對多個帳號嘗試同一密碼難以觸發鎖定大規模掃描

Credential stuffing

憑證填充攻擊,是使用從資料外洩事件中取得的帳號密碼組合(credentials),嘗試在其他網站或系統上自動登入。攻擊流程如下

  1. 攻擊者取得一份大量外洩的帳密清單(例如來自 LinkedIn、Dropbox、Yahoo 等外洩事件)。
  2. 使用自動化工具將這些帳密組合嘗試登入其他網站(如銀行、購物、遊戲、郵件平台)。
  3. 若使用者在不同平台使用相同帳密,攻擊者就能成功登入並盜用帳號。

Default credentials

也稱預設帳號密碼攻擊,許多路由器、防火牆和資料庫等系統都有default credentials。雖然都建議管理員在設定過程中做更改,但有時它們會被保留,因此會帶來嚴重的安全風險。攻擊流程如下

  1. 廠商出廠時會預設帳號密碼,例如:
    • admin:admin
    • root:root
    • admin:123456
  2. 許多使用者安裝完設備或系統後沒有修改預設帳密。
  3. 攻擊者掃描目標設備或系統(如路由器、Web 控制台、資料庫等)。
  4. 嘗試使用公開已知的預設帳密進行登入。

常見工具:https://github.com/ihebski/DefaultCreds-cheat-sheet

ps:
預設密碼網站
www.defaultpassword.com
www.cirt.net/cgi-bin/passwd.pl
www.virus.org/default-password


常見破解工具

Hydra

  • THC-Hydra,滲透測試中爆破遠端服務帳密
  • 支援多種協議(如 FTP、SSH、HTTP、RDP、SMTP、POP3、Telnet 等)的密碼暴力破解工具。

Medusa

  • 類似於 Hydra,滲透測試中爆破遠端服務帳密
  • 支援多種協議:FTP、SSH、Telnet、HTTP、VNC、POP3、SQL 等。

John the Ripper

  • 經典 Unix/Linux 密碼破解工具
  • 支援多種 hash 格式,速度快、執行效率高

Hashcat


Password Hacking Tools

  • LCP:支援讀取 SAM, .LC, .LCS, sniff file, pwdump file 資料。支援攻擊方式:Dictionary Attack,Brute-force Attack,Hybrid Attack
  • SID&User:圖形化 sid2user 工具:適用於 Windows NT / 2000 / XP / 2003
  • Ophcrack2:使用 Rainbow Table(彩虹表)對 NTLM Hash 進行快速比對破解
  • Crack / Access PassView:破解 Microsoft Access 的資料庫密碼
  • Asterisk Logger:並非破解密碼,而是 移除密碼輸入框中的星號,顯示原始密碼
  • Chaos Generator:密碼產生器 + 可計算密碼的 hash 值,用於參考或測試
  • Asterisk Key:同樣用於顯示被 * 隱藏的密碼
  • MS Access Database Password Decoder:專門破解 .mdb 檔的密碼

Hash Extraction / Cracking Tools

  • pwdump2:支援從本機 Windows 系統的 NT SAM 資料庫擷取 Hash,可透過 DLL Injection 技術實作
  • pwdump3:類似 pwdump2,但支援 Windows 2000 並可從 遠端 擷取
  • RainbowCrack:支援自建或載入他人提供的 Rainbow Table,可進行 NTLM、MD5 等 Hash 的比對
  • KerbCrack:破解 Kerberos 認證的工具組,包含:kerbsniff攔截封包,kerbcrack離線破解 TGT/Service Ticket


密碼保護建議

  • 不要使用預設密碼(default password)
  • 不要使用可以在字典中查到的密碼(dictionary password)
  • 不要使用與主機名稱(hostname)、網域名稱(domain name)或可透過 WHOIS 查詢得知的資訊有關的密碼
  • 不要使用與個人興趣、寵物、親屬或生日等有關的密碼

Countermeasures

  • 密碼長度建議為 8~12 個字元
  • 每 30 天更換一次密碼
  • 實體隔離與保護伺服器(physically isolate and protect the server)
  • 使用 Syskey 工具(syskey utility)將密碼雜湊儲存在磁碟上(註:Syskey 在 Windows 10 之後已棄用
  • 監控日誌(log),偵測是否有暴力破解(brute force attack)的跡象
  • 使用 Stanford SRP 或 Kerberos 等安全驗證協議

不建議使用數字密碼

  • 數字密碼最簡單、好記,使用者最多
  • 因此也最容易被猜中或暴力破解
  • 建議使用大小寫字母、符號與數字混合的密碼

密碼風險緩解方式

  • Biometrics:使用生物辨識技術(如指紋、臉部辨識)
  • Smart Card:使用智慧卡進行身份驗證
  • Two-Factor Authentication (2FA):啟用雙因素驗證機制,提升安全性
  • Password Manager:使用密碼管理器來自動產生與儲存高強度密碼
  • Account Lockout Policy:設定連續輸入錯誤數次後鎖定帳戶,以阻止暴力破解

其他補充建議

  • 避免重複使用密碼,特別是在不同網站或系統中
  • 定期進行密碼安全教育,提高使用者安全意識
  • 密碼雜湊演算法建議使用 bcrypt、PBKDF2 或 Argon2


其他補充:

早期windows密碼破解策略

windows administrator password guessing
1assuming that netbios tcp139 is open
2attempting to connect to an enumerated share and trying user name/password
3default admin$,c$,%systemdrive% shares are good starting points

manual password cracking algorithm
automatic password cracking algorithm

bruteforce password寫法
for %%i in net use c$ %i /u:
ex:破解192.168.1.1的administrator的密碼
for %%i in net use 192.168.1.1c$ %i /u:administrator

tool
nat(netbios auditing tool)
smbbf(smb passive brute force tool):需在win2000下
smbcrack tool
l0phtcrack:也稱為lc4或lc5,強項在brute-force

lm,ntlm v1,ntlm v2

lm弱點
a password of less than 8 characters的hash會如下
<………………………>AAD3B435B51404EE

windows密碼保護的部份,因sam database容易被取出,建議disable lm hash
method a:
by using group policy
1 in group policy:computer configuration > windows settings > security settings > local policies > security options
2 network security:do not store lan manager hash value on next password change > ok
method b:
by editing the registry
1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
2 add key,type NoLMHash
method c:
use a password that is at least 15 characters long
ps
sam file is located at %systemroot%\system32\config

……………………..

文件破解

破解pdf工具與破解word,excel…等之類的工具不太一樣
word,excel破解是將密碼解開
pdf破解是將密碼移掉
pdf tool有abcom pdf password cracker

……………………..

sniffer password

需設定網卡為promicous mode才可sniffer

sniff smb credentials
ex:
windump -nes 0 -w C:cehfile tcp[28]=0x72 or tcp[28]=0x73 or tcp[40]=0x72 or tcp[40]=0x73

sniffer password tool
l0phtcrack
scooplm