
Vulscanは、nmapを脆弱性スキャナーに拡張するモジュールです。nmapオプション -sV はサービスごとのバージョン検出を有効にし、特定された製品に応じた潜在的な欠陥を特定するために使用されます。データはオフラインバージョンのVulDBで検索されます。
以下のNmapインストールのフォルダにファイルをインストールしてください:
Nmap\scripts\vulscan\*
以下のようにGitHubリポジトリをクローンします:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
簡単な脆弱性スキャンを開始するには、以下の最小限のコマンドを実行します:
nmap -sV --script=vulscan/vulscan.nse www.example.com
現在、以下のプリインストールされたデータベースが利用可能です:
単一のデータベースを使用するには、以下の引数を指定してvulscanを実行できます:
--script-args vulscandb=your_own_database
独自のデータベースを作成して参照することも可能です。これには、以下の構造を持つデータベースファイルを作成する必要があります:
<id>;<title>
プリインストールされたデータベースのいずれかを参照する場合と同様にvulscanを実行してください。独自のデータベースと脆弱性の関連情報を共有していただき、公式リポジトリに追加することを歓迎します。
脆弱性データベースは定期的に更新・統合されています。最新の公開脆弱性に対応するために、ローカルの脆弱性データベースを最新の状態に保ってください。
データベースを自動更新するには、update.shファイルに実行権限を設定して実行するだけです:
chmod 744 update.sh
./update.sh
手動でデータベースを更新する場合は、以下のWebサイトにアクセスしてこれらのファイルをダウンロードしてください:
ファイルをvulscanフォルダにコピーします:
/vulscan/
バージョン検出でソフトウェアのバージョンが特定でき、脆弱性データベースがそのような詳細を提供している場合、そのデータもマッチングされます。
この機能を無効にすると、誤検知が発生する可能性がありますが、同時に誤検知を排除し、パフォーマンスがわずかに向上する可能性があります。追加のバージョンマッチングを無効にするには、以下の引数を使用します:
--script-args vulscanversiondetection=0
vulscanのバージョン検出は、Nmapのバージョン検出と脆弱性データベースのエントリに依存します。一部のデータベースは決定的なバージョン情報を提供しておらず、これにより多くの誤検知が発生する可能性があります(Apacheサーバーで見られるように)。
スクリプトは最良のマッチのみを特定しようとします。肯定的なマッチが見つからなかった場合、最良の可能性のあるマッチ(誤検知の可能性あり)が表示されます。
すべてのマッチを表示したい場合(多くの誤検知が発生する可能性がありますが、さらなる調査に役立つ可能性があります)、以下の引数を使用します:
--script-args vulscanshowall=1
インタラクティブモードは、各ポートのバージョン検出結果を上書きするのに役立ちます。インタラクティブモードを有効にするには、以下の引数を使用します:
--script-args vulscaninteractive=1
すべてのマッチング結果は1行ずつ出力されます。デフォルトのレイアウトは次のとおりです:
[{id}] {title}\n
以下の引数を使用して、別の定義済みレポート構造を使用することも可能です:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
以下の引数を使用して、独自のレポート構造を適用することもできます(いくつかの例):
--script-args vulscanoutput='{link}\n{title}\n\n'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})\n'
--script-args vulscanoutput='{id} | {product} | {version}\n'
動的レポートテンプレートでサポートされている要素は次のとおりです:
すべてのデフォルトデータベースにはURLとリンクが付属しており、スキャン中に使用され、カスタマイズされたレポートテンプレート内で{link}としてアクセスできます。カスタムデータベースリンクを使用するには、以下の引数を使用します:
--script-args "vulscandblink=http://example.org/{id}"
この種の派生的な脆弱性スキャンは、nmapのバージョン検出の信頼性、文書化された脆弱性の量、およびパターンマッチングの精度に大きく依存することに注意してください。潜在的な欠陥の存在は、追加のスキャンやエクスプロイト技術によって検証されるわけではありません。