コンテンツにスキップ

パスワード解析のルール

パスワード解析のルールは、単語リストの候補を変形するための指定です。大文字化、数字や記号の追加、文字の置換などを組み合わせて候補を増やします。Windows / AD では、取得した NetNTLMv2 応答や Kerberos 関連の値をオフラインで解析するときに使います。

password -> Password
password -> password1
password -> password!
summer -> Summer2026!
対象hashcat mode 例備考
NetNTLMv25600Responder などで取得する challenge-response。
Kerberoast RC4 TGS-REP13100SPN 付き account の service ticket を offline cracking する。
Kerberoast AES TGS-REP19600 / 19700AES etype の Kerberoast。
AS-REP roast18200Kerberos pre-auth 不要 account が対象。

mode は tool のバージョンで表示名が変わることがあるため、実行時は hashcat --help で確認します。

rule が効きやすいのは、人間が作った password によくある変形です。

  • 先頭大文字化: summer -> Summer
  • 年や数字の追加: Summer -> Summer2026
  • 記号の追加: Summer2026 -> Summer2026!
  • leetspeak 変換: password -> p@ssw0rd

一方、gMSA や通常の domain-joined computer account の password は長いランダム値で管理されるため、wordlist + rule で割る対象ではありません。gMSA は「割る」よりも、許可された principal として managed password を取得できるかが論点になります。

hashcat と John the Ripper のルールの違い

Section titled “hashcat と John the Ripper のルールの違い”

best64.rule などは John the Ripper 由来の有名な rule set です。hashcat でも使えることがありますが、rule の方言が完全に同じではないため、対応していない行が skip されることがあります。

hashcat -m <mode> hashes.txt wordlist.txt -r rules/best64.rule
hashcat -m <mode> hashes.txt --show

重要なのは、候補として画面に表示された文字列を cracked password と誤解しないことです。進捗表示や現在処理中の candidate に Muffin のような単語が出ても、それは成功結果とは限りません。

成功確認は次で行います。

  • hashcat --show で hash と password の対応が出るか。
  • status の Recovered が増えているか。
  • potfile に結果が保存されているか。
  • 取得した credential で実際に認証できるか。
  • Kerberoast が取れたことと、password が割れることは別問題。
  • rule は候補空間を広げるため、実行時間と GPU 負荷が増える。
  • service account は gMSA や長くランダムな password に寄せると、offline cracking の現実性を下げられる。
  • RC4 を無効化し AES を優先しても、弱い password なら offline cracking のリスクは残る。