ツール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
zipファイルの解析結果
7zファイルのパスワード解析
7-zip暗号化ファイルのパスワードを解析します。
解析ファイル準備
ツール7-Zipを使用し、アーカイブ形式7zで7zファイルy.7zを作成します。
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
7zファイルの解析結果
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
Ansible Vaultファイルの解析結果
LibreOfficeファイルのパスワード解析
LibreOffice Writerで暗号化したodtファイルのパスワードを解析してみます。OpenOfficeでも可能です。
解析ファイル準備
LibreOffice Writerで[ファイル] > [名前を付けて保存]で、”ODF文書”を選択、”パスワード付きで保存する”をチェックし、パスワード付きファイル777.odtを作成します。。
LibreOfficeファイルの作成
解析手順
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
LibreOfficeファイルの解析結果
まとめ
HashcatおよびJohn the Ripper系のツールを正しく使うと、パスワード忘れ等の絶望的な状況を助けてくれて、非常に有用です。また、コンピューターの性能も上がっており、GPUを組み合わせることで、早く簡単に解析できる環境も整いつつあります。
これらの使い方を覚えておけば、万が一に備えることができると思います。
以上、Hashcatを活用して色々なパスワードを解析する方法の紹介でした。
コメント