Tools

WSL 2 の Kali Linux で Win-KeX (kali-win-kex) を使う場合の注意点

投稿日:2020年8月21日 更新日:

1. はじめに

WSL 2 の Kali Linux では、kali-win-kex というパッケージをインストールすることにより、簡単に GUI 環境を利用することができます。これは、Win-KeX (Kali Desktop Experience for Windows) と呼ばれるアプリケーションで、Kali Linux バージョン 2020.3 から導入されました。

Win-KeX は 内部で TigerVNC を利用しています。

実際に使ってみたところ、いくつか注意点があったので本記事に記録しておきます。

Win-KeX を起動したところ

2. Win-KeX の使い方と注意点

(1) Kali Linux の導入

Microsoft Store から Kali Linux をインストールします。

このディストリビューションは、WSL 1 ではなく WSL 2 にしておきます。

導入後、PowerShell で wsl -l -v コマンドを実行すると、以下のようになっていると思います(ここでは、Ubuntu も入れています)。

PS> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  kali-linux             Running         2

(2) kali-win-kex パッケージのインストール

まずはパッケージを最新にしておきます。

$ sudo apt update
$ sudo apt upgrade

それから、kali-win-kex パッケージをインストールします。

$ sudo apt install kali-win-kex

(3) 注意事項

注意点 その1

ホームディレクトリは、/home/{username} にしておきます(何もしなければそうなっています)。/mnt/c/Users/{username} に変更してはいけません。

注意点 その2

Windows Terminal を使っている場合は、設定ファイル (C:\Users\{username}\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json) 内の、Kali Linux 用プロファイルの部分で、startingDirectory/home/{username} に指定しておきます。

"startingDirectory" : "//wsl$/kali-linux/home/{username}"

これを指定しないと、Windows Terminal は /mnt/c/Users/{username} を開始ディレクトリにしてしまいます。

(4) Win-KeX を開始する

以下のコマンドを実行すると、Win-KeX が開始され GUI が起動します。

$ kex

このとき発生しがちなエラーについて説明します。

起こりそうなエラーその1

Opening password file failed

ホームディレクトリ (/home/{username} ) にいない可能性があります。

起こりそうなエラーその2

unable to connect to socket

Win-KeX のサーバー (kex server) が既に起動されている可能性があります。

kex status コマンドでサーバーが稼働中であるか確かめることができます。以下は、サーバーが稼働している場合のコマンド実行例です。

$ kex status

Win-KeX server sessions:

X DISPLAY #     RFB PORT #      PROCESS ID
:1              5901            4926

You can use the Win-KeX client to connect to any of these displays.

このようにサーバーが稼働しているのであれば、以下のコマンドでサーバーを止めから、再度 kex コマンドを試します。

$ kex stop

(5) Win-KeX を終了する

Win-KeX によるGUIが正常に表示された場合、終了するには F8 キーを押し、[Ext viewer] を選択します。

F8 キーを押すと表示されるウィンドウ

3. ツールを一括インストールする

Kali Linux は、セキュリティに関連する多くのツールを利用するためのディストリビューションなのですが、WSL 2 に導入した時点ではツールがほとんど入っていません(インストールに時間を掛けないため)。

セキュリティツールをまとめて導入するには、以下のコマンドを実行します。

$ sudo apt install -y kali-linux-default

以下のコマンドだと、さらに多くのツールをインストールできるようです。

$ sudo apt install -y kali-linux-large

4. Windows Terminal に Win-Kex のエントリを追加する

Windows Terminal に、Win-KeX 専用のエントリー(プロファイル?)を追加することもできます。

Windows Terminal のウィンドウ

例えば上の [Win-KeX] という項目を選択すると、Kali Linux が GUI で起動します。

