web-dev-qa-db-ja.com

Johnによるパターン後のパスワードのクラッキング

そこで、いくつかの優れたLinuxツールを使用してパスワードを解読するのがいかに簡単かを調べています。

私たちは皆、ジョンをパスワードクラッカーとして知っており、それがどれほど素晴らしいかを知っています。しかし、パターンを指定するのはどうですか。

以下のポリシーを想定します。

  • パスワードは大文字で始まり、その後に3つの小文字が続く必要があります
  • パスワードは3つの数字で終わる必要があります
  • パスワードの長さは正確に7でなければなりません

パスワードの例:Aabc123

だから私はこれをどのように行うのか少しの手掛かりもありません。私はそれをグーグルしようとしました、しかし私のために成功またはヒントさえ作られませんでした。

これを行うようにジョンを設定する方法はありますか?

1
Daniel

あなたの最善の策は、利用可能なoclHashcatのマスクプロセッサを使用することです ここ

これを使用して、正確な仕様で単語リストを作成できます。

?u is uppercase
?l is lowercase
?d are digits

したがって、次の単語リストを作成できます。

mp64.exe ?u?l?l?l?d?d?d > wordlist.txt

そのワードリストに対してoclHashcatまたはJTRを実行すれば、問題ありません。

4
Peleus

簡単な方法の1つは、26 * 26 * 26 * 26 * 10 * 10 * 10の可能性しかないため、ワードリストを生成することです。したがって、ワードリストは約3.4 GB(パスワードあたり8バイト、7文字と改行)になります。 。

これは、どのプログラミング言語でも簡単に実行できます。たとえば、pythonの場合:

import string
uppers = string.ascii_uppercase # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
lowers = string.ascii_lowercase # 'abcdefghijklmnopqrstuvwxyz'
with open('wordlist.out', 'w') as f:
    for c1 in uppers:
        for c2 in lowers:
            for c3 in lowers:
                for c4 in lowers:
                    for d in range(1000):
                        f.write('%s%s%s%s%03d\n' % (c1, c2, c3, c4, d))

この方法では、すべてのパスワードがアルファベット順に試行されます。たとえば、最初にAaaa000、次にAaaa001、...、Aaaa999、Aaab000、Aaab001、...、Azzz999、... Baaa000のようになります。別の順序でトラバースする場合は、forループの入れ子を再配置できます。

2
dr jimbob