Kali Linux 2024.2 をインストールして John the Ripper でパスワードリカバリするまでの備忘録的な何か
こんにちは。
夢は白いハッカー
システムソリューション部のかわです。
ずっとやろうやろうと思って寝かせていた、Kali Linux をやっと触るようになったので、備忘録がてらに残そうと思います。
今回は Windows マシン内に、仮想マシンとしてインストールするところから、おまけとして John the Ripper を使って、パスワードリカバリするところまで書きます。
環境
Windows 11 Pro
(*isoファイルを動かせる仮想環境は整っているものとします)
ダウンロード
公式サイトからイメージを持ってきます。4GBくらいあるので少し待ちます。
https://www.kali.org/get-kali/#kali-installer-images
今回は 64bits 版、recommended になっていた完全なイメージをダウンロードしてみます。
Kali Purple も気になるので今度試してみようと思います。
https://gitlab.com/kalilinux/kali-purple/documentation/-/wikis/home
インストール
仮想マシンとして起動してくれば、基本的には以下手順に沿ってプロンプトを進めるだけ。
GUI なのでとても簡単です。
https://www.kali.org/docs/installation/hard-disk-install
システム要件については以下を参照されたし。
https://www.kali.org/docs/installation/hard-disk-install/#system-requirements
下記引用ですが、GUI ベースで基本的な使い方だけなら RAM は 2GB、ディスクスペースは 20GB 程度あれば問題なさそう。
On the low end, you can set up Kali Linux as a basic Secure Shell (SSH) server with no desktop, using as little as 128 MB of RAM (512 MB recommended) and 2 GB of disk space.
On the higher end, if you opt to install the default Xfce4 desktop and the kali-linux-default metapackage, you should really aim for at least 2 GB of RAM and 20 GB of disk space.
When using resource-intensive applications, such as Burp Suite, they recommend at least 8 GB of RAM (and even more if it is a large web application!) or using simultaneous programs at the same time.
今回はドキュメントの多い英語にします。このへんはポチポチで進んでいけばok
プロンプトの入力が完了したらインストールが開始されます。お茶でも飲みながら待ちます。
ダウンロードから起動まで10分そこらだったでしょうか。無事起動してきました。
学生時代、家庭科の時間にこんな柄のリュックを作った気がします。
バージョン
┌──(hamchan㉿kali)-[~/.ssh] └─$ cat /etc/os-release PRETTY_NAME="Kali GNU/Linux Rolling" NAME="Kali GNU/Linux" VERSION_ID="2024.2" VERSION="2024.2" VERSION_CODENAME=kali-rolling ID=kali ID_LIKE=debian HOME_URL="https://www.kali.org/" SUPPORT_URL="https://forums.kali.org/" BUG_REPORT_URL="https://bugs.kali.org/" ANSI_COLOR="1;31"
John the Ripper を使ってみる
Kali Linux にインストールされている機能の一部として、John the Ripper があります。
セキュリティ監査やパスワードリカバリツールとして使用できる OSS です。もちろん悪用厳禁です。
今回はこれを使って簡単なパスワードを解析してみます。
左上ドラゴンメニューからjohnを探して開きます。
ZIPファイルのパスワード解析
適当にテキストファイルを作成し、適当に「password1234」とかでパス付き圧縮します。
$ nano test.txt # 今回は本文に「test」と記入し保存 $ zip -e --password='password1234' test.zip test.txt
「/usr/share/wordlists」の配下に、パスワードのリストファイルが配置されているので、今回「rockyou.txt」を使います。
筆者環境では rockyou は gz ファイルに圧縮されていたので、一旦解凍してから使います。
$ sudo gunzip /usr/share/wordlists/rockyou.txt.gz # rockyou.txtの中身。シンプルなリスト型攻撃... $ head -10 /usr/share/wordlists/rockyou.txt 123456 12345 123456789 password iloveyou princess 1234567 rockyou 12345678 abc123 ....
圧縮ファイルを「zip2john」でファイルをハッシュ化します。
その後、その出力ファイルを解析します。
# ハッシュ化 $ zip2john test.zip > output.txt ver 1.0 efh 5455 efh 7875 Scanning for EOD... FOUND Extended local header test.zip/test.txt PKZIP Encr: 2b chk, TS_chk, cmplen=12, decmplen=0, crc=00000000 ts=3D07 cs=3d07 type=0 Skipping short file test.txt # ちなみにこんな感じでハッシュ化されてることがわかる(PKZIP形式) $ cat output.txt test.zip/test.txt:$pkzip$1*2*2*0*11*5*3bb935c6*0*42*0*11*3adc*6a1ab15b45aae616ebb971e8a7b70f7905*$/pkzip$:test.txt:test.zip::test.zip # 解析 $ john --wordlist=/usr/share/wordlists/rockyou.txt output.txt Using default input encoding: UTF-8 Loaded 1 password hash (PKZIP [32/64]) Will run 4 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status password1234 (test.zip/test.txt) # パスワードが解析されました 1g 0:00:00:00 DONE (2024-08-13 07:42) 100.0g/s 1638Kp/s 1638Kc/s 1638KC/s total90..cocoliso Use the "--show" option to display all of the cracked passwords reliably
無事(?)パスワード「password1234」が解析できました。
もちろん辞書に載っていないと解析はできませんが、ZIPファイルのパスを紛失したときに便利そうですね。
秘密鍵のパスフレーズを解析してみる
圧縮ファイルだけでなく、秘密鍵に設定したパスフレーズを忘れてしまった場合にも John the Ripper は使用できます。
繰り返しますが、もちろん悪用厳禁です。
時代に沿って ED25519 でキーを作成し、パスフレーズ(同じく「password1234」)を解析してみたいと思います。
# キーの生成。 $ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/hamchan/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): # パスフレーズを「password1234」で設定します Enter same passphrase again: Your identification has been saved in /home/hamchan/.ssh/id_ed25519 Your public key has been saved in /home/hamchan/.ssh/id_ed25519.pub The key fingerprint is: SHA256:Zf4jdBop+vjjWmnZnErvdRzwgPY8zlzSnXyv7OPJ75s hamchan@kali The key's randomart image is: +--[ED25519 256]--+ | | | . | | = o | | = + =...| | S = * =oo| | . B X = .o| | . * * B o .| | *.o o =.o.| | o+=oo oBE+| +----[SHA256]-----+ # ハッシュ値の生成 $ /usr/share/john/ssh2john.py id_ed25519 > id_25519.txt $ ls -l total 12 -rw-rw-r-- 1 hamchan hamchan 616 Aug 14 01:10 id_25519.txt -rw------- 1 hamchan hamchan 444 Aug 14 01:03 id_ed25519 -rw-r--r-- 1 hamchan hamchan 94 Aug 14 01:03 id_ed25519.pub # リストにかけます。今回は8分程度かかりました。 $ john id_25519.txt --wordlist=/usr/share/wordlists/rockyou.txt Using default input encoding: UTF-8 Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64]) Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes Cost 2 (iteration count) is 24 for all loaded hashes Will run 4 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status 0g 0:00:00:04 0.00% (ETA: 2024-08-20 11:43) 0g/s 20.86p/s 20.86c/s 20.86C/s daniela..diamond 0g 0:00:00:06 0.00% (ETA: 2024-08-21 19:53) 0g/s 20.94p/s 20.94c/s 20.94C/s carolina..david 0g 0:00:02:22 0.02% (ETA: 2024-08-23 18:51) 0g/s 20.90p/s 20.90c/s 20.90C/s lance..colton 0g 0:00:02:23 0.02% (ETA: 2024-08-23 17:57) 0g/s 20.90p/s 20.90c/s 20.90C/s blessing..roses 0g 0:00:02:40 0.02% (ETA: 2024-08-23 18:03) 0g/s 20.92p/s 20.92c/s 20.92C/s hellboy..stargirl 0g 0:00:05:22 0.04% (ETA: 2024-08-23 15:57) 0g/s 20.95p/s 20.95c/s 20.95C/s love77..random1 0g 0:00:05:23 0.04% (ETA: 2024-08-23 15:33) 0g/s 20.94p/s 20.94c/s 20.94C/s polly..3333333 0g 0:00:05:25 0.04% (ETA: 2024-08-23 15:50) 0g/s 20.95p/s 20.95c/s 20.95C/s 123456123..valley 0g 0:00:05:29 0.04% (ETA: 2024-08-23 15:18) 0g/s 20.94p/s 20.94c/s 20.94C/s bethan..blaster 0g 0:00:07:55 0.06% (ETA: 2024-08-23 14:42) 0g/s 20.93p/s 20.93c/s 20.93C/s gideon..stevens 0g 0:00:07:58 0.06% (ETA: 2024-08-23 14:38) 0g/s 20.93p/s 20.93c/s 20.93C/s cosworth..rainier password1234 (id_ed25519) # password1234が解析できました。 1g 0:00:12:37 DONE (2024-08-14 01:23) 0.001320g/s 20.92p/s 20.92c/s 20.92C/s sexyslim..moocow1 Use the "--show" option to display all of the cracked passwords reliably Session completed.
今回も無事(?)解析できました。RSA でもやり方は同じです。
本記事はあくまでもパスフレーズを忘れた際のリカバリ方法を目的としたものなので、再三になりますが悪用厳禁です。
Kali Linux はホワイトハッカー的に楽しい遊園地みたいなOSなので、また時間ができたら続きを書きたいと思います。
完