【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

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
567
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

かわ けん

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