Vulscan は、nmap を脆弱性スキャナーに拡張するモジュールです。 nmap オプション -sV は、特定された製品に応じて潜在的な欠陥を判断するために使用されるサービスごとのバージョン検出を有効にします。データは VulDB のオフライン バージョンで検索されます。
Nmap インストールの次のフォルダーにファイルをインストールしてください。
Nmapscriptsvulscan*
次のように 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>
事前に提供されたデータベースの 1 つを参照する場合と同様に、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}nn'
--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 のバージョン検出の信頼性、文書化された脆弱性の量、およびパターン マッチングの精度に大きく依存していることに注意してください。潜在的な欠陥の存在は、追加のスキャンや悪用技術によっては検証されません。