手軽にウェブサイトを脆弱性診断 – nikto

kiccoCentOS,linux,nicto,フリー,無料,脆弱性,診断

こんにちは、kiccoです。
春先に比べ大分お腹まわりがすっきりしてきました。
・炭水化物の量を減らす
・バナナダイエット
・自転車で隣駅までサイクリング
自転車は走るのに比べてひざや腰への衝撃が少ないのが良いですね。

さて今回は nikto を使って手軽にウェブサイトの脆弱性診断をやってみます。

nikto はオープンソース(GPL)のウェブサーバ・スキャナで、Perl で書かれています。
ウェブサーバに対し包括的なテストを行い、3500を超える潜在的な危険性のあるファイルやCGIをスキャンします。
スキャン項目やプラグインは頻繁に更新され、自動的に更新することができます。

それではまずインストールしてみましょう。今回はCentOS5で実行することにします。
$ cat /etc/redhat-release
CentOS release 5.2 (Final)

ホームページのトップにDownloadリンクがありますので、そこからソースを取得します。
$ wget http://www.cirt.net/nikto/nikto-current.tar.gz

ソースを解凍しインストール作業は完了です。
$ tar xzf nikto-current.tar.gz
$ ls -l
drwxr-xr-x 6 kicco kicco 4096 Sep 5 2008 nikto
-rw-rw-r-- 1 kicco kicco 495357 Sep 5 2008 nikto-current.tar.gz

これで準備が整いました。nikto.pl を引数なしで実行すると簡易ヘルプが表示されます。
$ cd nikto
$ perl nikto.pl
- Nikto v2.03/2.04
---------------------------------------------------------------------------
+ ERROR: No host specified
+ ERROR: No host specified
 
   -Cgidirs+    scan these CGI dirs: 'none', 'all', or values like "/cgi/ /cgi-a/"
   -dbcheck     check database and other key files for syntax errors (cannot be 
abbreviated)
   -evasion+    ids evasion technique
   -Format+     save file (-o) format
   -host+       target host
   -Help        Extended help information
   -id+         host authentication to use, format is userid:password
   -mutate+     Guess additional file names
   -output+     write output to this file
   -port+       port to use (default 80)
   -Display+    turn on/off display outputs
   -ssl         force ssl mode on port
   -Single      Single request mode
   -timeout+    timeout (default 2 seconds)
   -Tuning+     scan tuning
   -update      update databases and plugins from cirt.net (cannot be abbreviated)
   -Version     print plugin and database versions
   -vhost+      virtual host (for Host header)
 + requires a value
'Help’オプションでより詳細な情報を確認できます。

スキャンを開始する前に、スキャン項目やプラグインのアップデートを行います。
$ perl nikto.pl -update
+ Retrieving 'db_tests'
+ Retrieving 'db_outdated'
+ www.cirt.net message: Please submit your bugs!!
'db_tests’と’db_outdated’が更新されました。

パッケージのアップデートを行っていないウェブサーバを用意しました。
早速80番ポートに対しスキャンしてみましょう。
$ perl nikto.pl -host kicco.zoo.tricorn.co.jp
- Nikto v2.03/2.04
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    kicco.zoo.tricorn.co.jp
+ Target Port:        80
+ Start Time:         2009-07-31 15:02:54
---------------------------------------------------------------------------
+ Server: Apache/2.2.3 (CentOS)
- Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging and should be disabled. This message does not mean it is vulnerable to XST.
+ Apache/2.2.3 appears to be outdated (current is at least Apache/2.2.11). Apache 1.3.41 and 2.0.63 are also current.
+ OSVDB-877: TRACE / : TRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details
+ OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons
+ OSVDB-3233: GET /icons/README : Apache default file found.
+ 3577 items checked: 6 item(s) reported on remote host
+ End Time:        2009-07-31 15:03:18 (24 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
 
Test Options: -host kicco.zoo.tricorn.co.jp
---------------------------------------------------------------------------
以下の項目が指摘されてます。
1) TRACEメソッドが有効になっている
2) Apacheが最新版(2.2.11)ではない
3) '/icons/’のディレクトリ・インデックスが有効になっている
4) '/icons/README’ファイルが参照できる

指摘項目に対し以下の対応を行いました。
1) TRACEメソッドを無効化
2) Apacheを最新版(2.2.11)にアップデート
3) '/icons/’のディレクトリ・インデックスを無効化
4) '/icons/README’ファイルを削除

もう一度スキャンしてみます。
- Nikto v2.03/2.04
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    kicco.zoo.tricorn.co.jp
+ Target Port:        80
+ Start Time:         2009-07-31 21:05:25
---------------------------------------------------------------------------
+ Server: Apache/2.2.11 (Fedora)
- Allowed HTTP Methods: GET, HEAD, POST, OPTIONS 
+ 3577 items checked: 1 item(s) reported on remote host
+ End Time:        2009-07-31 21:05:35 (10 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
 
Test Options: -host kicco.zoo.tricorn.co.jp
今度は何も指摘されません。
前回指摘された脆弱性が解消されたことを確認できました。

お金も時間もかけずサイトの脆弱性を手軽にチェックできるところがいいですね。
次回はSSLウェブサーバの診断を取り上げたいと思います。

それではまた(^o^)!

kiccoCentOS,linux,nicto,フリー,無料,脆弱性,診断

Posted by kicco