web-dev-qa-db-ja.com

Hashcat:ルールが適用された後、長さがN未満の単語を破棄する方法は?

Hashcat:ルールが適用された後、長さがN未満の単語を破棄する方法は?

私は、Wordの長さがN未満およびNより大きい場合にWordを破棄する規則<Nおよび>Nを知っています。

問題は、これらのルールがHashcatの-jまたは-kオプションを使用してのみ適用できることです。つまり、これらのルールはワードリスト自体で機能し、ルール変換された単語では機能しません。

「古い」Hashcatを使用すると、ルールファイル自体で<Nおよび>Nルールを使用できますが、GPUを使用してクラックできません...

Nより短い長さのルール変換された単語を破棄する方法に関する提案はありますか?

3
Shuzheng

答えは、ターゲットハッシュの「速度」によって異なります。

  • それが高速ハッシュ(MD5のような)である場合、大雪は大体正しい-心配する価値はない(ただし、攻撃とターゲット);

  • slow hash(bcryptのような)の場合、GPUは候補のパスワードを使い尽くさないため、候補を外部で生成することができます(オフ-GPU)あなたの攻撃を遅くすることなく。

後者の一般的な手法は、ハッシュキャットの--stdoutオプションを攻撃に使用して候補を生成し、次にhashcatをhashcatの別のインスタンスにパイプします(実際のクラッキングを行います)。

そのパイプラインに長さの要件を挿入するために、hashcat-utils len ユーティリティはこれを非常に効率的に機能させます。複雑な要件がある場合は、hashcat-utilsの req ユーティリティも非常に効率的です。

したがって、次のようにして候補を生成できます。

$ hashcat rockyou.txt -r rules/best64.rule  --stdout
123456
654321
123456
123456
1234560
1234561
1234562
1234563
1234564
1234565
[snip]

...そして、それを別のハッシュキャットにパイプします(たとえば、最小長が8、最大長が11であるという要件を想定しています)。

hashcat rockyou.txt -r rules/best64.rule  --stdout | len 8 11 | hashcat -a 3200 targets.hashes

...しかし、これは遅いハッシュの場合のみに役立つことに注意してください。

ハッシュが十分に遅い場合は、anything(Perl、Shellスクリプト、クランチなど)を使用して、好きな候補を生成およびシフトすることができます。ハッシュの速度が向上し始めたら、パイプラインをベンチマークして、GPUが不足していないことを確認します(通常、Hashcatのステータス出力に100%が表示されるはずです)。 hashcatとlenは、 hashcat-utils の他のツールと同様に非常に高速であるため、通常はそこに人を向けます。

4
Royce Williams