John the Riperを使用してmd5ハッシュパスワードを元に戻す練習をしていて、いくつかの動作に興味がありました。 zaa
のmd5ハッシュをハッシュ付きのファイルの先頭に追加しました。john passwordFile.txt
を実行すると、ハッシュが逆転してzaa
をすばやく見つけましたが、設定するとインクリメンタルモードに...まあそれはまだ実行中です。インクリメンタルモードはどのように機能しますか?それはうまく他のパスワードを逆転させました
シルダラ
5487175a
wcjzfm
zaa
がないので、アルファベット順に表示されないようです。
更新:john
は、連続する呼び出しの間であっても(--show
オプションが指定されていない限り)同じパスワードを2回以上出力しないという事実を私は観察しました。たとえば、ワードリストが使用され、パスワードmyname123
がクラックされた場合、インクリメンタルモードでjohn
を再度実行しても、実際にはmyname123
は再び出力されません。出力するためにjohn samefile.txt --show
を実行する必要があります(クラックされたパスワードをキャッシュすると思います)。私の推論は私が観察したものからであり、別の部分は ステートメント パスワードがハッシュされない理由に答える:
ファイルで見つかったすべてのパスワードハッシュ( "--format = ..."オプションを使用していない限り、ファイルで最初に認識されたハッシュと同じタイプ)は、以前の呼び出しですでにクラックされている可能性がありますジョン
これは、増分モードでコマンドを実行しようとする1つの例です。
[dev@localhost ~]$ john --format=raw-md5 'passwords.md5 (copy).raw' --incremental
Loaded 2 password hashes with no different salts (Raw MD5 [SSE2i 10x4x3])
No password hashes left to crack (see FAQ)
次に、passwords.md5に移動して新しいハッシュを先頭に追加して再実行すると、結果が異なります
[dev@localhost ~]$ john --format=raw-md5 'passwords.md5 (copy).raw' --incremental
Loaded 1002 password hashes with no different salts (Raw MD5 [SSE2i 10x4x3])
Remaining 942 password hashes with no different salts
hi (?)
新しい(安っぽい)パスワードは 'hi'でした
John the Ripper(JtR)は既にハッシュを検出/クラックしてjohn.potファイルに保存しているため、Johnをインクリメンタルモードで実行したときにパスワードがクラックされないようになっています。 john.potファイルを空にして(ファイルを空にして)、リッパーのJohnが増分モードでハッシュをクラックするのを確認できます。
インクリメンタルモードは、ワードリストで使用するためのものではありません。インクリメンタルモードでは、小文字などの文字スペースを総当たりにすることができます。小文字のスペースの例では、ブルートフォースは1文字から始まり、すべての組み合わせを試し、2文字に移動し、パスワードが解読されるまで繰り返します。
前述のように ここ の場合、インクリメンタルモードではトライグラフの頻度を使用して、試行されたパスワードの順序に優先順位を付けます。クラックされたパスワードの統計に基づいてクラックの順序を定義する、事前に生成された「文字セット」のセットが付属しています。
文字セットは、すでに解読されたパスワードの文字の組み合わせと文字の位置に基づいて、コードによって生成されます here 次に、いくつかの追加のソートが行われます here "mostありそうな」パスワード。
例として、2つのパスワード( "123"と "abc")のみに基づいてjohn --make-charset=test.chr
で文字セットを生成し、次のように構成しました。
[Incremental:test]
File = $JOHN/test.chr
MinLen = 0
MaxLen = 6
CharCount = 7
その文字セット(john --format=raw-md5 --incremental:test passwords.md5
)を使用する場合、最初に試した20個のパスワードは次のとおりです。
1 2 3 a b c 123 abc 1bc a23 12c 1b3 ab3 a2c 11 21 1111 2111 11111 21111
ご覧のように、長さが異なると前後にスキップします。文字セットの生成に使用したパスワードの統計に基づいて、「可能性が高い」ものを最初に試行します(明らかに、パスワードが2つだけの場合は、それほど多くのことはありません)。
クラックされたパスワードに「1234」を追加して文字セットを再生成すると、最初に試行される20個のパスワードは次のようになります。
1234 1 2 3 4 a b c 123 abc 1bc a23 12c 1b3 ab3 a2c 11 21 2234 11111