John the Ripper で RAR アーカイブをクラックする

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

はじめに

この実験では、John the Ripper という強力なツールを使用して、パスワードで保護された RAR アーカイブをクラックするプロセスを探求します。RAR (Roshal Archive) は、データ圧縮、エラー回復、およびファイル スパンをサポートする独自のアーカイブ ファイル形式です。RAR ファイルは堅牢な圧縮とセキュリティ機能を提供しますが、弱いパスワードはブルート フォース攻撃に対して脆弱になる可能性があります。

John the Ripper は、無料のオープンソースのパスワード クラッキング ツールです。弱い Unix パスワードを検出するように設計されていますが、RAR アーカイブからのものを含む、さまざまなハッシュ タイプもサポートしています。この実験の終わりまでに、パスワードで保護された RAR ファイルを作成する方法、rar2john を使用してハッシュを抽出する方法、そして John the Ripper を使用してパスワードを回復しようとする方法を理解するでしょう。また、RAR アーカイブと ZIP アーカイブのクラッキングの違いについての洞察を得て、RAR ファイルを保護するためのベスト プラクティスについても学びます。

パスワードで保護された RAR ファイルの作成

このステップでは、簡単なテキスト ファイルを作成し、それをパスワードで保護された RAR アーカイブに圧縮します。この RAR ファイルは、後続のステップでのパスワード クラッキングのターゲットとして機能します。

まず、rar_test という名前の新しいディレクトリを作成し、その中に移動します。

mkdir ~/project/rar_test
cd ~/project/rar_test

次に、いくつかのコンテンツを含む secret.txt という名前のテキスト ファイルを作成します。ここでは nano を使用します。

nano secret.txt

nano エディタに次のコンテンツを入力します。

This is a secret message.
The password is 'labex'.

Ctrl+S を押してファイルを保存し、Ctrl+X を押して nano を終了します。

次に、secret.txt から secret.rar という名前のパスワードで保護された RAR アーカイブを作成します。パスワードは labex を使用します。

rar a -p labex secret.rar secret.txt

a オプションは「ファイルをアーカイブに追加する」を意味し、-p はパスワードを指定するために使用されます。次のような出力が表示されるはずです。

RAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
Shareware version         Type 'rar -?' for help

Creating archive secret.rar

Adding    secret.txt                                               OK
Done

ファイルが実際にパスワードで保護されていることを確認するために、パスワードを指定せずに抽出してみてください。

unrar e secret.rar

パスワードの入力を求められます。

UNRAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
secret.rar

Extracting from secret.rar

Enter password (will not be echoed) for secret.txt:

抽出をキャンセルするには Ctrl+C を押します。

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

このステップでは、John the Ripper スイートの一部である rar2john ユーティリティを使用して、secret.rar ファイルからパスワード ハッシュを抽出します。このハッシュは、John the Ripper がクラックを試みることができるパスワードの表現です。

まだ ~/project/rar_test ディレクトリにいることを確認してください。

cd ~/project/rar_test

次に、secret.rar ファイルに対して rar2john を実行し、その出力を rar_hash.txt という名前の新しいファイルにリダイレクトします。

rar2john secret.rar > rar_hash.txt

このコマンドは secret.rar ファイルを処理し、抽出されたハッシュを標準出力に出力し、それを rar_hash.txt に保存します。

cat を使用して rar_hash.txt ファイルの内容を表示できます。

cat rar_hash.txt

出力は次のようになります (実際のハッシュ値は異なります)。

secret.rar:$rar5$16$...

この行には、John the Ripper がパスワードのクラッキングを開始するために必要な情報が含まれています。$rar5$... という形式は、RAR5 ハッシュであることを示しています。

John the Ripper で RAR ハッシュをクラックする

このステップでは、前のステップで抽出したパスワード ハッシュをクラックするために John the Ripper を使用します。ここでは、弱いパスワードに効果的な単純な単語リスト攻撃を使用します。

まだ ~/project/rar_test ディレクトリにいることを確認してください。

cd ~/project/rar_test

John the Ripper にはデフォルトの単語リストが付属しています。この実験では、既知のパスワード (labex) を含む小さなカスタム単語リストを作成し、迅速なクラッキングを確実にします。

