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なので、また時間ができたら続きを書きたいと思います。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
8
読み込み中...
8 票, 平均: 1.00 / 18
2,757
X facebook はてなブックマーク pocket

この記事をかいた人

About the author

かわ けん

システムソリューション部所属
好奇心旺盛ポケ○ン