Nikto でファイルから複数のホストをスキャンする

Kali LinuxBeginner
オンラインで実践に進む

はじめに

Nikto は、人気のあるオープンソースのウェブサーバー スキャナーであり、6700 を超える潜在的に危険なファイル/プログラム、1250 を超えるサーバーの古いバージョン、および 270 を超えるサーバーのバージョン固有の問題を含む、複数の項目に対してウェブサーバーに対して包括的なテストを実行します。

多数のホストを手動でスキャンするのは、退屈で時間がかかる場合があります。より効率的なアプローチは、すべてのターゲットを単一のファイルにリストし、Nikto にそれらを順番にスキャンさせることです。この実験では、複数のターゲットホストを含むテキストファイルを作成し、Nikto を使用して単一のコマンドでそれらすべてに対して脆弱性スキャンを実行する方法を学びます。

複数のターゲット IP またはホスト名をテキストファイルで作成する

このステップでは、スキャンしたいターゲットのホスト名を含むシンプルなテキストファイルを作成します。Nikto はこのファイルを読み込み、その中にリストされている各ホストをスキャンできます。各ホスト名または IP アドレスは新しい行に記述してください。ここでは、現在の作業ディレクトリである ~/project にこのファイルを作成するために nano テキストエディタを使用します。

まず、nano を使用して targets.txt という名前の新しいファイルを開きます。

nano targets.txt

次に、nano エディタ内で、以下の 2 つのホスト名を追加します。これらはテスト目的で利用可能な公開サイトです。

scanme.nmap.org
example.com

nano でファイルを保存するには、Ctrl+O を押し、次にファイル名を確認するために Enter を押します。nano を終了するには、Ctrl+X を押します。

cat コマンドを使用して、ファイルのコンテンツを確認できます。

cat targets.txt

以下の出力が表示されるはずです。

scanme.nmap.org
example.com

これで、Nikto の準備ができたターゲットファイルができました。

テキストファイルへのパスと共に -h フラグを使用する

このステップでは、複数ターゲットのスキャン用の Nikto コマンドを準備します。-h (または --host) フラグはターゲットを指定するために使用されます。通常は単一のホスト名または IP アドレスを受け取りますが、ファイルパスも受け入れることができます。ファイルパスを指定すると、Nikto はそのファイルからターゲットを読み取ることを理解します。

この操作の基本的な構文は次のとおりです。

nikto -h /path/to/your/file.txt

私たちのファイル targets.txt は現在のディレクトリ (~/project) にあるため、ファイル名のみを使用できます。

実際のスキャンを実行する前に、Nikto のオプションに慣れておくことをお勧めします。ヘルプメニューを表示するには、次を実行します。

nikto -Help

出力にスクロールすると、-h / -host オプションの説明が見つかり、ホストまたはホストのファイルを受け取ることができることが確認できます。実際のスキャンは次のステップで実行します。

マルチターゲットスキャンを開始する

ターゲットファイルを作成し、コマンド構造を理解したので、いよいよスキャンを開始します。Nikto は targets.txt ファイルを読み込み、その中にリストされている各ホストを順番にスキャンします。

スキャンを開始するには、ターミナルで以下のコマンドを実行してください。複数のホストのスキャンには数分かかる場合があるため、しばらくお待ちください。

nikto -h targets.txt

ターミナルには、スキャンのリアルタイムの進捗状況が表示されます。

Nikto が各ホストを順次スキャンする際の出力を監視する

このステップでは、Nikto によって生成される出力を観察します。実行する新しいコマンドはありません。スキャンが進むにつれて、各ターゲットの詳細情報が表示されます。

まず、Nikto はバナーを表示し、最初のターゲットである scanme.nmap.org からスキャンを開始します。IP アドレス、サーバーソフトウェア、検出された脆弱性などの情報が表示されます。

最初のホストに対する初期出力の抜粋例は次のようになります。

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          45.33.32.156
+ Target Hostname:    scanme.nmap.org
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: Apache/2.4.7 (Ubuntu)
... (scanme.nmap.org の脆弱性チェックと検出結果) ...

scanme.nmap.org のスキャンが完了すると、Nikto は自動的に次のターゲットである example.com のスキャンを開始します。出力には、新しいターゲットへの切り替えが明確に示されます。

... (scanme.nmap.org のスキャン終了) ...
+ 1 host(s) tested
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          93.184.216.34
+ Target Hostname:    example.com
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: ECS (sjc/4E5D)
... (example.com の脆弱性チェックと検出結果) ...

プロセス全体が完了するまで、ターミナルを監視してください。

出力または保存されたファイルで結合された結果を確認する

Nikto が targets.txt 内のすべてのホストのスキャンを完了すると、最終的な概要が表示されます。この概要には、テストされたホストの総数とスキャンの終了時刻が含まれます。すべてのホストのスキャンログ全体がターミナルに表示されます。

ターミナルで出力を表示することも便利ですが、ドキュメント作成やさらなる分析のためには、結果をファイルに保存する方が良いでしょう。これは -o (または -output) フラグを使用して行うことができます。

スキャンを再度実行しますが、今回は出力を scan_results.txt という名前のファイルに保存します。

nikto -h targets.txt -o scan_results.txt

このコマンドは同じスキャンを実行しますが、画面に出力を表示するだけでなく、scan_results.txt にも書き込みます。スキャンが完了した後、cat コマンドを使用して保存されたレポートの内容を表示できます。

cat scan_results.txt

これにより、スキャンを再度実行することなく、いつでもすべてのスキャン済みホストの結果を確認できます。

まとめ

この実験では、Nikto を使用して複数の Web サーバーのスキャンを自動化する方法を習得しました。各ターゲットを新しい行に記述したテキストファイルにターゲットリストを作成する練習をしました。次に、-h フラグを使用して Nikto をこのファイルに指定し、各ホストを順次スキャンできるようにしました。最後に、マルチホストスキャンの結合された結果を、レビューや記録保持のために簡単な -o フラグを使用して出力ファイルに保存する方法を学びました。この方法は、ネットワーク偵察および脆弱性評価ワークフローの効率を向上させるための基本的な技術です。