0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Hashcat の攻撃モード解説— パスワード解析は「総当たり」だけじゃない

0
Posted at

はじめに

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

のような候補が生成されます。

向いているケース:

  • password123
  • admin01
  • hello2024 のようなパターン

6. ハイブリッド攻撃(マスク + 辞書)(-a 7)

概要:
今度は辞書の単語の前に、マスクで指定した文字列を付けます。

例:
「4桁の年号 + 単語」の場合:

hashcat -a 7 -m 1000 hashes.txt ?d?d?d?d rockyou.txt

生成例:

2024password
2023admin

向いているケース:

  • 年号 + パスワード
  • 固定の接頭辞 + 単語

実戦でのおすすめ順序

効率よく解析するなら、次の順番が定番です。

  1. 辞書 + ルール(-a 0 + -r)
  2. ハイブリッド攻撃(-a 6 / -a 7)
  3. マスク攻撃(-a 3、形式が分かっている場合)
  4. 最後の手段として総当たり

まとめ

Hashcat の攻撃モードは、

「人間がどんなパスワードを作りがちか」を再現するための戦略の集合

と言えます。

  • 辞書・ルール:人間の“ありがちな改変”を突く
  • ハイブリッド:単語 + 数字・記号の現実的なパターンを突く
  • マスク攻撃:形式が分かっている場合に最大効率を出す

単に計算力で殴るのではなく、
「人間のクセ」を読むことが、Hashcat を使いこなすコツです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?