web-dev-qa-db-ja.com

Zipファイルのパスワードハッシュを取得するにはどうすればよいですか?

私はCTFサンプルを作成していて、ファイルハッシュを提供してくれました。 JtRで実行し、サンプルのパスワードを取得しました。事は、ハッシュが私に与えられたということです。それが与えられなかった場合、そのファイルのハッシュを見つける方法はありますか?

パスワードに勝つために解決する必要がある2つのポイントがあります。 HASHおよび暗号化アルゴリズム。

私はパスワードで保護されたZipファイルを使って練習しているので、Zip 2.0か何か、または何らかのAESを使用していたと思います。Googleの助けを借りてそれを理解できます。

ただし、そのハッシュデータのZipファイルのメタデータにアクセスする方法はわかりません。これは標準なので、何かを圧縮する場合、パスワードを保存するときにアルゴリズムを含める必要はありません。ただし、ある種のハッシュが必要です。

パスワードで保護されたZipファイルの例で、これがどのように行われるかを知っている人はいますか?

私は今Macbook Proを使用しています

11
Fallenreaper

パスワードハッシュ ではない ファイルから抽出されます。リッパージョン(JtR) 本当にない これを行う。 JtRのコードをダウンロードして、それがどのように行われるかを理解できます。 Zip2johnとrar2johnを使用して.Zipファイルと.rarファイルのいわゆる「非ハッシュ」情報を取得する方法に関する小さな記事を次に示します。 http://www.cybercrimetech.com/2014/07/how- to-cracking-Zip-and-rar-protected.html

誤称を修正するために、JtRは実際にはファイルから「ハッシュを取得」しません。たとえば、rar2johnコードに記載されているように、ファイルから特定の情報を抽出します。

出力行形式:
 * 
 *「rar -hp ...」オプションで暗号化されたファイルのタイプ= 0の場合
 * archive_name:$ RAR3 $\* type\* hex (salt)\ * hex(partial-file-contents):type :: 
 :: archive_name 
 * 
 * type = 1の場合、 "rar -p。 .. "オプション
 * archive_name:$ RAR3 $\* type\* hex(salt)\ * hex(crc)\ * PACK_SIZE\* UNP_SIZE\* 0\* 
 archive_name\* offset -for-ciphertext\* method:type :: file_name 
 * 
 * or 
 * 
 * archive_name:$ RAR3 $\* type\* hex(salt )\ * hex(crc)\ * PACK_SIZE\* UNP_SIZE\* 1\* 
 hex(full encrypted file)\ * method:type :: file_name 

したがって、上記のように、「パスワードハッシュ」は抽出されません。また、ファイルが「完全に」暗号化されているとはまったく信じられません(他の人が同様の質問に答えているように)。代わりに、saltなどの重要な非暗号化および暗号化ファイルアイテムが取得され、「非ハッシュ」が生成されます。これらのアイテムは、復号化をテストするために、さまざまなパスワード推測でJtRによって使用されます。 Zipまたはrarパスワードハッシュ生成関数を使用して、 推測からのハッシュ これは、暗号鍵の値を生成するために使用されます。生成された暗号化キーの値は、暗号化されたファイルの抽出された明確な部分に対してテストするために使用されます。

つまり、JtRは「パスワードハッシュを抽出」していないため、ol-password-hash-checker-Rainbow-table-lookup-thingyに送信できますが、重要なクラッキング情報を抽出するという次善の策を実行しています。解読する手順は、基本的には次のとおりです。1)パスワード推測からハッシュが生成されます。2)復号化が成功したか失敗したか(多くの失敗)を確認するために追加の手順がいくつか追加されます。3)繰り返します。 rarのクラッキングを非常に困難にするのは、各rarファイルのソルトが異なることです。さらに重要なことに、復号化テストを実行する前に必要となる、ハッシュ変数の反復の数が大きく変動します。新しいZipプロセスは似ていますが、反復は可変ではありません。

これは、「それがどのように行われるか」の要点であり、答えは、ファイルがクラックされる直前までZipファイルの実際のパスワードハッシュを「取得しない」ことです。

質問のCTF演習の例は誤解を招くものです。与えられた「ハッシュ」は、クラッカーによる学生のクラッキングプロセスを簡略化する演習用に準備された単純なパスワードハッシュである可能性がありますOR特定のZip2john「非ハッシュである可能性があります"その結果、JtRが推測するのはかなり簡単なパスワードになりました-短い、共通、またはその両方。質問者は、どちらの方法でも検証するための「ハッシュ」または「ハッシュファイル」を提供しませんでした。

15
AtesComp

なぜハッシュが必要なのでしょうか? zipファイルは圧縮されてから暗号化されます。認証ではなく、復号化するため、ファイルにハッシュを保存する必要はありません。使用する暗号化に応じて、ファイルに保存できるのはソルトだけです。

4
Eric

どのように行われるかはわかりませんが、 リッパージョン (JtR)には、Zipファイルからハッシュを作成する小さな実行可能ファイル(Zip2john)があります。コードが開いているので、これがどのように抽出されるかを見ることができます。もちろん、ファイルがPKZIP暗号化で暗号化されていることを前提としています(そのため、WinRarで作成されたファイルでは機能しませんでした)。

7Zipで圧縮された単純なファイルと、単純なパスワードが使用され、適切なワードリストを備えたJtRがmsでクラックした単純なファイルで試してみました。 (オプションで)自由に与えられた単語リスト here がトリックを行いました。

乾杯

3
somada141