[初心者向け]Kali Linux on WSL 初期設定 最強への育て方

### はじめに
https://www.hackthebox.eu/
Hack The Box を始めたいのでWindows Subsystem for Linux(以下WSL）にKali Linuxの環境構築をした時のメモです。 
素のKali Linuxだといろいろ機能が足りないため、この手順を行うことでかなり使いやすくなると思います。
なお、WSLでは無線LANやソケットを使う一部機能は使用できないようです。nmapが使えないのが一番痛い。（WSL2で改善することを願います。）

**※対象OSはもちろんWindows10です。**

### WSLのインストール
PowerShellのアイコンを右クリックし、「管理者として実行する」をクリックして、コマンドプロンプトを開きます。
以下のコマンドでWSLの機能を追加します。

```
# WSL のインストール
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
```
このコマンドは コントロールパネル＞プログラム＞Windowsの機能の有効化または無効化 から「Windows Subsystem for Linux」にチェックを付けたのと同じ動作をします。
<img width="300pix" alt="windowsの機能の有効化または無効化" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/626ff079-3184-bb13-7e03-dcc0245ea0af.png">


Windowsのシステム機能への変更となるため、OS再起動が必要です。

```
# OS再起動
Restart-Computer -Force
```

### Kali Linux on WSLのインストール

Microsoft Storeアプリの検索ウィンドウで「kali」を入力します。
「Kali Linux」が見つかるのでインストールをおこなってください。

### Windwos Defenderのスキャン除外設定
Kali Linuxのパッケージには様々な攻撃用スクリプトが含まれるため、Windows Defenderの保護機能でファイルが削除されてしまいます。
そのため保護機能のスキャンを除外する設定を行います。

エクスプローラからKali Linuxのインストール先にあたる以下のフォルダのフルパスを確認します。
【フォルダのパス例】
**C:\Users\[ユーザー名]\AppData\Local\Packages\KaliLinux.XXXX(直前のピリオド以降のXは任意の文字列)**

Windwosメニューから 「Windowsセキュリティ」＞「ウイルスと脅威の防止」＞「ウイルスと脅威の防止の設定- 設定の管理」＞「除外の追加または削除」 に進みます。
「除外の追加（＋ボタン）」をクリックし、先ほど確認したパスを追加します。

**【除外の設定例】**
<img width="300pix" alt="windowsの機能の有効化または無効化" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/004016b4-308a-3fba-df1c-41676c804259.png">

### パッケージのアップデート
以降はKali Linuxの操作になります。
Kali Linuxのアイコンをクリックするとコマンドプロンプトが表示されます。
最初のログイン時にユーザ名とパスワードの設定が必要です。

aptコマンドでパッケージを更新します。

```
sudo apt -y update 
sudo apt -y upgrade
sudo apt -y full-upgrade
```
### sshの接続設定追加
WSLのデフォルトではssh接続ができません。
sshパッケージのインストールとsshサーバの自動起動設定をしておきましょう

```
# sshパッケージのインストール
sudo apt-get install -y ssh

# sshサーバの自動起動設定
# sudo systemctl start ssh ← このコマンド動かなかった。謎？
sudo /etc/init.d/ssh start
sudo systemctl enable ssh
```

### Kali Linuxパッケージのインストール
いよいよKali Linuxのツールのインストールです。
その前にビルドに必要なパッケージを追加しておきます。

```
sudo apt -y install build-essential
```

Kali Linuxのすべてのツールをインストールします。（かなり時間がかかります！）
途中パッケージによってプロンプトが出てきますが、適当にデフォルトでポチポチしました。


```
# すべてのパッケージをインストールするコマンドが変わっていたので更新しました。
# sudo apt-get -y install kali-linux-full
sudo apt-get -y install kali-linux-everything
sudo apt-get -y install kali-menu
```


Kali関連のパッケージは `/usr/share` 以下に入ります。



## Kali Linuxのデスクトップ接続の準備
CUIで使用する場合は特に問題ありませんが、GUIを使いたい場合はデスクトップ接続の設定が必要になります。
コマンド操作になれるまではGUIを併用するとよいでしょう。
### 日本語入力設定の追加
GUIのブラウザから日本語で検索を行う、といった日本語を使うために日本語パッケージを追加します。

```
sudo apt -y install task-japanese
sudo apt -y install task-japanese-desktop
```

### デスクトップ接続用サーバのインストール
xrdpをインストールし、サーバを起動します。

```
sudo apt-get -y install xfce4
sudo apt-get -y install xrdp

sudo /etc/init.d/xrdp start
```
リモートデスクトップ接続から"localhost:3389"を指定して接続します。

**【リモートデスクトップ接続の画面】**
<img width="300pix" alt="リモートデスクトップ接続" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/4450ed1d-6e80-6cb9-4717-e10786456d83.png">

xrdpの画面でKali Linuxの接続に使用するユーザー、パスワードを入力します。

**【xrdpの画面】**
<img width="300pix" alt="xrdp接続画面" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/6e37b66e-47e2-98ee-cc62-436f4572cbb7.png">


Kali Linuxのデスクトップが表示されます。フルメニューからアプリの選択可能です！

**【Kali Linuxのデスクトップ】**
<img width="500pix" alt="リモートデスクトップ" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/f5c24397-2716-078f-6c08-b1dd16f4cd7d.png">


デスクトップ接続が不要な場合はサーバを停止します。

```
sudo /etc/init.d/xrdp stop
```

### おまけ：Visual Studio Code(以下VSCode)からKali Linuxを操作する

コマンド操作になれていない方はGUIでやればいいか、と思いきやデスクトップ接続はかなり重いです。
そんな時はVSCodeのRemote Developmentから接続すれば快適にディレクトリを閲覧しつつ、bash実行が可能です。
※事前にVSCodeのインストールを行ってください。

Kali LinuxのコマンドプロンプトからVSCodeを実行します。

```
code
```
自動でvscodeが起動してWSLのKali Linuxに接続します。

**【VSCodeのターミナルでmsfconsoleを起動した画面】**
<img width="500pix" alt="xrdp接続画面" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138956/b34ff469-3f2f-403c-fd2b-0da02d80de51.png">

VSCodeのリモート接続は簡単&便利で超オススメ！

### 最後に
結局Kali Linuxのインストールに満足し、Hack The Boxを放置しています。
勉強会も始まったようですし、次回は参加してみたい。


### 参考にしたサイト
Setting up Kali Linux on Windows Subsystem for Linux
https://docs.microsoft.com/ja-jp/archive/blogs/motiba/setting-up-kali-linux-on-windows-subsystem-for-linux

Configuring Windows Defender Exclusions for Kali Linux on WSL
https://www.simontaplin.net/configuring-windows-defender-e/

しょぼんブログ
https://syobon.jp/blog/2018/03/09/kali-linux-available-on-microsoft-store/

RootLinksさんブログのKali関連記事
https://www.rootlinks.net/category/linux/kali/