Kali Linux 2024.3 Release (Multiple transitions)

# はじめに
2024年9月11日、[Kali Linux 2024.3 Release (Multiple transitions)](https://www.kali.org/blog/kali-linux-2024-3-release/)の通りにKaliの新しいリリースが公開されています。

今回のリリースでは、Qualcomm製[SDM845](https://www.qualcomm.com/products/technology/processors/application-processors/sdm845) SoCのサポートと、11個の新しいツールが追加されました。詳細については、上記公式のブログ記事をご参照ください。

本記事では、今後の移行に関するトピックと今回新しく追加されたツールの一部について記載しています。

## アップデート方法
公式ドキュメントの[Updating Kali](https://www.kali.org/docs/general-use/updating-kali/)を踏まえて、Kaliのアップデート方法を以下に記載します。

前提として、`/etc/apt/sources.list`が適切に設定されていることを確認した上で以下のコマンドを実行します。

`$ sudo apt update`
`$ sudo apt full-upgrade -y`

上記コマンド実行後、OS再起動を行います。
OS再起動後、`/etc/os-release`ファイルを参照してディストリビューションのバージョンが更新されたことを確認します。

`$ grep VERSION /etc/os-release`

```console
VERSION_ID="2024.3"
VERSION="2024.3"
VERSION_CODENAME=kali-rolling
```

## 今後の移行に関する注意点
t64の移行終了後も最適化に関する複数のプロジェクトが進んでいます。

Kaliの次のバージョンである2024.4のリリースでは、PythonのデフォルトがPython 3.12に変更されます。従ってpipによるパッケージのインストールは廃止されることにより、今後はAPTに変更されます。詳細は2023年に公開されている以下の記事から確認できます。

- [Pip install and Python's externally managed](https://www.kali.org/blog/python-externally-managed/)

## New Tools
今回のリリースでは、ネットワークに関するツールが複数リリースされています。

### goshs
goshsは、シンプルでありながら機能豊富なWebサーバです。

ファイルのアップロード、認証機能、TLSなど様々な機能を使用することができます。

https://github.com/patrickhener/goshs

以下のコマンドを実行してインストールします。

`$ sudo apt install goshs`


HTTPサーバを起動するためには、以下のコマンドを実行するだけです。コマンド実行後現在の作業ディレクトリを起点に8000番ポートを使用して起動します。
 
`# goshs`

```
INFO   [2024-09-14 21:33:16] Download embedded file at: /example.txt?embedded 
INFO   [2024-09-14 21:33:16] Serving on interface lo bound to 127.0.0.1:8000 
INFO   [2024-09-14 21:33:16] Serving on interface eth0 bound to <IP address>:8000 
INFO   [2024-09-14 21:33:16] Serving on interface tun0 bound to <IP address>:8000 
INFO   [2024-09-14 21:33:16] Serving HTTP from /var/www/html 
```

ブラウザからgoshsを起動しているサーバのIPアドレスにアクセスすると、以下の様な画面が表示されます。

![スクリーンショット 2024-09-14 21.34.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221759/8bbaeb46-3e90-c0df-4a61-0e3b7e0e6d08.png)

以下はBasic認証の例です。

`$ goshs -b secret-user:secret-password`

```
WARNING[2024-09-14 21:36:23] You are using basic auth without SSL. Your credentials will be transferred in cleartext. Consider using -s, too. 
INFO   [2024-09-14 21:36:23] Using basic auth with user 'secret-user' and password 'secret-password' 
INFO   [2024-09-14 21:36:23] Download embedded file at: /example.txt?embedded 
INFO   [2024-09-14 21:36:23] Serving on interface lo bound to 127.0.0.1:8000 
INFO   [2024-09-14 21:36:23] Serving on interface eth0 bound to <IP address>:8000 
INFO   [2024-09-14 21:36:23] Serving on interface tun0 bound to <IP address>:8000 
INFO   [2024-09-14 21:36:23] Serving HTTP from /var/www/html
```

以下は自己署名証明書を使用して起動する例です。ブラウザからアクセスする際はHTTPSで接続します。

`$ goshs -s -ss`

```
INFO   [2024-09-14 21:45:20] Download embedded file at: /example.txt?embedded 
INFO   [2024-09-14 21:45:22] Serving on interface lo bound to 127.0.0.1:8000 
INFO   [2024-09-14 21:45:22] Serving on interface eth0 bound to <IP address>:8000 
INFO   [2024-09-14 21:45:22] Serving on interface tun0 bound to <IP address>:8000 
INFO   [2024-09-14 21:45:22] Serving HTTPS from /var/www/html with ssl enabled and self-signed certificate 
WARNING[2024-09-14 21:45:22] Be sure to check the fingerprint of certificate 
INFO   [2024-09-14 21:45:22] SHA-256 Fingerprint: DC 1C F8 7E C1 F1 01 04 1C 31 D5 74 AF 2D 51 50 2E 8B 3A 8E C4 95 12 46 80 15 86 1C 49 6E A8 1D  
INFO   [2024-09-14 21:45:22] SHA-1   Fingerprint: 9A A7 3C 66 A7 1C 8A B9 B9 73 2C 94 93 48 74 32 CD 26 D9 AE 
```

::: note
ドキュメントは[goshs.de](https://goshs.de/)から確認できます。
:::

### graudit
grauditは、GNUユーティリティのgrepを使用してソースコード内の潜在的なセキュリティ上の欠陥を見つけることができるツールです。

https://github.com/wireghoul/graudit

aptでもインストールできますが、最新のデータを取得できるようにするため、gitリポジトリからクローンして使用することが推奨されています。

`$ git clone https://github.com/wireghoul/graudit`

grauditを使用するためには、データベースを使用する必要があるため、環境変数の`PATH`を設定します。以下は例になるため、環境に合わせて設定するのが良いでしょう。

`$ echo 'PATH="$HOME/graudit:${PATH:+:${PATH}}"; export PATH;' >> ~/.bashrc`

環境変数設定後、以下の様にデータベースを指定して実行します。

`$ graudit -d php t/exec.php `

```
===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v3.6 written by @Wireghoul
=================================[justanotherhacker.com]===
t/exec.php-2-//1 vuln, 1 safe call
t/exec.php:3:exec( $_GET[cmd] );
t/exec.php:4:exec( "echo 123" );
t/exec.php:5:system ("$_POST['cmd']");
t/exec.php:6:system ("pwd");
t/exec.php:7:popen ("$_REQUEST[cmd]");
t/exec.php:8:popen ('which php');
t/exec.php-9-//backdoor style
t/exec.php:10:passthru ($_COOKIE['cmd']);
t/exec.php:11:passthru ('nosuch --cmd');
t/exec.php:12:`ls -la $_GET[fname]`
t/exec.php-13-`ls -la`
t/exec.php:14:shell_exec("touch $_POST[fname]");
t/exec.php:15:shell_exec("id");
t/exec.php:16:exec $_GET['cmd'];
t/exec.php-17-exec
```

### NetExec
NetExecは、大規模ネットワークのセキュリティ評価を自動化するのに役立つネットワークのツールです。

https://github.com/Pennyw0rth/NetExec

以下のコマンドを実行してインストールします。

`$ sudo apt install netexec`

以下のプロトコルに対応しています。

- smb
- ssh
- ldap
- ftp
- wmi
- winrm
- rdp
- vnc
- mssql

以下は、資格情報をテストする例です。

`$ nxc ssh 192.168.1.0/24 -u user -p password`

```console
SSH         127.0.0.1       22     127.0.0.1        [*] SSH-2.0-OpenSSH_8.2p1 Debian-4
SSH         127.0.0.1       22     127.0.0.1        [+] user:password
```

::: note
ドキュメントは[netexec.wiki](https://www.netexec.wiki)から確認できます。
:::

### netscanner
netscannerは、TUI[^1]のネットワークスキャンツールです。

https://github.com/Chleba/netscanner

以下の様な機能があります。

- HWインターフェースの一覧
- スキャンとパケットダンプのためのアクティブインターフェースの切り替え
- WiFiネットワークのスキャン
- WiFi 信号強度（グラフ付き）
- (IPv4) ホスト名、OUI、MAC アドレスを使用してCIDRをPing
- (IPv4) パケットダンプ (TCP、UDP、ICMP、ARP)
- (IPv6) パケットダンプ (ICMP6)
- パケットダンプの開始/一時停止
- 開いているポートのスキャン (TCP)
- パケットログフィルター
- スキャンした IP、ポート、パケットをCSVにエクスポート

以下のコマンドを実行してインストールします。

`$ sudo apt install netscanner`

実行するためには、ルート権限で実行する必要があります。

`$ sudo netscanner`

[^1]:[テキストユーザインタフェース](https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9)

### obsidian
obsidianは、思考を整理するためのライティングアプリです。

https://obsidian.md/

個人使用は無料ですが、商用利用の場合は有料のライセンスが必要です。情報をリンクして関連付けたりグラフ化して関係を視覚化するのに優れています。

以下のコマンドを実行してインストールします.

`$ sudo apt install obsidian`

::: note
利用可能なラットフォームは[download](https://obsidian.md/download)から確認できます。
:::

# おわりに
今回も魅力的なツールが追加されていることに感謝します。

obsidianもユニークで実用的なツールだと思うので、使ってみたいと思いました。