はじめに
Nikto は、人気のあるオープンソースのウェブサーバー スキャナーであり、6,700 を超える潜在的に危険なファイル/プログラム、1,250 を超えるサーバーの古いバージョン、および 270 を超えるサーバーのバージョン固有の問題を含む、複数の項目に対してウェブサーバーに対して包括的なテストを実行します。
Nikto が最新の脆弱性を検出できるようにするには、データベースとプラグインを最新の状態に保つことが不可欠です。新しい脆弱性は常に発見されており、Nikto 開発チームはスキャン エンジン、プラグイン、および脆弱性データベースのアップデートを定期的にリリースしています。この実験では、Nikto を最新バージョンにアップデートする簡単なプロセスを学びます。
現在のデータベースとエンジンのバージョンを確認する
このステップでは、Nikto のコア エンジン、プラグイン、スキャン データベースを含む、現在の Nikto インストールのバージョンを確認します。これは、アップデートを実行する前に現在の状態を確認するための重要な最初のステップであり、後でアップデートが成功したことを確認できるようになります。
バージョン情報を確認するには、-Version オプションを使用します。ターミナルを開き、次のコマンドを実行します。
nikto -Version
以下のような出力が表示されます。実験環境の初期状態によって、具体的なバージョン番号は異なる場合があることに注意してください。
---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
+ Target IP:
+ Target Hostname:
+ Target Port:
+ Start Time: ...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Nikto Core Revision: ...
+ LibWhisker Revision: ...
+ Plugin Revision: 20220410
+ Database Revision: 20220409
Plugin Revision と Database Revision の行に特に注意してください。これらが、アップデートするコンポーネントです。
-update を使用してアップデートコマンドを実行する
このステップでは、Nikto の組み込みアップデート機能を使用します。Nikto は、公式リポジトリである cirt.net から直接、自身のプラグインとデータベースをアップデートできます。
このプロセスを開始するためのコマンドは nikto -update です。このコマンドは、Nikto にリモートサーバーに接続し、コンポーネントの新しいバージョンを確認し、利用可能な場合はダウンロードするように指示します。
アップデートプロセスを開始するには、ターミナルで次のコマンドを実行してください。
nikto -update
Nikto はインターネットに接続し、最新のファイルをダウンロードしようとします。
プラグインとデータベースのアップデートプロセスを観察する
このステップでは、先ほど実行したコマンドの出力を観察します。nikto -update を実行した後、ターミナルにアップデートプロセスを詳細に説明する一連のメッセージが表示されます。ここでは新しいコマンドを実行する必要はありません。前のステップの出力を確認するだけで十分です。
出力は以下のようになります。
---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
+ Target IP:
+ Target Hostname:
+ Target Port:
+ Start Time: ...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Checking for plugin updates...
+ Plugins are current, no update needed.
+ Checking for database updates...
+ The 'db_tests' file is not current.
+ Downloading db_tests.tar.gz...
...
+ Unpacking db_tests.tar.gz...
+ 1010 items unpacked.
+ Done.
この出力は、Nikto が正常にアップデートを確認したことを確認します。この例では、プラグインは既に最新でしたが、テストデータベース (db_tests) は古くなっていたため、ダウンロードおよび展開されました。お使いの環境では、プラグインとデータベースの両方のアップデートが表示される場合があります。
アップデート後の新しいコンポーネントのバージョンを確認する
このステップでは、アップデートが成功したことを確認します。最初のステップで行ったのと同じように、バージョン情報を再度確認します。これにより、新しいプラグインとデータベースファイルが Nikto によって認識され、使用されていることを確認できます。
もう一度 nikto -Version コマンドを実行してください。
nikto -Version
次に、新しい出力とステップ 1 で見た出力を比較します。Plugin Revision と Database Revision の日付は、より新しいものになっているはずです。
---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Nikto Core Revision: ...
+ LibWhisker Revision: ...
+ Plugin Revision: 20231025 <-- Should be newer
+ Database Revision: 20231112 <-- Should be newer
更新されたリビジョン番号が表示されることで、お使いの Nikto インスタンスが最新のコンポーネントを使用していることが確認できます。
アップデートされたコンポーネントでテストスキャンを実行する
この最終ステップでは、アップデート後に Nikto が完全に機能していることを確認するために、簡単なテストスキャンを実行します。ローカルのウェブサーバーに対するシンプルなスキャンで、エンジン、プラグイン、データベースがすべて正しく連携して動作していることを確認できます。
実験環境には、ローカルの Apache ウェブサーバーが実行されています。ターゲットホストとして localhost を使用してスキャンできます。-h オプションはホストを指定するために使用されます。
スキャンを開始するには、次のコマンドを実行してください。
nikto -h localhost
Nikto はローカルのウェブサーバーのスキャンを開始します。サーバーの情報と潜在的な検出事項を詳細に示す出力が表示されます。スキャンの開始が成功したことは、アップデートされたコンポーネントが正しく動作していることを示しています。
---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: ...
---------------------------------------------------------------------------
- Server: Apache/2.4.52 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
...
+ 6557 requests: 0 error(s) and 7 item(s) reported on remote host
+ End Time: ...
---------------------------------------------------------------------------
- 1 host(s) tested
この出力が表示されることで、アップデートされた Nikto スキャナーが動作していることが確認できます。
まとめ
この実験はこれで完了です!
Nikto ウェブスキャナーの管理とアップデート方法を習得しました。現在のコンポーネントのバージョンを確認し、nikto -update コマンドを実行して最新のプラグインとデータベースを取得し、バージョンを再確認してアップデートが成功したことを検証し、すべてが正しく機能していることを確認するためにテストスキャンを実行しました。
セキュリティツールを最新の状態に保つことは、サイバーセキュリティにおける基本的な実践です。これにより、最近発見された脅威や脆弱性を検出するための準備が整います。


