はじめに
Hashcat は、ハッシュ化されたパスワードを解析(クラッキング)するための高性能ツールです。
Hashcat の強みは 単に総当たりするだけでなく、さまざまな「攻撃モード(Attack Mode)」を使って、より効率よく候補パスワードを生成できる ことにあります。
攻撃モードは -a オプションで指定します。
違いはシンプルで、
「候補パスワードをどうやって生成するか」
がモードごとに異なります。
Hashcat の主な攻撃モード一覧
| モード | パラメータ | 名称 | 主な用途 |
|---|---|---|---|
| Straight | -a 0 |
辞書攻撃 | 既存のワードリストを使う |
| Combination | -a 1 |
組み合わせ攻撃 | 2つの辞書を連結する |
| Brute-force / Mask | -a 3 |
総当たり / マスク攻撃 | パスワードの形式が分かっている場合 |
| Hybrid dict + mask | -a 6 |
ハイブリッド攻撃(辞書 + マスク) | 単語 + 数字・記号など |
| Hybrid mask + dict | -a 7 |
ハイブリッド攻撃(マスク + 辞書) | 固定接頭辞 + 単語 |
| Rule-based | (-r使用) |
ルールベース攻撃 | 辞書の単語を変形して試す |
実際の運用では、-a 0(辞書 + ルール)、-a 3、-a 6、-a 7 が特によく使われます。
各攻撃モードの詳しい解説
1. 辞書攻撃(-a 0)
概要:
用意したワードリスト(例:rockyou.txt)に含まれる単語を、そのまま候補パスワードとして試します。
例:
hashcat -a 0 -m 1000 hashes.txt rockyou.txt
向いているケース:
- 単純な弱いパスワードが使われていそうな場合
- 過去の漏洩パスワードに含まれるような文字列が使われている場合
2. ルールベース攻撃(Rule-based)
ルールベース攻撃は、辞書攻撃に**「変形ルール」**を適用する方法です。
例えば、以下のような変形を自動で行います。
-
password→Password -
admin→admin1 -
hello→h3llo -
test→test!
例:
hashcat -a 0 -m 1000 hashes.txt rockyou.txt -r rules/best64.rule
特徴:
- 人間がよくやる「少しだけ強くしたパスワード」を再現できる
- 実戦での命中率が非常に高い
3. 組み合わせ攻撃(-a 1)
概要:
2つのワードリストを連結して候補を作ります。
例:
hashcat -a 1 -m 0 hashes.txt names.txt numbers.txt
これにより、次のような候補が生成されます。
john123
admin2024
testtest
向いているケース:
- 名前 + 数字
- 会社名 + 年号
- 単語 + 単語 のようなパターン
4. マスク攻撃 / 総当たり(-a 3)
概要:
パスワードの「形式」を指定して、その形式に合う組み合わせをすべて試します。
よく使うマスク記号:
-
?l:小文字 -
?u:大文字 -
?d:数字 -
?s:記号 -
?a:すべての文字種
例:
「大文字1文字 + 小文字3文字 + 数字2桁」の場合:
hashcat -a 3 -m 0 hashes.txt ?u?l?l?l?d?d
向いているケース:
- パスワードの長さや構造が分かっている
- PINコードやフォーマット固定のパスワード
5. ハイブリッド攻撃(辞書 + マスク)(-a 6)
概要:
辞書の単語の後ろに、マスクで指定した文字を追加します。
例:
「単語 + 数字2桁」の場合:
hashcat -a 6 -m 1000 hashes.txt rockyou.txt ?d?d
これにより:
password00
password01
admin99
のような候補が生成されます。
向いているケース:
password123admin01-
hello2024のようなパターン
6. ハイブリッド攻撃(マスク + 辞書)(-a 7)
概要:
今度は辞書の単語の前に、マスクで指定した文字列を付けます。
例:
「4桁の年号 + 単語」の場合:
hashcat -a 7 -m 1000 hashes.txt ?d?d?d?d rockyou.txt
生成例:
2024password
2023admin
向いているケース:
- 年号 + パスワード
- 固定の接頭辞 + 単語
実戦でのおすすめ順序
効率よく解析するなら、次の順番が定番です。
- 辞書 + ルール(
-a 0+-r) - ハイブリッド攻撃(
-a 6/-a 7) - マスク攻撃(
-a 3、形式が分かっている場合) - 最後の手段として総当たり
まとめ
Hashcat の攻撃モードは、
「人間がどんなパスワードを作りがちか」を再現するための戦略の集合
と言えます。
- 辞書・ルール:人間の“ありがちな改変”を突く
- ハイブリッド:単語 + 数字・記号の現実的なパターンを突く
- マスク攻撃:形式が分かっている場合に最大効率を出す
単に計算力で殴るのではなく、
「人間のクセ」を読むことが、Hashcat を使いこなすコツです。