やり方は、Win-KeX | Kali Linux Documentation に載っているように Windows Terminal の設定ファイル settings.js に、Win-KeX 用のプロファイル情報を追記します。ただ、そのままではうまくいかなかったので、少し修正した記述例を紹介します。

            {
                "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
                "hidden": false,
                "name": "Win-KeX",
                "commandline": "wsl -d kali-linux kex wtstart",
                "startingDirectory" : "//wsl$/kali-linux/home/{username}",
                "closeOnExit" : true,
                "icon": "file:///c:/users/{username}/pictures/icons/kali-menu.png"
            },
  • {username} の部分は、自分のユーザー名に置換してください。
  • アイコンファイルの指定は任意ですが、Kali Linux 側の /usr/share/icons/hicolor/16x16/apps/kali-menu.png ファイルを、Windows側の任意のフォルダにコピーして指定するとよいです。

5. kex コマンドのオプション

kex コマンドのオプションは以下です。

$ kex -h

        Win-Kex is a client server environment based on Tigervnc
        that adds a GUI desktop to Kali in Windows Subsystem for Linux 2 (WSL 2)

        Usage:
                kex              : start kex server and launch win-kex client
                kex wtstart      : start kex server and launch win-kex client
                                   in Windows Terminal session
                kex start        : start kex server
                kex status       : show kex server status
                kex start-client : start kex client
                kex stop         : stop kex server
                kex kill         : stop kex server and kill all related processes
                kex passwd       : set kex server password

6. Win-Kex についてのメモ

(1) VNCクライアントについて

/usr/lib/win-kex/win-kex というファイルがVNCクライアント(Windows用実行ファイル)になっており、これを Kali Linux 側から実行しているようです。

$ file /usr/lib/win-kex/win-kex
/usr/lib/win-kex/win-kex: PE32 executable (GUI) Intel 80386, for MS Windows
タスクマネージャーに表示されたVNCクライアント

(2) kali-win-kex に含まれるファイル

kali-win-kex パッケージに含まれるファイルは以下です。

$ dpkg -L kali-win-kex
/.
/usr
/usr/bin
/usr/bin/kex
/usr/lib
/usr/lib/win-kex
/usr/lib/win-kex/win-kex
/usr/lib/win-kex/xstartup
/usr/share
/usr/share/doc
/usr/share/doc/kali-win-kex
/usr/share/doc/kali-win-kex/changelog.gz
/usr/share/doc/kali-win-kex/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/kali-win-kex

7. おわりに

Win-KeX によって、GUI での Linux環境 (WSL) を手軽に用意することができます。Kali Linux は聞き慣れない人も多いかと思いますが、セキュリティ分野では有名ですし見た目もよいですので、1度試して見るとよいと思います。

そのうち Ubuntu が同じようなツールを用意してくれるとよいのですが。同じ Debian系のディストリビューションですし。

8. 参考

📂-Tools

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

英辞郎

英辞郎 on the WEB はどこに行った?

最近、株式会社アルクのURL https://www.alc.co.jp/ は完全にコーポレートサイトになったようです。英辞郎 on the WEB は全く表示されなくなり、英単語を調べることはできま …

Vim

vi (vim) の終了手順について

私の vi (vim) 終了手順について書いています。

Windows

Cmder (または ConEmu) を使う際にいつも変更している設定項目

Cmder (または ConEmu) を使う際に、私が変更している設定項目を紹介します。 Cmder は、Windows で使えるターミナルエミュレータ(コンソールエミュレータ)ソフトウェアです。Cm …

Linux

nvm を使っているUbuntu 16.04 LTS 環境に、yarn をインストールする

GitHub – creationix/nvm を使っている Ubuntu 16.04 LTS 環境に、Yarn をインストールする手順を紹介します。 Installation | Yar …

Git

ファイル(もしくはディレクトリ)を Git による管理から外す手順

Git を使ってファイルやディレクトリの履歴を管理してきたけれど、特定のファイル(もしくはディレクトリ)を Git による管理から外す場合の手順です。 1. ファイル ファイルを実際に削除しつつ、イン …