John the RipperでAxCryptファイルのパスワードを解析するための第一歩
はじめに
デジタルデータの保護は現代社会において非常に重要です。AxCryptは、ファイルを手軽に暗号化できるツールとして広く利用されています。しかし、もしパスワードを忘れてしまった場合や、セキュリティ監査の一環としてパスワード強度をテストする必要がある場合、どうすればよいでしょうか? 🤔
ここで登場するのが、John the Ripper (JtR) と、その補助ツールである axcrypt2john です。John the Ripperは強力なパスワードクラッキングツールであり、様々な種類のパスワードハッシュを解析できます。そして、axcrypt2johnは、AxCryptで暗号化されたファイルから、John the Ripperが解析できる形式のハッシュ情報を抽出するためのスクリプトです。
このブログ記事では、axcrypt2johnの基本的な使い方、John the Ripper (Jumbo版) のインストール方法、そして実際にAxCryptファイルのパスワードハッシュを抽出し、John the Ripperで解析する手順について詳しく解説します。
John the Ripper (Jumbo) のインストール
axcrypt2johnは、通常、John the Ripperのコミュニティ拡張版である「Jumbo」バージョンに含まれています。そのため、まずJohn the Ripper Jumboをインストールする必要があります。インストール方法はOSによって異なります。
Linux (Debian/Ubuntu系)
多くのLinuxディストリビューションでは、パッケージマネージャを使用してインストールできます。例えば、DebianやUbuntuでは以下のコマンドを実行します。
sudo apt update
sudo apt install john
より新しいバージョンやJumbo版の全機能を利用したい場合は、GitHubからソースコードをクローンしてコンパイルすることも可能です。
# 必要な依存関係をインストール (例: Ubuntu/Debian)
sudo apt install -y build-essential libssl-dev git zlib1g-dev
# ソースコードをクローン
git clone https://github.com/openwall/john -b bleeding-jumbo john
# コンパイル
cd john/src
./configure && make -s clean && make -sj4
# これで ../run ディレクトリに実行ファイルが生成されます
macOS
macOSでは、Homebrewを使用するのが簡単です。
brew install john-jumbo
インストール後、`john` コマンドが利用可能になります。
Windows
Windowsの場合は、John the Ripperの公式サイトやGitHubリリースページからコンパイル済みのバイナリ (zipファイル) をダウンロードするのが一般的です。
- John the Ripper公式サイト の「Download」セクションへアクセスします。
- 「John the Ripper jumbo release」またはWindows向けのバイナリを探してダウンロードします (例: `john-1.9.0-jumbo-1-win64.zip`)。
- ダウンロードしたzipファイルを任意の場所に展開します。
- 展開したフォルダ内の `run` ディレクトリに、`john.exe` や `axcrypt2john.py` などの実行ファイルが含まれています。コマンドプロンプトやPowerShellからこの `run` ディレクトリに移動してコマンドを実行します。
axcrypt2john の使い方
axcrypt2johnはPythonスクリプトとして提供されていることが多いです (`axcrypt2john.py`)。基本的な使い方は非常にシンプルです。
python /path/to/john/run/axcrypt2john.py [AxCryptで暗号化されたファイル.axx] > [出力ファイル名.hash]
または、John the Ripperの `run` ディレクトリにいる場合は、
./axcrypt2john.py [AxCryptで暗号化されたファイル.axx] > [出力ファイル名.hash]
このコマンドは、指定されたAxCryptファイル (`.axx` 拡張子を持つファイル) を読み込み、そのファイルからパスワード検証に必要なハッシュ情報を抽出します。抽出されたハッシュ情報は、John the Ripperが理解できる特定のフォーマットで標準出力に出力されます。`>` を使って、その出力をファイル (例: `axcrypt.hash`) にリダイレクト(保存)します。
出力されるハッシュ形式
axcrypt2johnが出力するハッシュの形式は、John the RipperやHashcatなどのツールで認識されるように整形されています。一般的には以下のような形式になります(バージョン等により多少異なる場合があります)。
[ファイル名]:$axcrypt$*[バージョン]*[キーファイル情報]*[データ]*...
Hashcatで利用する場合、`$axcrypt$`で始まるハッシュ部分のみが必要になることがあります。その場合、出力ファイルからファイル名部分 (`[ファイル名]:`) を削除する必要があるかもしれません。HashcatでのAxCryptハッシュタイプは `-m 13200` です。
対応するAxCryptバージョン
axcrypt2johnがどのバージョンのAxCryptファイルに対応しているかは、John the Ripper Jumboのバージョンによって変わる可能性があります。AxCryptには大きく分けてバージョン1.x (Legacy) とバージョン2.x があります。
- AxCrypt 1.x (Legacy): AES-128を使用していました。古いバージョンのJohn the Ripper Jumboでサポートされている可能性があります。
- AxCrypt 2.x: AES-256を使用しており、より強力な保護を提供します。新しいバージョンのJohn the Ripper Jumboでは、こちらにも対応している可能性があります。
最新のJohn the Ripper Jumboを使用することが、より広範なバージョンへの対応を期待できるため推奨されます。AxCrypt自体は、古いバージョンで暗号化されたファイルも新しいバージョンで復号できる互換性を持っています。
実践例: AxCryptファイルのパスワード解析
ここでは、実際にAxCryptで暗号化されたファイル (`secret.axx`) のパスワードを解析する手順を見ていきましょう。
ステップ1: ハッシュの抽出
まず、`axcrypt2john.py` を使って `secret.axx` ファイルからハッシュを抽出します。John the Ripperの `run` ディレクトリで以下のコマンドを実行します。
./axcrypt2john.py /path/to/secret.axx > axcrypt.hash
これにより、`axcrypt.hash` というファイルに、John the Ripperが解析できる形式のハッシュが保存されます。ファイルの中身を確認してみましょう。
cat axcrypt.hash
(出力例)
secret.axx:$axcrypt$*2*... (長いハッシュ文字列) ...
ステップ2: John the Ripperによるパスワード解析
次に、抽出したハッシュファイル (`axcrypt.hash`) を使って、John the Ripperでパスワード解析を実行します。John the Ripperにはいくつかの解析モードがあります。
単一クラックモード (Single Crack Mode)
ログイン名(この場合はファイル名から推測される情報)などを元に、よく使われるパスワードの変形を試す高速なモードです。
./john --single axcrypt.hash
辞書モード (Wordlist Mode)
パスワードの候補リスト(辞書ファイル)を使って解析するモードです。John the Ripperにはデフォルトの辞書 (`password.lst`) が付属していますが、より大規模な辞書(例: RockYou)を使うと成功率が上がります。
./john --wordlist=/path/to/your/password.lst axcrypt.hash
有名な辞書ファイル `rockyou.txt` を使う場合:
./john --wordlist=/path/to/rockyou.txt axcrypt.hash
インクリメンタルモード (Incremental Mode)
文字の組み合わせを総当たりで試すモードです。非常に時間がかかりますが、辞書にない複雑なパスワードも見つけられる可能性があります。
./john --incremental axcrypt.hash
ステップ3: 解析結果の確認
John the Ripperがパスワードを見つけると、通常は画面に表示されます。解析が中断された場合や、後で結果を確認したい場合は、以下のコマンドを使用します。
./john --show axcrypt.hash
(出力例)
secret.axx:CorrectPassword123: ... (その他の情報) ...
1 password hash cracked, 0 left
この例では、`secret.axx` のパスワードが `CorrectPassword123` であることがわかりました。🎉
重要な考慮事項
axcrypt2johnとJohn the Ripperを使用する際には、以下の点に注意してください。
- 法的・倫理的な側面: 前述の通り、これらのツールは許可されたファイルに対してのみ使用してください。不正アクセスは犯罪です。
- AxCryptのセキュリティ: AxCrypt自体は、パスワードを知らない限りファイルを解読できないように設計されています。パスワードを忘れた場合、AxCrypt開発元もファイルを復元することはできません。パスワードの管理は自己責任となります。
- パスワード強度: このプロセスを通じて、もし自分のパスワードが簡単に見破られてしまうことがわかったら、より強力なパスワード(長く、複雑で、推測しにくいもの)に変更することを強く推奨します。
- 代替手段: AxCryptには、パスワードの一部を覚えている場合に総当たり攻撃を試みる公式ツール `AxBruteForce.exe` も存在するようです (利用には注意が必要です)。しかし、これもパスワードが全く不明な場合には役立ちません。
まとめ
axcrypt2johnは、AxCryptで暗号化されたファイルからJohn the Ripper用のハッシュを抽出するための便利なツールです。John the Ripperと組み合わせることで、忘れてしまったパスワードの回復や、セキュリティ監査の目的でパスワード強度をテストすることが可能になります。
インストールの手順、基本的な使い方、そして実際の解析例を通じて、axcrypt2johnの活用方法を理解いただけたかと思います。ただし、これらのツールを使用する際は、常に法的な側面と倫理的な責任を念頭に置き、正当な目的でのみ利用するようにしてください。✅
安全なパスワード管理を心がけ、デジタル資産を適切に保護しましょう! 💪
コメント