パスワード保護された RAR アーカイブのクラック

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、パスワードで保護された RAR アーカイブをクラックするプロセスを学びます。これは、ペネトレーションテストやデジタルフォレンジックにおいて一般的なタスクです。Linux で利用可能な強力で業界標準のツールを組み合わせて使用します。アーカイブの作成にはrar、アーカイブからハッシュを抽出するにはJohn the Ripperスイート(特にrar2john)、そしてハッシュをクラックして元のパスワードを明らかにするにはHashcatを使用します。

このプロセスには、サンプル保護ファイルを作成し、そのパスワードハッシュを抽出し、クラッキングツールに適切なハッシュタイプを特定し、最後に辞書攻撃を実行してパスワードを見つけることが含まれます。この実践的な演習により、パスワードクラッキングの仕組みに関する基本的な理解が得られます。

パスワード保護された RAR ファイルを作成する

このステップでは、パスワードで保護された RAR アーカイブを作成します。これは、パスワードクラッキングの実験のターゲットとなります。rarコマンドラインツールを使用します。ラボ環境では、現在のディレクトリ/home/labex/projectsecret.txtという名前のサンプルファイルが既に作成されています。

まず、rarコマンドを使用してアーカイブを作成します。aオプションは「アーカイブに追加」を意味し、-pスイッチはパスワードを直接指定するために使用されます。この実験ではパスワードとしてlabexを使用します。

secret.txtファイルを含むsecret.rarという名前のパスワード保護されたアーカイブを作成するために、ターミナルで以下のコマンドを実行してください。

rar a -plabex secret.rar secret.txt

ファイルが追加され、アーカイブが作成されていることを示す出力が表示されます。

RAR 6.12   Copyright (c) 1993-2022 Alexander Roshal   17 May 2022
Trial version             Type 'rar -?' for help

Evaluation copy. Please register.

Creating archive secret.rar

Adding    secret.txt                                                      OK
Done

次に、ls -lコマンドを使用して、プロジェクトディレクトリにsecret.rarファイルが作成されたことを確認してください。

ls -l
total 12
-rw-r--r-- 1 labex labex  338 Dec 05 10:30 secret.rar
-rw-r--r-- 1 labex labex   25 Dec 05 10:28 secret.txt
-rw-r--r-- 1 labex labex   29 Dec 05 10:28 wordlist.txt

これで、この実験のターゲットファイルを正常に作成しました。

rar2john を使用して RAR ファイルからハッシュを抽出する

このステップでは、John the Ripper スイートのユーティリティである rar2john を使用して、secret.rar ファイルからパスワードハッシュを抽出します。Hashcat のようなクラッキングツールは、RAR ファイルを直接処理することはできません。パスワードの検証に必要な情報を含む特定のハッシュ形式が必要です。rar2john はこの目的のために設計されています。

secret.rar ファイルを処理するために、以下のコマンドを実行してください。

rar2john secret.rar

コマンドはターミナルに長い文字列を出力します。この文字列がハッシュです。

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

このハッシュには、アーカイブのソルト、暗号化されたデータ、およびクラッキングプロセスに必要なその他のメタデータが含まれています。使用を容易にするために、このハッシュをテキストファイルに保存するのがベストプラクティスです。

出力リダイレクション (>) を使用して、ハッシュを rar_hash.txt という名前のファイルに保存します。

rar2john secret.rar > rar_hash.txt

このコマンドは、出力がファイルにリダイレクトされているため、目に見える出力は生成されません。cat コマンドを使用して、ファイルが作成され、ハッシュが含まれていることを確認できます。

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

これで、パスワードクラッキングツールが理解できる形式で RAR ハッシュを取得できました。

RAR3-hp または RAR5 の正しいハッシュモードを特定する

このステップでは、ハッシュをクラックする際に Hashcat で使用する正しいモードを特定します。Hashcat は数百種類のハッシュタイプをサポートしており、モード番号を使用して正しいものを指定する必要があります。

抽出したハッシュは $RAR3$*... で始まります。このプレフィックスは、使用されている RAR 暗号化のタイプを示します。Hashcat で対応するモードを見つけるには、ヘルプメニューを検索できます。

