最新版のダウンロード
リカバリ済みハッシュ
リカバリに成功したハッシュとパスワードは「hashcat.potfile」に記録されている。
ハッシュファイルを指定してリカバリ済みのものを確認する事もできる。
user@computer$ hashcat –show hash.txt
hash.txtの中からリカバリ済みのハッシュとパスワードが表示される。
リカバリできていないハッシュを表示するためには「–left」オプションを使う。
user@computer$ hashcat –left hash.txt
リカバリ済みハッシュを自動的に削除する
リカバリに成功したハッシュをハッシュファイルから削除するためには「–remove」オプションを使う。
user@computer$ hashcat –remove -m 1500 -a 0 hash.txt wordlist.txt
マスク
定義
定義 | 意味 | 例 |
?l | アルファベット小文字 | abcdefghijklmnopqrstuvwxyz |
?u | アルファベット大文字 | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
?d | 数字 | 0123456789 |
?s | 記号 | !”#$%&'()*+,-./:;<=>?@[\]^_`{|}~ |
?a | ?l?u?d?sと同じ | – |
?b | 16進数 | 0x00 – 0xff |
マスクは定義の組み合わせで指定する。
マスク指定の際にシングルクォートが必要かどうかはOSによって異なります。Unix系OSでは 「?」 をエスケープするためにシングルクォートが必要ですが、Windowsの場合はシングルクォートを文字列として扱ってしまう事があるため注意が必要です。
アルファベット小文字 7文字 + 数字1桁ならば次のように指定する。
‘?l?l?l?l?l?l?l?d’
アルファベット大文字/小文字 + 数字はどのようにすればいいのか?そのような場合はカスタムマスクの定義を行う。カスタムマスクは4つまで定義できる。
カスタムマスクは次のように定義する。
-1 ‘?l?u’
これでカスタムマスク(1)が定義される。
定義したマスクは「?1」のように指定する(-2 で定義すれば ?2)
user@computer$ hashcat -m 1500 -a 3 hash.txt -1 ‘?l?u’ ‘?1?1?1?1?1?1?1?d’
increment
マスクの長さを指定したい場合に使う。
たとえば ?d?d?d?d とすると数字4桁に限定されてしまう。数字を1桁ずつ増やしたい場合は次のようにする。
user@computer$ hashcat -m 1500 -a 3 hash.txt –increment ‘?d?d?d?d’
桁数を限定する事もできる。2桁~4桁にしたければ次のようにする。
user@computer$ hashcat -m 1500 -a 3 hash.txt –increment –increment-min 2 –increment-max 4 ‘?d?d?d?d’
もちろん、数字だけでなくアルファベットや記号でも同様の指定ができる。7~8桁のすべての組み合わせを試したければ次のようにする。
user@computer$ hashcat -m 1500 -a 3 hash.txt –increment –increment-min 7 –increment-max 8 ‘?a?a?a?a?a?a?a?a’
ルールの適用
予め用意されているルールファイル、あるいは自作のルールファイルを適用する事ができる。
ルールファイルは「rules」ディレクトリに収められているので、次のように適用する。
user@computer$ hashcat -m 1500 -a 0 hash.txt wordlist.txt -r rules/best64.rule
アタックモード
オプション | モード | 説明 |
0 | Straight | 辞書攻撃 |
1 | Combination | 辞書同士の組み合わせ |
3 | Brute-force | ブルートフォース |
6 | Hybrid Wordlist + Mask | 辞書+マスク |
7 | Hybrid Mask + Wordlist | マスク+辞書 |
辞書攻撃( -a 0 )
指定した辞書ファイル(ワードリスト)を使ってパスワードのリカバリを試みる。
user@computer$ hashcat -m 1500 -a 0 hash.txt wordlist.txt
辞書同士の組み合わせ( -a 1 )
2つの辞書を組み合わせて単語を生成する。
user@computer$ hashcat -m 1500 -a 1 hash.txt wordilst-1.txt wordlist-2.txt
wordlist-1.txtとwordlist-2.txtが次のような内容だった場合
- yamada
- saito
- taro
- hanako
次のような単語が生成される
- yamadataro
- yamadahanako
- saitotaro
- saitohanako
それぞれの辞書にルールを適用する事もできる。-j で1番目の辞書、-k で2番目の辞書にルールを適用する。単語は「$」になる。たとえば単語同士を「-」でつなぎたい場合は次のようにする
user@computer$ hashcat -m 1500 -a 1 -j ‘$-‘ hash.txt wordilst-1.txt wordlist-2.txt
シングルクォートが必要かどうかはOSによって異なります。Unix系OSでは $ をエスケープするためにシングルクォートが必要ですが、Windowsの場合はシングルクォートを文字列として扱ってしまう事があるため注意が必要です。
次のような単語が生成される
- yamada-taro
- yamada-hanako
- saito-taro
- saito-hanako
更に2番目の辞書にルールを適用したければ -k を使う。最後に感嘆符(!)を付けたければ次のようにする
user@computer$ hashcat -m 1500 -a 1 -j ‘$-‘ -k ‘$!’ hash.txt wordilst-1.txt wordlist-2.txt
次のような単語が生成される
- yamada-taro!
- yamada-hanako!
- saito-taro!
- saito-hanako!
ブルートフォース( -a 3 )
一部のハッシュフォーマットを除いてブルートフォースでは現実的な時間でリカバリできないので、これは最終手段となる。ブルートフォースではマスクと組み合わせて単語のパターンを限定した方が現実的な時間でリカバリできる確率が上がる。
アルファベット小文字 7文字+数字1桁とするならば次のようにする。
user@computer$ hashcat -m 1500 -a 3 hash.txt ‘?l?l?l?l?l?l?l?d’
辞書+マスク( -a 6 )
辞書ファイルの各単語に対してマスクを適用する。
wordlist.txtが次のような内容だった場合
- yamada
単語の後ろに数字4桁を付けたい場合は次のようにする
user@computer$ hashcat -m 1500 -a 6 hash.txt ‘?d?d?d?d’
次のような単語が生成される
- yamda0000
- …
- yamada9999
マスク+辞書( -a 7 )
辞書ファイルの各単語に対してマスクを適用する。
wordlist.txtが次のような内容だった場合
- yamada
単語の前に数字4桁を付けたい場合は次のようにする
user@computer$ hashcat -m 1500 -a 7 hash.txt ‘?d?d?d?d’
次のような単語が生成される
- 0000yamda
- …
- 9999yamada
ハッシュフォーマット
最新の情報は公式サイトで確認する必要がある。