ラズパイへのKali Linux導入とGVMのインストール

## この記事について

* Raspberry Pi Imagerを使ったラズパイへのKali Linuxの導入
* Kali Linuxへの追加パッケージのインストール
* GVM(OpenVAS)のインストール

の手順について記録します。

火急で環境が欲しくなり構築しましたが、過去にKaliで嵌ったのを完全に忘れて週末を溶かしたので自戒の備忘録です。

## 2023.12.08修正  
[こちらの記事(ハッカーはGreenbone Vulnerability Manager(GVM)を利用してセキュリティのチェックを行う)](https://whitemarkn.com/penetrationtest/gvm/)を参考にgvmのインストール手順の説明を修正しました。  


## 環境
* **Raspberry Pi Imager：** v 1.7.4  
* **Raspberry Pi：** Raspberry Pi 4 Model B Rev 1.2  
* **OS：** 5.15.44-Re4son-v8l+ #1 SMP PREEMPT Debian kali-pi (2022-07-03) aarch64 GNU/Linux  
* **strage：** WTM2-SSD-512GB（M.2 2280 512GB）  
* **case：** Argon ONE M.2 Case for Raspberry Pi 4 Support SATA SSD | B-Key and B+M Key Compatible  
* **microSD card for bootroader：** 16GB 

## ラズパイへのKali Linuxの導入  

#### ブートローダー用microSDカードの準備

別用途で使っていたArgon ONE M.2とSTAT M.2 SSDを転用した為、Linux導入にはRaspberry Pi ImagerのNetwork bootを使いました。

初めにNetwork bootの為のEEPROMをラズパイにloadしてからSSDにKali Linuxを導入し、Kali導入後に一度電源を落としてUSB boot用のEEPROMをラズパイにloadしなおす必要がありました。

その為に、Raspberry Pi Imagerのmain menuより以下の手順でmicroSDカードを２枚用意しました。

```:Network bootloader
main menu > OS > Miscutility images > Bootloader > Network Boot
```

```:USB bootloader
main menu > OS > Miscutility images > Bootloader > USB Boot
```
#### Kali Linuxのインストール

* Raspberry PiのスロットにNetwork boot用のSDカードを挿入し、電源を入れて約一分放置してから電源を切ります。  
* Argon ONEケースを閉じてSSDをRaspberry Piに接続し、キーボードを接続して、シフトキーを押しながら電源を入れます。  
* Raspberry Pi Imagerのメニューが表示されたら以下の手順で64bit版のKali Linuxを選びます。
```
    main menu > OS > Other specific-purpose OS > Kali Linux > Raspberry Pi 2 (v1.2), 3, 4 and 400 (64bit)
```
* ストレージに M.2 SSD を選択し、書き込みを開始します。
* インストールが終わり再起動がかかったら、一度電源を切ってEEPROMを書き換えます。USB boot用のmicroSDカードをカードスロットに挿入して電源を入れ、約一分放置してから電源を切ります。
* 起動用microSDカードをスロットから取り外し、Argon ONEケースを閉じてSSDをRaspberry Piに接続して電源を入れます。
* Kaliのログイン画面が表示されたらKaliのインストールは成功です。ログインして接続先を確認してSSH 接続し、追加のパッケージをインストールします。

EEPROMをloadする為に1分も放置する必要はないかもしれませんが別作業の間に適当に放置しました。

なお、本稿投稿時点(2023.03.12)でのusernameとpassword初期設定は

> username： Kali
> password： Kali

です。


## アップデートと追加設定

#### hostnameとpassword変更
一時利用環境ですがお好みで変更しました。Host名をMyKaliPiとしました。
```sh
sudo sed -i "s/$(uname -n)/MyKaliPi/g" /etc/hosts
sudo hostnamectl set-hostname MyKaliPi

sudo passwd kali

sudo reboot
```

#### アップデートと追加インストール
```sh
sudo apt update
sudo apt -y upgrade

sudo apt install -y kali-linux-core kali-linux-default kali-tools-web
sudo apt install -y task-japanese task-japanese-desktop

sudo apt update
sudo apt -y full-upgrade
```
ロケールはja_JP.UTF-8を選択します。
```sh
sudo dpkg-reconfigure locales
```
> Locales to be generatedb： ja_JP.UTF-8 UTF-8  
> Default locale for the system environment： ja_JP.UTF-8  

タイムソーンはアジア/東京。
```sh
sudo dpkg-reconfigure tzdata
```
> Geographic area： Asia
> Time zone： Tokyo

キーボードは日本語。

```sh
sudo dpkg-reconfigure keyboard-configuration
```
> Keyboard model： Generic 105-key PC
> Keyboard layout： Other
> Country of origin for the keyboard： Japanese
> Keyboard layout： Japanese
> Key to function as AltGr： The default for the keyboard layout
> Compose key： No compose key
> Use Control+Alt+Backspace to terminate the X server?： No

ibus-anthyをインストールして再起動します。

```sh
sudo apt install -y ibus-anthy
sudo reboot
```

## GVM(OpenVAS)のインストール

root権限でインストールを実行します。

~~[こちら](https://www.actcrp.com/actdepo/otherinfo/OpenVASonKaliLinuxRev3.pdf)を参考にaptでインストールしました。~~

~~念のためpostgresql-14のアンインストール(結果的に必要なかった)とautoremoveを実行しました。~~

```sh
#sudo apt -y install openvas

#sudo apt remove postgresql-14
#sudo apt purge postgresql-14
#sudo apt -y autoremove  

#以下に修正

sudo su  
apt -y install gvm 
```

~~ここで禁じ手を使います。~~

```sh
#root権限で実行すれば以下不要
#sudo chmod -R 777 /home/kali
```
~~gvm-setupを実行する際にpostgresql-15とRadisの設定で書き込みの権限設定をサクッと通せず、持ち時間が限られスポット利用ということもありこれで逃げました。リベンジ出来たら記事を修正したいと思います。~~

gvmのセットアップを進めます。

```sh
#sudo gvm-setup
gvm-setup
```

最後(途中)に出力されるadminのpasswordを控えておきます。
> [\*] Please note the generated admin password
> [\*] User created with password 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'.

セットアップが完了したらチェックをかけます。

```sh
#sudo gvm-check-setup  
gvm-check-setup  
```
Step 9までチェックが進んだ後にinstallation is OKが表示されたら起動準備O.K.です。

> It seems like your GVM-23.11.0 installation is OK.

Scan対象を到達可能なNetwork全体に変更します。
```sh
sed -i "s/127.0.0.1/0.0.0.0/g" /lib/systemd/system/gsad.service
```

serviceをenableにして再起動します。
```sh
systemctl enable notus-scanner
systemctl enable ospd-openvas
systemctl enable gvmd
systemctl enable gsad
reboot
```

feedを最新に更新します。反映に時間がかかります。
```sh
#sudo gvm-feed-update  
sudo greenbone-feed-sync
```

## 動作確認

#### Login
https: //ラズパイIPアドレス：9392でLogin pageが開きます。

setup時に控えたadminのpasswordでLoginします。

<img width= 500 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/67d96366-948c-f2fe-eef5-5dd09e786864.png>

#### feed-updateのStatus確認
Administration > Feed Statusを開き確認します。

全てCurrentになるとScanが可能です。

<img width= 700 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/cc5d5db3-be2b-dedb-cc39-cea1fa6c50e5.png>

#### ラズパイのScan

自宅のラズパイNWに設置している[ニャンコ見守りシステム](https://qiita.com/nsaito9628/items/ff9743e471592f38a463)のラズパイをお試しScanしてみました。

Filterは[こちら](https://qiita.com/nsaito9628/items/e5ba356c97d545a2601d#forward%E6%8B%92%E5%90%A6%E3%81%A8filter%E3%81%8A%E3%82%88%E3%81%B3nat%E3%81%AE%E8%A8%AD%E5%AE%9A)とほぼ同等の設定です。

Scan結果はLogレベルのメッセージが4つ確認されました。

「kernelにLinuxを使っているようだ」くらいしか読み取れなかったようです。

<img width= 700 src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565396/3f22ff51-aa85-39a1-af47-761ca6db6e3f.png>