wordlist.txt という名前のファイルを作成し、次のコンテンツを入力します。

nano wordlist.txt

nano エディタに、各パスワードを新しい行に入力します。

password
123456
labex
john

Ctrl+S を押してファイルを保存し、Ctrl+X を押して nano を終了します。

次に、rar_hash.txt ファイルとカスタム wordlist.txt を使用して John the Ripper を実行します。

john --wordlist=wordlist.txt rar_hash.txt

John the Ripper はハッシュの処理を開始します。labex は単語リストに含まれているため、パスワードはすぐに検出されるはずです。出力には、クラックされたパスワードが表示されます。

Using default input encoding: UTF-8
Loaded 1 password hash from rar_hash.txt (RAR5)
Cost 1 (iteration count) is 262144 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
labex            (secret.rar)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s labex
Session completed.

labex (secret.rar) という行は、secret.rar アーカイブのパスワードとして labex が見つかったことを示しています。

John the Ripper が見つけて保存したクラックされたパスワードを確認することもできます。

john --show rar_hash.txt

このコマンドは、正常にクラックされ、John の内部ポッド ファイルに保存されたパスワードを表示します。

secret.rar:labex

1 password hash cracked, 0 left

これにより、John the Ripper が RAR パスワードを正常にクラックしたことが確認されます。

RAR と ZIP のクラッキングの比較

このステップでは、RAR アーカイブのクラッキングと ZIP アーカイブのクラッキングのプロセスを簡単に比較し、いくつかの主な違いを強調します。どちらの形式も圧縮に一般的ですが、暗号化メカニズムとそれらをクラックするために使用されるツールは異なる場合があります。

まず、比較のためにパスワードで保護された ZIP ファイルを作成しましょう。~/project/rar_test にいることを確認してください。

cd ~/project/rar_test

ZIP アーカイブ用の新しいテキストファイルを作成します。

nano zip_secret.txt

いくつかのコンテンツを追加します。

This is a secret message for ZIP.
The password is 'zip_pass'.

nano を保存して終了します (Ctrl+SCtrl+X)。

次に、パスワード zip_pass を使用して zip_secret.zip という名前のパスワードで保護された ZIP アーカイブを作成します。

zip -P zip_pass zip_secret.zip zip_secret.txt

-P オプションは、パスワードを直接指定するために使用されます。

  adding: zip_secret.txt (deflated 29%)

rar2john と同様に、ZIP ファイルからハッシュを抽出するための zip2john ユーティリティがあります。

zip2john zip_secret.zip > zip_hash.txt

抽出された ZIP ハッシュを表示します。

cat zip_hash.txt

出力は RAR ハッシュとは異なり、通常は zip_secret.zip:$zip$... で始まります。

zip_secret.zip:$zip2$*0*1*0*...

次に、zip_pass を含む単語リストを使用して、これをクラックしてみましょう。

nano zip_wordlist.txt

次のコンテンツを追加します。

password
zip_pass
123456

nano を保存して終了します。

john --wordlist=zip_wordlist.txt zip_hash.txt

John the Ripper は ZIP パスワードをクラックします。

Using default input encoding: UTF-8
Loaded 1 password hash from zip_hash.txt (PKZIP)
Cost 1 (iteration count) is 1024 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
zip_pass         (zip_secret.zip)
1g 0:00:00:00 DONE (2023-10-27 10:35) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s zip_pass
Session completed.

主な違い:

  • ハッシュ形式: RAR と ZIP ファイルは異なる内部暗号化およびハッシュ形式を使用しており、特定の *2john ユーティリティ (rar2johnzip2john) が必要です。
  • 暗号化強度: 最新の RAR (RAR5) 暗号化は、特に AES-256 を使用する場合、標準の ZIP 暗号化 (ZipCrypto) よりも一般的に強力であると考えられています。これは、RAR5 のクラッキングが、強力なパスワードに対して計算負荷が高く、時間のかかる可能性があることを意味します。
  • ツール: John the Ripper は両方を処理できますが、基盤となるハッシュ抽出およびクラッキング モジュールは異なります。fcrackzip のような他のツールは ZIP 専用に設計されていますが、rarcrack は RAR 専用です。