以下のコマンドを使用して、すべての Hashcat モードをリストし、「RAR」に関連するものをフィルタリングします。grep-i フラグは、検索を大文字小文字を区別しないようにします。

hashcat --help | grep -i "RAR"

出力には、Hashcat がサポートするさまざまな RAR モードが表示されます。

...
12500 | RAR3-hp                                      | Archives
13000 | RAR5                                         | Archives
...

出力から、主に 2 つのモードを確認できます。

  • RAR3-hp 用の 12500
  • RAR5 用の 13000

ハッシュは $RAR3$ で始まるため、使用する正しいモードは 12500 です。正しいハッシュモードを特定することは、クラッキングを成功させるための重要なステップです。

アタック用のハッシュと単語リストを準備する

このステップでは、クラッキング試行に必要なファイルを準備します。これから行う辞書攻撃(dictionary attack)には、主に 2 つの入力が必要です。それは、クラック対象のハッシュを含むファイルと、単語リスト(潜在的なパスワードを含むファイル)です。

ハッシュを rar_hash.txt に保存することで、最初の部分はすでに完了しています。その内容を簡単に確認しましょう。

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

次に、単語リストが必要です。この実験(lab)では、セットアッププロセス中に wordlist.txt という名前のシンプルな単語リストが用意されています。実際のシナリオでは、有名な rockyou.txt のような、はるかに大きな単語リストを使用します。用意された小さな単語リストの内容を見てみましょう。

cat wordlist.txt
password
123456
labex
secret

ご覧のとおり、単語リストには、正解である labex を含む、いくつかの一般的なパスワードが含まれています。ハッシュファイルと単語リストの両方が準備できたので、これでアタックを開始する準備が整いました。

RAR パスワードを見つけるためのアタックを実行する

このステップでは、Hashcat を使用して辞書攻撃を実行します。ハッシュファイル、単語リスト、および正しいモード番号が特定されたので、必要なものはすべて揃っています。

Hashcat の辞書攻撃の基本的な構文は次のとおりです:hashcat -m <モード> <ハッシュファイル> <単語リストファイル>

それでは、モード 12500、ハッシュファイル rar_hash.txt、および単語リスト wordlist.txt を使用してコマンドを実行します。

hashcat -m 12500 rar_hash.txt wordlist.txt

Hashcat は初期化され、クラッキングセッションが開始され、単語リスト内のパスワードがハッシュに対して迅速にテストされます。一致が見つかると、プロセスは終了し、ステータスは Cracked と表示されます。

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: RAR3-hp
Hash.Target......: secret.rar
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    24211 H/s (0.01ms) @ Accel:128 Loops:128 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1
Candidate.Engine.: Optimized Kernel
Candidates.#1....: password -> secret
Hardware.Mon.#1..: Temp: 45c Fan: 30%
...

Hashcat は、クラックされたパスワードを ~/.hashcat/hashcat.potfile にある "potfile" というファイルに自動的に保存します。クラックされたパスワードを表示するには、元のコマンドに --show オプションを使用できます。

hashcat -m 12500 rar_hash.txt --show

これにより、ハッシュとその対応するクラックされたパスワードが表示されます。

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0:labex

パスワード labex は、コロンで区切られて、行の最後に表示されます。これで、RAR アーカイブのパスワードを正常にクラックしました。

まとめ

この実験(lab)の完了、おめでとうございます!パスワードで保護された RAR アーカイブをクラックするエンドツーエンドのプロセスをすべて学習しました。

この実験では、いくつかの重要なスキルを練習しました。

  • rar コマンドを使用したパスワード保護アーカイブの作成。
  • rar2john を使用した RAR ファイルからのクラック可能なハッシュの抽出。
  • Hashcat における正しいハッシュタイプとその対応するモードの特定。
  • 抽出されたハッシュと単語リストを使用した Hashcat による辞書攻撃の実行。
  • 回収されたパスワードの表示。

これらの技術は、パスワード回復およびセキュリティ監査におけるサイバーセキュリティ分野の基本的なものです。これらのスキルは、例えば、テストする明示的な許可を得ているシステムに対してのみ、倫理的かつ合法的に使用されるべきであることを覚えておくことが重要です。