ユーザーは、Kali への脆弱性スキャナーの追加を要求することがよくあります。最も顕著なのは「N」で始まるものですが、ライセンスの制約により、ディストリビューションには含まれていません。幸いなことに、Kali には、無料でオープンソースの非常に有能な OpenVAS が含まれています。過去に OpenVAS について簡単に説明しましたが、OpenVAS のセットアップとより効果的な使用方法について、より詳細な記事を書くことにしました。
脆弱性スキャナーは、主にその役割と目的が誤解されているため、評判が悪いことがよくあります。脆弱性スキャナーは脆弱性をスキャンします。これらは魔法のエクスプロイト マシンではなく、評価で使用される多くの情報源の 1 つになる必要があります。ターゲットに対して盲目的に脆弱性スキャナーを実行すると、ほぼ確実に失望と苦痛に終わり、数十 (または数百) の低レベルまたは有益な結果が得られません。
システム要件
OpenVAS (またはその他の脆弱性スキャナー) について寄せられる主な苦情は、「遅すぎてクラッシュし、機能せず、悪いので、気分が悪い」と要約できます。ほとんどの場合、速度低下やクラッシュの原因はシステム リソースの不足です。 . OpenVAS には何万もの署名があり、システムに十分なリソース (特に RAM) を与えないと、惨めな世界に陥ることになります。一部の商用脆弱性スキャナーでは、最低限 8 GB の RAM のうち、さらに多くをお勧めします。
OpenVAS はそれほど多くのメモリを必要としませんが、多くのメモリを提供できるほど、スキャン システムはよりスムーズに動作します。この投稿では、Kali 仮想マシンには 3 つの CPU と 3 GB の RAM があります。 、これは通常、一度に少数のホストをスキャンするのに十分です.
Kali での初期 OpenVAS セットアップ
OpenVAS には多くの可動部分があり、手動で設定するのは難しい場合があります。幸いなことに、Kali には「openvas-setup」と呼ばれる使いやすいユーティリティが含まれており、OpenVAS のセットアップ、署名のダウンロード、および管理者ユーザーのパスワードの作成を処理します。
この初期設定には、かなり長い時間がかかる場合があります 、高速のインターネット接続を使用している場合でも、座って自然に任せてください。セットアップの最後に、自動生成された admin ユーザーのパスワードが表示されます。 このパスワードを安全な場所に保存してください .
[email protected]:~# openvas-setup
ERROR: Directory for keys (/var/lib/openvas/private/CA) not found!
ERROR: Directory for certificates (/var/lib/openvas/CA) not found!
ERROR: CA key not found in /var/lib/openvas/private/CA/cakey.pem
ERROR: CA certificate not found in /var/lib/openvas/CA/cacert.pem
ERROR: CA certificate failed verification, see /tmp/tmp.7G2IQWtqwj/openvas-manage-certs.log for details. Aborting.
ERROR: Your OpenVAS certificate infrastructure did NOT pass validation.
See messages above for details.
Generated private key in /tmp/tmp.PerU5lG2tl/cakey.pem.
Generated self signed certificate in /tmp/tmp.PerU5lG2tl/cacert.pem.
...
/usr/sbin/openvasmd
User created with password 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'.
セットアップ エラーへの対処
「openvas-setup」スクリプトは、NVT ダウンロードの最後に次のようなエラーを表示することがあります。
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
(openvassd:2272): lib kb_redis-CRITICAL **: redis_new: cannot access redis at '/var/run/redis/redis.sock'
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
openvassd: no process found
残念ながらこの問題に遭遇した場合は、「openvas-check-setup」を実行して、どのコンポーネントが問題を引き起こしているかを確認できます。この特定の例では、スクリプトから次の情報を受け取ります。
...
ERROR: The number of NVTs in the OpenVAS Manager database is too low.
FIX: Make sure OpenVAS Scanner is running with an up-to-date NVT collection and run 'openvasmd --rebuild'.
...
「openvas-check-setup」scipt は問題を検出し、(できれば) 問題を解決するために実行するコマンドを提供します。推奨どおりに NVT コレクションを再構築した後、すべてのチェックに合格します。
[email protected]:~# openvasmd --rebuild
[email protected]:~# openvas-check-setup
openvas-check-setup 2.3.7
Test completeness and readiness of OpenVAS-9
...
It seems like your OpenVAS-9 installation is OK.
...
OpenVAS ユーザーの管理
追加の OpenVAS ユーザーを作成する必要がある (または作成したい) 場合は、--create-user を指定して「openvasmd」を実行します。 新しいユーザーを追加し、ランダムに生成されたパスワードを表示します。
[email protected]:~# openvasmd --create-user=dookie
User created with password 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyy'.
[email protected]:~# openvasmd --get-users
admin
dookie
あなたが私たちのような人であれば、管理者パスワードを保存するのを忘れたり、誤って削除したりします.幸いなことに、OpenVAS ユーザー パスワードの変更は、「openvasmd」と --new-password を使用して簡単に行うことができます。 オプション。
[email protected]:~# openvasmd --user=dookie --new-password=s3cr3t
[email protected]:~# openvasmd --user=admin --new-password=sup3rs3cr3t
OpenVAS の開始と停止
Kali Linux ではネットワーク サービスがデフォルトで無効になっているため、起動時に OpenVAS を開始するように構成していない場合は、「openvas-start」を実行して必要なサービスを開始できます。
[email protected]:~# openvas-start
Starting OpenVas Services
サービスの初期化が完了すると、TCP ポート 9390 と 9392 がループバック インターフェイスでリッスンしていることがわかります。
[email protected]:~# ss -ant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9390 *:*
LISTEN 0 128 127.0.0.1:9392 *:*
システム リソースに負担がかかるため、特に脆弱性スキャン専用のシステムを使用していない場合は、OpenVAS を使い終わったらいつでも停止する必要があります。 OpenVAS は「openvas-stop」を実行することで停止できます。
[email protected]:~# openvas-stop
Stopping OpenVas Services
Greenbone Security Assistant の使用
Greenbone Security Assistant は OpenVAS Web インターフェイスであり、(OpenVAS の起動後に) https://localhost:9392 のローカル マシンで使用できます。 .自己署名証明書を受け入れると、ログイン ページが表示され、認証されると、メイン ダッシュボードが表示されます。
資格情報の構成
脆弱性スキャナーは、スキャンされたシステムで使用する資格情報をスキャン エンジンに提供できる場合に、最も完全な結果を提供します。 OpenVAS はこれらの資格情報を使用して、スキャンされたシステムにログインし、インストールされているソフトウェア、パッチなどの詳細な列挙を実行します。[構成] メニューの [資格情報] エントリから資格情報を追加できます。
ターゲット構成
OpenVAS は、ほとんどの脆弱性スキャナーと同様に、リモート システムをスキャンできますが、これは脆弱性スキャナーであり、ポート スキャナーではありません。ホストを識別するために脆弱性スキャナーに頼るのではなく、Nmap や Masscan などの専用のネットワーク スキャナーを使用して、ターゲットのリストを OpenVAS にインポートすることで、作業がずっと楽になります。
[email protected]:~# nmap -sn -oA nmap-subnet-86 192.168.86.0/24
[email protected]:~# grep Up nmap-subnet-86.gnmap | cut -d " " -f 2 > live-hosts.txt
ホストのリストを取得したら、[構成] メニューの [ターゲット] セクションにそれらをインポートできます。
スキャン構成
脆弱性スキャンを開始する前に、使用するスキャン構成を微調整する必要があります。これは、[構成] メニューの [スキャン構成] セクションで行うことができます。デフォルトのスキャン構成を複製してそのオプションを編集し、不要なサービスやチェックを無効にすることができます。 Nmap を使用してターゲットの事前分析を行うと、脆弱性スキャンの時間を何時間も節約できます。
タスク構成
資格情報、ターゲット、およびスキャン構成がセットアップされたので、すべてをまとめて脆弱性スキャンを実行する準備が整いました。 OpenVAS では、脆弱性スキャンは「タスク」として実行されます。新しいタスクを設定すると、同時に実行されるアクティビティを増やしたり減らしたりして、スキャンをさらに最適化できます。 3GB の RAM を搭載したシステムでは、以下に示すようにタスク設定を調整しました。
より細かく調整されたスキャン設定とターゲット選択により、スキャンの結果はより有用になります。
OpenVAS の自動化
OpenVAS のあまり知られていない機能の 1 つは、「omp」コマンドを介して対話するコマンドライン インターフェイスです。その使用法は完全に直感的ではありませんが、OpenVAS のファンは私たちだけではなく、OpenVAS スキャンを自動化するために使用および拡張できるいくつかの基本的なスクリプトに出会いました.
1 つ目は、mgeeky による openvas-automate.sh です。これは半対話型の Bash スクリプトで、スキャンの種類を入力するよう求め、残りを処理します。スキャン構成はスクリプトにハードコーディングされているため、カスタマイズした構成を使用する場合は、「ターゲット」セクションに追加できます。
[email protected]:~# apt -y install pcregrep
[email protected]:~# ./openvas-automate.sh 192.168.86.61
:: OpenVAS automation script.
mgeeky, 0.1
[>] Please select scan type:
1. Discovery
2. Full and fast
3. Full and fast ultimate
4. Full and very deep
5. Full and very deep ultimate
6. Host Discovery
7. System Discovery
9. Exit
--------------------------------
Please select an option: 5
[+] Tasked: 'Full and very deep ultimate' scan against '192.168.86.61'
[>] Reusing target...
[+] Target's id: 6ccbb036-4afa-46d8-b0c0-acbd262532e5
[>] Creating a task...
[+] Task created successfully, id: '8e77181c-07ac-4d2c-ad30-9ae7a281d0f8'
[>] Starting the task...
[+] Task started. Report id: 6bf0ec08-9c60-4eb5-a0ad-33577a646c9b
[.] Awaiting for it to finish. This will take a long while...
8e77181c-07ac-4d2c-ad30-9ae7a281d0f8 Running 1% 192.168.86.61
また、OpenVAS と対話するための Python スクリプトを紹介および説明している code16 によるブログ投稿も見つけました。上記の Bash スクリプトと同様に、スキャン タイプをカスタマイズする場合は、スクリプトを少し編集する必要があります。
[email protected]:~# ./code16.py 192.168.86.27
------------------------------------------------------------------------------
code16
------------------------------------------------------------------------------
small wrapper for OpenVAS 6
[+] Found target ID: 19f3bf20-441c-49b9-823d-11ef3b3d18c2
[+] Preparing options for the scan...
[+] Task ID = 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Running scan for 192.168.86.27
[+] Scan started... To get current status, see below:
zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
...
zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
[+] Scan looks to be done. Good.
[+] Target scanned. Finished taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Cool! We can generate some reports now ... :)
[+] Looking for report ID...
[+] Found report ID : 5ddcb4ed-4f96-4cee-b7f3-b7dad6e16cc6
[+] For taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Preparing report in PDF for 192.168.86.27
[+] Report should be done in : Report_for_192.168.86.27.pdf
[+] Thanks. Cheers!
OpenVAS にはさまざまなオプションが用意されているため、この投稿では表面をなぞるだけにすぎませんが、時間をかけて脆弱性スキャンを効果的に調整すると、OpenVAS やその他の脆弱性スキャナーの評判が悪いことがわかります。値しない。家庭や職場で接続されているデバイスの数は常に増加しており、それらの管理はますます困難になっています。脆弱性スキャナーを効果的に使用することで、その管理が少なくとも少しは簡単になります。