どっかの高専生の技術備忘録

10割自分の備忘録用のブログ。

WSLにKali Linuxをインストールして、Win-KexでGUI操作するまで

やりたいこと

WSL2上にKali Linuxをインストールして、GUI操作したい。
公式のドキュメントがわかりやすいので、半ば日本語訳のような記事

目次

環境

  • OS: Windows11 Pro
  • WSL: Version2
  • Kernel version: 5.10.102.1
  • Windows Terminal: 1.14.2282.0

0. Windows Terminalのインストール

コマンドプロンプトPowerShellを同時に複数開ける多機能なターミナルソフトです。
他にも、分割表示が出来たり、WSLで新しいLinuxを入れるたびに起動用のインスタンスを自動で追加してくれたりと、詳しくは公式動画をみてみてください。
インストールはMicrosoft Storeから出来ます。
起動はスタートメニューの検索からターミナルと検索するか、Win + Rで開けるファイル名を指定して実行からwtを実行することで開けます。

0-1. Windows Terminalを規定値に設定

デフォルトのターミナルアプリをWindows Console HostからWindows Terminalへ変更出来ます。
Windows Terminalの設定画面Ctrl + ,から、 規定のターミナルアプリ を変更することで出来ます。 画像は英語環境なので、注意してください。

0-2. 管理者権限で起動する方法

起動したいシェルをCtrlを押しながらクリックで管理者として起動出来ます。ちゃんと起動できると、左上に盾のマークが表示されます。

1. WSLの有効化

既に有効化できてる人は問題ないです。また、Windows 11、Windows 10 Version 2004以降を使ってる人はそのまま次のKali Linuxのインストールに飛んじゃって大丈夫です。
ようするに、最新版のWindowsなら次へ飛んじゃって大丈夫です。

PowerShellを管理者権限で起動してください。以下のコマンドたちでWSLの有効化が出来ます。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

正常終了したら、一度再起動してください。
次に以下のコマンドを入力してください。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

正常終了したら、また再起動してください。
再起動が終わったらWSLのバージョンを2に設定します、特に理由がない限り2で大丈夫です。
詳しく知りたい人はここから

wsl --set-default-version 2

2. Kali Linuxのインストール

PowerShellを管理者権限で起動してください。 確認が出来たらKali Linuxをインストールしていきます。

wsl --install -d kali-linux

を実行すると、インストールが始まります。

数秒するとユーザー名とパスワードの設定が求められるので、入力してください

Installing Successfullyと表示されれば、インストールが完了です。

3. アップデート

インストールが出来たら、パッケージのアップデートを行います。

sudo apt update

でアップデートを行えます。

3-1. アップデートでGPG鍵関連のエラー出る場合

W: GPG error: https://ftp.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>

こういったエラーが出たら、Kali Linuxの最新版がインストールされていない可能性があります。
MS Storeからアップデートをするか、wingetコマンドでアップデートをしてから、一度インストールしたWSL上のKali Linuxを削除して、初めからやり直してください。

  1. WSL上のKali Linuxの削除 wsl --unregister kali-linux
  2. Kali Linuxのアップデート winget upgrade --id kalilinux.kalilinux

4. ツールのインストール

WSL上へのインストールを早くするために、最小構成でインストールするようです。 なので、ツール一式をインストールします。

sudo apt update && sudo apt install kali-linux-large

途中で各ツールの構成設定を聞かれるので、下に自分の設定を載せておきます。

4-1. Configuring macchanger

自動的にMACアドレスを変更するか?です、Yesを選択しました。

4-2. Configuring kismet-capture-common

ワイヤレス関連のペンテストツールであるkismetの設定です。
sudoで動作させると、バグることがあるので、kismetグループを作るそうです、Yesを選択しました。 Users to add to the kismet groupには自分のユーザー名を入力します。

3-3. Configuring wireshark-common

パケット解析ツールである、wiresharkをsudo無しに使えるようにするか?という設定です、Yesを選択しました。

4-4. Mirror sync in progress?が表示されたときの対処法

リポジトリのサーバーを別のミラーに変えると改善することがあるそうです。 以下のコマンドで、/etc/apt/sources.listのバックアップを取って、https://ftp.yz.yamagata-u.ac.jp/pub/linux/kali/へミラーを変更することができます。 ミラーはここから確認できます。

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb https://ftp.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling main non-free contrib" >> ~/sources.list
sudo mv ~/sources.list /etc/apt/

5. Win-Kexのインストールと起動

5-1. インストール

Windows上でGUIが使えるWin-Kexをインストールします。
Win-Kexのやってることは、WSL内部にVNCサーバーを作って、WSL側からTigerVNCを起動させて画面を映す、ということをしてます。
以下のコマンドでインストール出来ます。

sudo apt update && sudo apt install kali-win-kex

5-2. 起動

Win-Kexには3つのモードがあります。
初回起動時は接続パスワードの設定を求められます。view-only passwordはnoで大丈夫です。

Windowモード

仮想マシンで起動した時みたいに、VNCのウィンドウの中にKali Linuxのデスクトップが見えます。

kex --win -s -m

Enhanced Sessionモード

Windowsに標準搭載のRDPで接続するモードです、高DPIですが処理速度は劣るそうです。
また、ARMデバイスはこのモードしか使えません。
ipオプションは公式のドキュメントによると、

Note: As of the time of this writing, Windows on Arm contains a bug causing massive packet loss when using “localhost” instead of the IP address to connect to the kali container.
注意:本記事執筆時点では、Windows on Armでは、kaliコンテナへの接続にIPアドレスではなく「localhost」を使用すると、大量のパケットロスが発生するバグが含まれています。

と、書かれています。このせいで、接続のたびにパスワードが要求されます。

kex --esm --ip -s

Seamlessモード

これは、WindowsとKaliがくっついたように表示されるモードです。
Kaliのツールバーが画面上部に表示されます。

kex --sl -s

また、このモードはKaliのパネルがWindowsのメニューバーを覆いかぶしちゃう場合があるので、 パネルの設定から、自動的に隠すを有効にするか、邪魔にならないところへ移動させましょう。

5-3. ステータス確認・停止

ステータス:kex status
停止:kex --kill

5-4. Windows Terminalにインスタンスを追加

各モードごとのインスタンス(プルダウンメニュー)を追加する方法です。
ちなみに、Kaliのアイコンはここの画像をダウンロードしてきて、Windows Terminalに設定すれば、表示されます。
また、開始ディレクトリをKaliのホームディレクトリにしたい場合は//wsl$/kali-linux/home/Kaliのユーザー名と設定すれば大丈夫です。

Windowモード

Name:Kex-Window-Mode
Command line:wsl -d kali-linux kex --wtstart -s

Enhanced Sessionモード

Name:Kex-ES-Mode
Command line:wsl -d kali-linux kex --esm --wtstart -s

Seamlessモード

Name:Kex-SL-Mode
Command line:wsl -d kali-linux kex --sl --wtstart -s

6. 参考

www.kali.org

tarenagashi.hatenablog.jp