事前準備
FCrackZipによるZIPファイルのパスワードを解読してみようと思います。
ZIPファイルのパスワード解読は他にもJohn the Ripper
などでも実施することが出来ます。
FCrackZipのインストール
FCrackZipは以前はKali Linuxには標準でインストールされていたようですが、現在は別途aptコマンドででインストールする必要があります。
下記コマンドを実行してインストールします。
┌──(root㉿kali)-[/home/kali/fcrack] └─# apt install fcrackzip パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 状態情報を読み取っています... 完了 提案パッケージ: wordlist 以下のパッケージが新たにインストールされます: fcrackzip アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 28.9 kB のアーカイブを取得する必要があります。 この操作後に追加で 82.9 kB のディスク容量が消費されます。 取得:1 http://ftp-srv2.kddilabs.jp/Linux/packages/kali/kali kali-rolling/main amd64 fcrackzip amd64 1.0-11 [28.9 kB] 28.9 kB を 1秒 で取得しました (34.6 kB/s) 以前に未選択のパッケージ fcrackzip を選択しています。 (データベースを読み込んでいます ... 現在 402824 個のファイルとディレクトリがインストールされています。) .../fcrackzip_1.0-11_amd64.deb を展開する準備をしています ... fcrackzip (1.0-11) を展開しています... fcrackzip (1.0-11) を設定しています ... man-db (2.11.2-2) のトリガを処理しています ... kali-menu (2023.2.3) のトリガを処理しています ...
テスト用に適当なテキストファイルを作成する
FCrackZipのテスト用に適当なテキストファイルを作成します。
┌──(kali㉿kali)-[~/fcrack] └─$ echo 1> fcrackzip_test.txt
zipコマンドの確認
zipコマンドを確認します-e
オプションを付与することで暗号化されるようです。
┌──(root㉿kali)-[/home/kali/fcrack] └─# zip -h Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008). Usage: zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] The default action is to add or replace zipfile entries from list, which can include the special name - to compress standard input. If zipfile and list are omitted, zip compresses stdin to stdout. -f freshen: only changed files -u update: only changed or new files -d delete entries in zipfile -m move into zipfile (delete OS files) -r recurse into directories -j junk (don't record) directory names -0 store only -l convert LF to CR LF (-ll CR LF to LF) -1 compress faster -9 compress better -q quiet operation -v verbose operation/print version info -c add one-line comments -z add zipfile comment -@ read names from stdin -o make zipfile as old as latest entry -x exclude the following names -i include only the following names -F fix zipfile (-FF try harder) -D do not add directory entries -A adjust self-extracting exe -J junk zipfile prefix (unzipsfx) -T test zipfile integrity -X eXclude eXtra file attributes -y store symbolic links as the link instead of the referenced file -e encrypt -n don't compress these suffixes -h2 show more help
zipコマンドを実行して圧縮する
-eオプションを付与してzipコマンドを実行します
ここではpasswd
というパスワードを指定しました。
┌──(root㉿kali)-[/home/kali/fcrack] └─# zip -e fcrack.zip fcrackzip_test.txt Enter password: Verify password: adding: fcrackzip_test.txt (stored 0%)
FCrackZipによるパスワード解析
fcrackzip コマンドの確認
FCrackZipを実行する前にどのようなオプションがあるか確認してみます。
┌──(root㉿kali)-[/home/kali/fcrack] └─# fcrackzip -h fcrackzip version 1.0, a fast/free zip password cracker written by Marc Lehmann <pcg@goof.com> You can find more info on http://www.goof.com/pcg/marc/ USAGE: fcrackzip [-b|--brute-force] use brute force algorithm [-D|--dictionary] use a dictionary [-B|--benchmark] execute a small benchmark [-c|--charset characterset] use characters from charset [-h|--help] show this message [--version] show the version of this program [-V|--validate] sanity-check the algorithm [-v|--verbose] be more verbose [-p|--init-password string] use string as initial password/file [-l|--length min-max] check password with length min to max [-u|--use-unzip] use unzip to weed out wrong passwords [-m|--method num] use method number "num" (see below) [-2|--modulo r/m] only calculcate 1/m of the password file... the zipfiles to crack methods compiled in (* = default): 0: cpmask 1: zip1 *2: zip2, USE_MULT_TAB
fcrackzip コマンドの実行
パスワード解析を実行します
┌──(root㉿kali)-[/home/kali/fcrack] └─# fcrackzip -u -v -l 6-10 fcrack.zip found file 'fcrackzip_test.txt', (size cp/uc 13/ 1, flags 9, chk b5a8) PASSWORD FOUND!!!!: pw == aaawsG
パスワードが見つかったようです。pw == passwd
と表示される想定でしたが、全く違う文字列のパスワードが見つかったと表示されています。なんでだろう?
念のためunzip
コマンドを実行してFCrackZip
が見つけたパスワード「aaawsG」を入力してみようと思います。
┌──(root㉿kali)-[/home/kali/fcrack] └─# unzip fcrack.zip Archive: fcrack.zip [fcrack.zip] fcrackzip_test.txt password: extracting: fcrackzip_test.txt
FCrackZipが見つけたパスワードで無事に解凍に成功するようです。
┌──(root㉿kali)-[/home/kali/fcrack] └─# unzip fcrack.zip Archive: fcrack.zip [fcrack.zip] fcrackzip_test.txt password: password incorrect--reenter:
ちなみにパスワードが間違っている場合は上記のように表示されます。
aaawsG
というパスワードを設定した覚えがないので、自分で設定したpasswd
で解凍できるか確認してみます。
┌──(root㉿kali)-[/home/kali/fcrack] └─# unzip fcrack.zip Archive: fcrack.zip [fcrack.zip] fcrackzip_test.txt password: replace fcrackzip_test.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y extracting: fcrackzip_test.txt
passwdでも解凍に成功したようです。
どうやら、passwd
とaaawsG
どちらでも解凍出来るようです。
まとめ
zipファイルのパスワードを忘れた際など最終手段として使えるかもしれません。 今回の検証はちょっと謎な結果になりましたが、一旦以上とします。