はじめに

Macユーザーならおなじみのディスクイメージファイル、.dmg形式のファイルは、アプリケーションやその他のコンテンツを配布するためによく使われます。これらのファイルにはパスワード保護がかけられていることがあり、パスワードを忘れてしまった場合、アクセスできなくなることがあります。そんなときに役立つのが、John the Ripper(JtR)とそのサブツールdmg2johnです。このブログでは、dmg2johnを使って.dmgファイルのパスワードをクラックする手順を詳しく説明します。

事前準備

まずは、John the Ripperをインストールしましょう。John the Ripperは、さまざまなハッシュをクラックするための強力なツールで、dmg2johnもこのパッケージに含まれています。

Linux(Debian系)の場合

sudo apt-get update
sudo apt-get install john

macOS(Homebrewを使用)の場合

brew install john

Windows 10の場合

Windows 10では、まずWSL(Windows Subsystem for Linux)を有効にして、Linux環境でJohn the Ripperをインストールすることをお勧めします。以下の手順でWSLをセットアップし、John the Ripperをインストールします。

  1. WSLを有効にする:
    管理者権限でPowerShellを開き、以下のコマンドを実行します。

    wsl --install
    

    このコマンドにより、WSLとUbuntuのインストールが開始されます。インストールが完了したら、再起動します。

  2. Ubuntuのセットアップ:
    再起動後、Ubuntuを起動し、初期セットアップを完了します。

  3. John the Ripperをインストールする:
    Ubuntuターミナルで以下のコマンドを実行してJohn the Ripperをインストールします。

    sudo apt-get update
    sudo apt-get install john
    

dmg2johnの確認

インストールが完了したら、dmg2johnが正しくインストールされているか確認します。以下のコマンドでJohn the Ripperのテストを行い、dmg2johnが含まれているか確認します。

john --test | grep "dmg2john"

dmg2johnの使用方法

それでは、具体的な手順に進みましょう。ここでは、実際の.dmgファイルを例にとって、パスワードクラックの方法を説明します。

ステップ1: .dmgファイルからハッシュを抽出する

まず、dmg2johnを使って.dmgファイルからパスワードハッシュを抽出します。このハッシュをJohn the Ripperでクラックします。

dmg2john /path/to/your/file.dmg > hash.txt

このコマンドにより、指定した.dmgファイルからパスワードハッシュが抽出され、hash.txtというファイルに保存されます。

ステップ2: John the Ripperでハッシュをクラックする

次に、John the Ripperを使って抽出したハッシュをクラックします。

john hash.txt

このコマンドを実行すると、John the Ripperはhash.txtに含まれるハッシュをクラックし始めます。

ステップ3: クラックの進行状況を確認する

John the Ripperはクラックの進行状況を自動的に表示しますが、手動で確認したい場合は以下のコマンドを使います。

john --status

このコマンドにより、現在の進行状況が表示されます。

ステップ4: クラックされたパスワードを確認する

パスワードが見つかると、John the Ripperは結果を表示します。クラックされたパスワードを手動で確認するには、以下のコマンドを使います。

john --show hash.txt

このコマンドにより、hash.txtに含まれるハッシュに対応するパスワードが表示されます。

パスワードリストの生成方法

パスワードクラックを効率的に行うために、パスワードリスト(ワードリスト)を使用することが一般的です。ここでは、rockyou.txtなどの既存のワードリストを使用する方法と、カスタムワードリストを生成する方法を説明します。

既存のワードリストを使用する

既存のワードリストとして有名なrockyou.txtがあります。これは多くのクラックツールで使用されています。John the Ripperと組み合わせて使用する方法は以下の通りです。

  1. rockyou.txtのダウンロード:
    多くのLinuxディストリビューションでは、rockyou.txtがパッケージに含まれています。以下のコマンドでインストールできます。

    sudo apt-get install john-data
    

    また、/usr/share/john/rockyou.txt.gzのように圧縮されている場合もあります。この場合は解凍します。

    gzip -d /usr/share/john/rockyou.txt.gz
    
  2. John the Ripperでワードリストを指定してクラック:

    john --wordlist=/usr/share/john/rockyou.txt hash.txt
    

カスタムワードリストを生成する

自分でカスタムワードリストを生成する場合、以下のようなツールを使います。

  1. Crunchを使う:
    Crunchは、指定したパターンに基づいてワードリストを生成するツールです。

    sudo apt-get install crunch
    
  2. Crunchでワードリストを生成する:
    例えば、5文字から8文字までの全てのアルファベット小文字の組み合わせを生成するには、以下のコマンドを使用します。

    crunch 5 8 abcdefghijklmnopqrstuvwxyz -o custom_wordlist.txt
    

パスワードの長さや複雑さを設定する

John the Ripperでは、パスワードの長さや複雑さを制御するために様々なオプションを使用できます。

パスワードの長さを設定する

例えば、最小6文字、最大8文字のパスワードを対象とするには、以下のように設定します。

john --min-length=6 --max-length=8 hash.txt

複雑さを設定する

パスワードに特定のパターンや文字セットを使用する場合、以下のようなオプションを使用します。

  • 単純なマスクを使用:
    例えば、数字4桁のパスワードのみを試す場合:

    john --mask=?d?d?d?d hash.txt
    
  • 複雑なマスクを使用:
    例えば、1文字目が大文字、2文字目が小文字、3文字目が数字、4文字目が特殊文字の場合:

    john --mask=?u?l?d?s hash.txt
    

まとめ

dmg2johnとJohn the Ripperを使えば、.dmgファイルのパスワードをクラックすることが可能です。既存のワードリストを使用したり、カスタムワードリストを生成したり、パスワードの長さや複雑さを設定することで、クラックの効率を上げることができます。しかし、パスワードクラックは倫理的・法的に問題となる場合があるため、必ず自身がアクセス権を持つファイルに対してのみ行うようにしてください。忘れてしまったパスワードを思い出すための正当な手段として、このツールを活用しましょう。

このブログが、dmg2johnとJohn the Ripperを使って.dmgファイルのパスワードをクラックする方法を理解するのに役立てば幸いです。技術的なスキルを活用して、データアクセスの問題を解決する一助となればと思います。