Hashcat活用!色々なパスワード解析方法

hashcatでパスワード解析開発
Arek SochaによるPixabayからの画像

※この記事にはプロモーションが含まれています。

ツールHashcatには、様々な種類のデータを解析するモードが備わっています。今回は、パスワード忘れ時等に利用できる、色々な種類のパスワードを解析する手順を紹介します。

スポンサーリンク
スポンサーリンク

はじめに

概要

下記ファイルのパスワードを入手する手順を紹介します。手順紹介が主なので、パスワード自体は簡易なものを設定し、ブルートフォース攻撃にて解析します。ハッシュの取得には、John Ripper系のツールを利用します。

  • ツール7-zipで暗号化形式をAES-256に設定したzipファイル
  • ツール7-zipで暗号化した7zファイル
  • Ansible Vaultでvault id指定無しで暗号化したymlファイル
  • LibreOffice7.0Writerのパスワード保護したODFファイル

環境構築

環境は、John Ripper系ツール使用にKali Linux、Hashcat動作にWindows 10を使用しています。構築手順の詳細は、GPUでZipパスワード解析!当然爆速およびHyper-VのKali Linuxを拡張セッションでを参照してください。

また、各パスワードは容易に解析できるように全て”1234“とし、hashcatのブルートフォース攻撃時に4桁数値を表す”?d?d?d?d“を設定しています。実際に解析する場合は、この辺りに工夫が必要となります。

追加モジュール

Kali Linuxに対し、追加モジュールとしてlibcompress-raw-lzma-perlをインストールしています。John Ripper系のハッシュ値取得ツールを拡充するためです。

$ sudo apt install libcompress-raw-lzma-perl -y
$ locate 7z2john

/usr/share/doc/john/README.7z2john.md
/usr/share/john/7z2john.pl

locateコマンドにて、各種ツールがインストールされたフォルダ(/usr/share/john)をチェックしています。

Zipファイル(AES)のパスワード解析

普段はZipCryptで暗号化しますが、AESで暗号化したZipファイルのパスワードを解析します。

解析ファイル準備

ツール7-Zipを使用し、アーカイブ形式zip・暗号化方式AESでzipファイルx.zipを作成します。

解析手順

Kali Linuxで、ツールzip2johnを用いてハッシュ値を抽出します。

zip2john x.zip | cut -d ":" -f 2 > hash.txt

次にHashcatでモード”WinZip(13600)”を用いて、パスワードを解析します。解析結果にパスワード”1234″が表示されています。

hashcat -m 13600 -a 3 -w 4 D:\share\Kali\hash.txt ?d?d?d?d

7zファイルのパスワード解析

7-zip暗号化ファイルのパスワードを解析します。

解析ファイル準備

ツール7-Zipを使用し、アーカイブ形式7zで7zファイルy.7zを作成します。

解析手順

Kali Linuxで、ツール7z2johnを用いてハッシュ値を抽出します。

/usr/share/john/7z2john.pl y.7z | cut -d ":" -f 2 > y.7z.hash

次にHashcatでモード”7-Zip(11600)”を用いて、パスワードを解析します。解析結果にパスワード”1234″が表示されています。

hashcat -m 11600 -a 3 -w 4 D:\share\Kali\y.7z.hash ?d?d?d?d

Ansible Vaultファイルのパスワード解析

Ansible-Vaultで暗号化されたプレイブックymlファイルのパスワードを解析してみます。

ansible系ツールのインストール詳細は、Ansible AWXをインストールするを参照してください。

解析ファイル準備

ツールansible-vaultを使用し、createモードからvault-id無しの暗号ファイルz.ymlを作成します。ここで、プロンプトからパスワードの入力を求められます。

ansible-vault create z.yml

解析手順

Kali Linuxで、ツールansible2johnを用いてハッシュ値を抽出します。

/usr/share/john/ansible2john.py z.yml | cut -d ":" -f 2 > ansible.hash

次にHashcatでモード”Ansible Vault(16900)”を用いて、パスワードを解析します。解析結果にパスワード”1234″が表示されています。

hashcat -m 16900 -a 3 -w 4 D:\share\Kali\ansible.hash ?d?d?d?d

LibreOfficeファイルのパスワード解析

LibreOffice Writerで暗号化したodtファイルのパスワードを解析してみます。OpenOfficeでも可能です。

解析ファイル準備

LibreOffice Writerで[ファイル] > [名前を付けて保存]で、”ODF文書”を選択、”パスワード付きで保存する”をチェックし、パスワード付きファイル777.odtを作成します。。

解析手順

Kali Linuxで、ツールlibreoffice2johnを用いてハッシュ値を抽出します。

/usr/share/john/libreoffice2john.py 777.odt | cut -d ":" -f 2 > odf.hash

もし使用しているLibreOfficeがバージョン7.xで、libreoffice2john.py使用時にエラーが出る場合、下記53行目の1行を修正してみてください。

  • 修正前:for j in range(i + 1, i + 1 + 3):
  • 修正後:for j in range(i + 1, i + 1 + 4):

次にHashcatでモード”Open Document Format (ODF) 1.2 (SHA-256, AES)(18400)”を用いて、パスワードを解析します。解析結果にパスワード”1234″が表示されています。

hashcat -m 18400 -a 3 -w 4 D:\share\Kali\odf.hash ?d?d?d?d

まとめ

HashcatおよびJohn the Ripper系のツールを正しく使うと、パスワード忘れ等の絶望的な状況を助けてくれて、非常に有用です。また、コンピューターの性能も上がっており、GPUを組み合わせることで、早く簡単に解析できる環境も整いつつあります。

これらの使い方を覚えておけば、万が一に備えることができると思います。

以上、Hashcatを活用して色々なパスワードを解析する方法の紹介でした。

コメント