レンタルサーバー/VPSのキャンペーン情報!
お見逃しなく!!

hashcatの使い方

最新版のダウンロード

hashcat.net

リカバリ済みハッシュ

リカバリに成功したハッシュとパスワードは「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と同じ
?b16進数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

アタックモード

オプションモード説明
0Straight辞書攻撃
1Combination辞書同士の組み合わせ
3Brute-forceブルートフォース
6Hybrid Wordlist + Mask辞書+マスク
7Hybrid 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

ハッシュフォーマット

最新の情報は公式サイトで確認してください。

最新のハッシュフォーマット