web-dev-qa-db-ja.com

Hashcat Maskヘルプ

次の形式のwpa2パスワードに対してhashcatを実行する方法を知りたいです。

common dictionary Word . three digits . common dictionary Word

パスワードの例:

falcon.824.watchman

これは可能ですか?

1
BlackDarwin

私の知る限り、単純なhashcatではそれを行うことができません(回避策はありますが、以下を参照してください)。最も近いのはCombinator攻撃です。

hashcat64 -m X -a 1 hash dict.txt dict.txt 

これにより、2つの辞書のすべての単語が結合されます(ここでは、両側で同じ辞書が使用されます)。これはいいですが、間にあるドットと数字はまだありません。それらは--rule-left--rule-rightを使用して追加できるため、たとえば、その間の数が824であることがわかっている場合は、次のようにすることができます。

hashcat64 -m X -a 1 --rule-left='$. $8 $2 $4 $.' hash dict.txt dict.txt 

ただし、ルールセット全体を渡す方法はありません。これは、3桁の可能なすべての組み合わせを試す必要があるためです。

ソリューション

幸いにも、この問題に直面するのはあなただけではないので、解決策が開発されました: comboleetor

Comboleetorを使用すると、非常に柔軟な方法でワードリスト、数値、句読点を組み合わせて、ディスクに格納したり、ディクショナリモードでハッシュキャット(-a 0)にパイプしたりできる大きなワードリストを生成できます。 Comboleetorオプションは、stdinを介して特定の文字列を渡すことによって、および2つの特定のファイル(blocks.txtおよびnumbers.txt)を渡すことによって定義されます。

Comboleetorの例(ファイル内のコメントは省略):

test@test:~/comboleetor$ cat blocks.txt
falcon
watchman

test@test:~/comboleetor$ cat numbers.txt
%03d
840-849

test@test:~/comboleetor$ echo 'BNB' | Perl comboleetor.pl
watchman
watchman840
watchman840watchman
watchman840falcon
watchman841
watchman841watchman
watchman841falcon
watchman842
...

この例は、単語と数字の特定のパターンに基づいてパスワード候補を生成する方法を示しています(ここで、数字は0で埋められた3文字として印刷されるようにフォーマットされ、単語リストはfalconwatchman)。ここで、間にドットを追加するだけで済みます。残念ながら、Combooleetorで使用される句読文字を、ブロックと番号を指定できるのと同じ方法で指定する方法はありません。 Comboleetorは、コード自体で定義されているさまざまな特殊文字を使用します(comboleeter.pl):

my %punct = (
#  '00sp'  => ' ',
#  '01ex'  => '!',
#  '02dq'  => '"',
#  '03ha'  => '#',
#  '04do'  => '$',
#  '05pc'  => '%',
#  '06am'  => '&',
#  '07sq'  => '\'',
#  '08lp'  => '(',
#  '09rp'  => ')',
#  '10fu'  => '*',
#  '11pl'  => '+',
#  '12cm'  => ',',
#  '13da'  => '-',
  '14pd'  => '.',
#  '15fs'  => '/',
#  '16co'  => ':',
#  '17sc'  => ';',
#  '19la'  => '<',
#  '19eq'  => '=',
#  '20ra'  => '>',
#  '21qu'  => '?',
#  '22at'  => '@',
#  '23rb'  => '[',
#  '24bs'  => '\\',
#  '25lb'  => ']',
#  '26ca'  => '^',
#  '27un'  => '_',
#  '28bt'  => '`',
#  '29lc'  => '{',
#  '30pi'  => '|',
#  '31rc'  => '}',
#  '32ti'  => '~',
  );

上記の抜粋は、単語リストのサイズをできるだけ制限するために、ドットを除くすべての句読文字にコメントを付ける方法を示しています。これを行った後、ブロック、句読点、数字、句読点、およびブロックの組み合わせを指定することで、サンプルの単語リストを生成できます。

test@test:~/comboleetor$ echo 'BPNPB' | Perl comboleetor.pl     
falcon
falcon.
falcon.840
falcon.840.
falcon.840.falcon
falcon.840.watchman
falcon.841
falcon.841.
falcon.841.falcon
falcon.841.watchman
falcon.842
falcon.842.
falcon.842.falcon
falcon.842.watchman
falcon.843
falcon.843.
falcon.843.falcon
falcon.843.watchman
falcon.844
falcon.844.
falcon.844.falcon
falcon.844.watchman
falcon.845
falcon.845.
falcon.845.falcon
falcon.845.watchman
falcon.846
falcon.846.
falcon.846.falcon
falcon.846.watchman
falcon.847
falcon.847.
falcon.847.falcon
falcon.847.watchman
falcon.848
falcon.848.
falcon.848.falcon
falcon.848.watchman
falcon.849
falcon.849.
falcon.849.falcon
falcon.849.watchman
watchman
watchman.
watchman.840
watchman.840.
watchman.840.falcon
watchman.840.watchman
watchman.841
watchman.841.
watchman.841.falcon
watchman.841.watchman
watchman.842
watchman.842.
watchman.842.falcon
watchman.842.watchman
watchman.843
watchman.843.
watchman.843.falcon
watchman.843.watchman
watchman.844
watchman.844.
watchman.844.falcon
watchman.844.watchman
watchman.845
watchman.845.
watchman.845.falcon
watchman.845.watchman
watchman.846
watchman.846.
watchman.846.falcon
watchman.846.watchman
watchman.847
watchman.847.
watchman.847.falcon
watchman.847.watchman
watchman.848
watchman.848.
watchman.848.falcon
watchman.848.watchman
watchman.849
watchman.849.
watchman.849.falcon
watchman.849.watchman

このワードリストは、ディスクに保存するか、ハッシュキャットにリダイレクトできます。明らかに、実際の辞書および999までのすべての数値を使用する場合、この単語リストは簡単に巨大になるため、パイプを使用する方がよいでしょう。さらに、ご覧のように、これはパターンと完全には一致しないかなりの数の候補(たとえば、watchman.849.のような候補)を生成しますが、これは要件に最も近い可能性があります。

1
TheWolf

これらのhashcatコマンドは、必要なパスワードを生成します。

hashcat64.exe -a 6 dict.txt .?d?d?d. --stdout > stdout.txt
hashcat64.exe -a 1 stdout.txt dict.txt --stdout

最初のコマンドは ハイブリッド辞書+マスク攻撃 を使用して、ワードリスト(dict.txt)からファイルstdout.txtへのパスワードを生成し、最後にドット、3桁、ドットを組み合わせます。

2番目のコマンドは Combinator Attack を使用して、stdout.txtから生成されたパスワードを再度ワードリストに結合し、必要なパスワードを取得します。

したがって、パスワードで WPA2 を解読するには、次のようなコマンドを使用します。

hashcat64.exe -a 1 -m 2500 hashcat.hccapx stdout.txt dict.txt

enter image description here