この比較は、一般的なアプローチ (ハッシュを抽出し、単語リストでクラックする) は似ていますが、異なるアーカイブ形式を処理する際の詳細は異なることを示しています。

RAR セキュリティのためのベストプラクティス

このステップでは、RAR アーカイブを保護し、簡単にクラックされないようにするためのベストプラクティスについて説明します。これらのプラクティスを理解することは、機密データを保護するために不可欠です。

この実験で secret.rar ファイルを簡単にクラックできたことは、強力なパスワードの重要性を浮き彫りにしています。RAR セキュリティのためのベストプラクティスを以下に示します。

  1. 強力でユニークなパスワードを使用する:

    • 長さ: 少なくとも 12〜16 文字以上のパスワードを目指してください。パスワードが長いほど、クラッキングは指数関数的に困難になります。
    • 複雑性: 大文字、小文字、数字、特殊文字を組み合わせて使用してください。一般的な単語、名前、または推測しやすいシーケンス(「123456」や「password」など)は避けてください。
    • ユニーク性: 異なるアカウントやアーカイブでパスワードを再利用しないでください。1 つのパスワードが侵害されても、他のパスワードは安全に保たれます。
  2. パスワードマネージャーを活用する:

    • パスワードマネージャーは、複雑でユニークなパスワードを生成して保存できるため、すべてを記憶する必要なく、上記の推奨事項に従うことが容易になります。
  3. 強力な暗号化を有効にする (AES-256 を使用した RAR5):

    • RAR アーカイブを作成する際は、デフォルトで AES-256 暗号化を使用する最新の RAR フォーマット (RAR5) を使用していることを確認してください。これは、古い RAR フォーマットや弱い暗号化アルゴリズムよりも大幅に安全です。ほとんどの最新の rar ツールは、デフォルトで RAR5 を使用します。
  4. アーカイブの近くにパスワードを保存しない:

    • アーカイブ自体の近くにあるテキストファイルや付箋にアーカイブのパスワードを保存しないでください。これはパスワード保護の目的を無効にします。
  5. アーカイブへのアクセスを制限する:

    • パスワードで保護された RAR ファイルは、アクセスが制限された安全な場所に保存してください。強力なパスワードを使用している場合でも、攻撃者がデバイスまたはネットワークへの物理的なアクセスを取得した場合、クラッキングを試みる機会が増える可能性があります。
  6. フィッシングやソーシャルエンジニアリングに注意する:

    • 攻撃者は、偽の電子メール、ウェブサイト、または直接のコミュニケーションを通じて、パスワードを漏洩させようとする可能性があります。機密情報の要求には、常に不審な目を向けてください。

これらのベストプラクティスに従うことで、RAR アーカイブのセキュリティを大幅に強化し、不正アクセスからデータを保護することができます。覚えておいてください。セキュリティチェーンの最も弱いリンクは、しばしば人間的な要素または弱いパスワードです。

まとめ

この実験では、John the Ripper を使用してパスワードで保護された RAR アーカイブをクラッキングする実践的な経験を積みました。まず、既知のパスワードを持つサンプル RAR ファイルを作成しました。次に、アーカイブのパスワード情報を John the Ripper が理解できる形式に変換する rar2john ユーティリティを使用して RAR ハッシュを抽出する方法を学びました。

その後、カスタム単語リストを使用して John the Ripper を正常にクラックし、RAR アーカイブのパスワードをクラックしました。これにより、弱いまたは一般的なパスワードで保護されたアーカイブの脆弱性が実証されました。また、RAR と ZIP アーカイブのクラッキングの違いについても検討し、異なるハッシュ形式と暗号化強度に注目しました。

最後に、この実験は RAR セキュリティのためのベストプラクティスに関する議論で締めくくられました。強力でユニークなパスワードの使用、最新の暗号化の活用、およびアーカイブに保存されている機密データを保護するための適切なセキュリティ衛生の実践の重要性が強調されました。この実験は、パスワードクラッキング技術と堅牢なパスワードポリシーの重要な必要性についての基本的な理解を提供します。