サーバセキュリティ

[OpenVAS/GVM] のinstallと使い方 @ Kali Linux

OpenVAS/GVM の概要

OpenVAS スキャナは nessus 派生の脆弱性スキャナです。OpenVAS という名前のプロジェクトで作られた OpenVAS スキャナは GVM (Greenbone Vulnerability Management) というフレームワークに内包されており、OpenVAS スキャナでスキャンした脆弱性情報を管理します。

また、GSA (Greenbone Security Assistant) は GVM が管理している情報を WebUI で提供します。

GVM (OpenVAS)/GSA は現在 Greenbone Networks 社が開発しており、この 2 つは Open Source となっています。

Greenbone Networks 社は独自 OS の Greenbone OS の上にこれらやさらなる付加価値のあるソフトウェアを含めた製品 GSM (Greenbone Security Manager) のハードウェア、仮想アプライアンス等を販売しています。

今回やりたいこと

今回は Kali Linux (2021.4a) に GVM/GSA をインストールし、リモートにある古い Windows に対してスキャンを試みます。

構成は以下の通り。

Kali Linux へのインストール手順

Kali Linux の初期セットアップは以下を参照。

Kali Linuxの初期Setup ~日本語環境化,オートロック無効化,ssh,ufw,パッケージ最新化~
Kali Linux の概要 Kali Linux はペンテストなどに使われるツ...

まずはパッケージインストール。

$ sudo -s
# apt install -y gvm

次に setup コマンド

# gvm-setup

めっちゃ時間かかりますが、最後に以下のように admin user のパスワードが表示されます。

[+] Done
[*] Please note the password for the admin user
[*] User created with password '53382cd0-06fd-43be-b59b-d4231f9618e6'.

[>] You can now run gvm-check-setup to make sure everything is correctly configured

そして gvm を起動します。

# gvm-start

これで Kali linux 上のブラウザで https://127.0.0.1:9392 へアクセスし、上記 admin でログインできます。以下は Kali Linux 上のブラウザでのログイン後の画面です。

GSA へのリモートアクセス

デフォルト設定ではリモートからのブラウザアクセスできません。何故かというと、Listen アドレスが 127.0.0.1 になっているからです。

# ss -nltup
~~~
tcp  LISTEN  0  4096  127.0.0.1:9392  0.0.0.0:*  users:(("gsad",pid=1826,fd=10))
~~~

gsad (Greenbone Security Assistant Daemon) というプロセスが 127.0.0.1:9392 を Listen していますが、これを 0.0.0.0 (所有する全 IP で Listen) に変えます。変更するためには systemd の設定を変更します。

# cp -p /lib/systemd/system/greenbone-security-assistant.service /etc/systemd/system/
# vi /etc/systemd/system/greenbone-security-assistant.service
(以下の行を)
ExecStart=/usr/sbin/gsad --listen=127.0.0.1 --port=9392
(以下に変更)
ExecStart=/usr/sbin/gsad --listen=0.0.0.0 --port=9392

特定のインタフェースのみ Listen したい場合はそのインタフェースの IP を指定すれば OK です。

そしてサービスをリスタートし、再び ss -nltup で確認しましょう。

# systemctl daemon-reload
# systemctl restart greenbone-security-assistant.service
# systemctl status greenbone-security-assistant.service
# ss -nltup

これで 0.0.0.0:9392 が表示されれば、リモート機器のブラウザからアクセスできるようになります。(ufw を有効にしている場合は穴あけを忘れずに)

リモートの Windows Server 2019 をスキャンする手順

GSA にログインし、以下の手順で Windows Server 2019 をスキャンします。

  1. Configuration ⇒ Credentials にて SMB ユーザの ID/PW 情報を登録
  2. Configuration ⇒ Targets にて Windows Server 2019 のホスト情報を登録
  3. Scans ⇒ Tasks にて Scan 内容を作成

Credentials では SSH や SMB, SNMP 等の認証が必要なプロトコルの認証情報を登録します。今回は Windows の主要プロトコル SMB についても検査を行います。

Targets ではスキャン対象として IP やホスト名、ポートスキャンの対象ポート、Credentials の情報などを登録します。

そして最後、Tasks ではスキャンの実行情報を登録します。

手順は以下のスライドショーをご参照下さい。

openvas-03
openvas-04
openvas-05
openvas-06
openvas-07
openvas-08
openvas-09
openvas-10
openvas-11
openvas-12v2
previous arrow
next arrow
openvas-03
openvas-04
openvas-05
openvas-06
openvas-07
openvas-08
openvas-09
openvas-10
openvas-11
openvas-12v2
previous arrow
next arrow

スキャン結果

今回は Windows Server 2019 Datacenter Edition を、以下の 3 パターンにセットしてそれぞれスキャンを行いました。パターン 3 は2021.12.31 時点で Windows Update を当てた build です。

  1. version 1809 build 17763.1158 , Windows Firewall を有効化 (public)
  2. version 1809 build 17763.1158 , Windows Firewall を無効化
  3. version 1809 build 17763.2366 , Windows Firewall を無効化

結果は以下の通りです。上記 3 パターンごとに、脆弱性のリスクの度合い HIGH, MEDIUM, LOW, LOG ごとに脆弱性の件数を挙げています。

HIGHMEDIUMLOW
パターン1000
パターン22120
パターン3120

Windows Firewall を有効にしていると脆弱性は何も検知されませんでした。

ちなみに、パターン 2 のレポートは以下のように出力されます。

さらに参考で、パターン 2 をスキャンしたときのパケットキャプチャファイル (openvas.pcap) を以下からダウンロードできます。(Kali Linux 上で tcpdump を実行したもの)

openvas.pcap

トラブルシュート

スキャン実行時に「Interrupted at 0 %」と表示されたら

個人的に以下のパターンで引っかかりました。もし表示されたら確認してみてください。

  • grub で IPv6 を disable にしている
  • redis-server サービスが起動していない (systemctl status redis-server@openvas.service)

その他トラブルシュート

/var/log/gvm 配下のログを確認。

コメント

タイトルとURLをコピーしました