niktoは、Webサーバと、そのWebサーバで稼動しているWebアプリケーションに対して、既に公表されているセキュリティホールやセキュリティ上で問題のある設定を、辞書ベースでスキャンできるツールです。
簡易版となりますが、Linux環境(CentOS)でのnikto利用方法を記載しています。
※自分が管理していないサーバに対しては利用しないようにお願いいたします。
※診断対象のサイト環境によると思いますが、誤報も多いと思います。
ダウンロード、解凍・インストール
公式サイトから「nikto-2.1.5.tar.gz」をダウンロードします。
niktoは任意の場所に解凍するだけで利用できるようになります。
# tar zxvf nikto-2.1.5.tar.gz
解凍されたディレクトリ内(上記載の場合は「nikto-2.1.5」ディレクトリ)に、実行ファイルがあります。
簡易実行手順
まずはシンプルに以下で実行します。
# perl nikto.pl -h (ターゲットホスト)
ご自身が管理しているホストに対してのみ実行してください。(ご自身が管理していないホストに対しては実行しないでくださいね。)
実行時にターゲットホストの access_log や error_log などを見ていると、どのようなチェックがされているか見れます。
プラグインとデータベースの更新
以下のコマンドでプラグインとデータベースを更新できます。
$ perl nikto.pl -update + Retrieving 'db_variables' + Retrieving 'db_favicon' + Retrieving 'db_server_msgs' + Retrieving 'nikto_robots.plugin' + Retrieving 'nikto_cookies.plugin' + Retrieving 'db_tests' + Retrieving 'db_outdated' + Retrieving 'CHANGES.txt' + CIRT.net message: Please submit Nikto bugs to http://trac2.assembla.com/Nikto_2/report/2 $
頻繁には更新されないようです。
実行時のオプション
以下が実行時に使えるオプション(抜粋)です。
- -Help
- $ perl nikto.pl -Help
- オプションのヘルプが表示されます。
- -list-plugins
- $ perl nikto.pl -list-plugins
- プラグインをリスト表示できるオプションです。
- -Display
- nikto実行結果の画面表示を制御できます。
- デフォルトでは細かい実行結果は表示されないですが、オプション「V」を付けると詳細結果が画面表示されます。
- $ perl nikto.pl -h <ターゲットホスト> -Display V
- オプション「P」を付けると、実行の進捗がサマリーで表示されます。
- $ perl nikto.pl -h <ターゲットホスト> -Display P
- -no404
- 404ページを無視してくれるオプションです。
- 404にも関わらず誤報するケースがあると思いますので、その際は使えるオプションだと思うのですが、報告されてしまうケースもあります(結果として誤報となる)。
- -IgnoreCode
- 2.1.5 から増えたオプションで、指定したHTTPコードを無視してくれるようです。
- ソースまで追っていないのですが、実際のオプション指定方法が良く分かりません。以下のように指定すると実行できるようですが、ヘルプとは異なる指定になります。
- $ perl nikto.pl -h <ターゲットホスト> -IgnoreCode 302,301
- その際も、404のページが報告されなくなります。現時点で正確な挙動が良く分かりません。
- -Version
- プラグインとデータベースのバージョンを一覧表示します。
オプションはいくつもあります。
設定ファイル
設定ファイルは、nikto.confが利用されます。
(/etc/nikto.conf →$HOME/nikto.conf→nikto.conf の順で検索されます。)
通常は、デフォルト設定から変更する必要はないと思います。