脆弱性スキャンにNmapを使用する方法は?

公開: 2022-04-07

Nmap(ネットワークマッパー)は、ポートスキャンや脆弱性検出など、ネットワーク全体の機能と侵入テストのためのツールキットです。

Nmapスクリプトエンジン(NSE)スクリプトは、Nmapの最も一般的で強力な機能の1つです。 これらのNmap脆弱性スキャンスクリプトは、侵入テスターやハッカーが一般的な既知の脆弱性を調査するために使用します。

Common Vulnerabilities and Exposures(CVE)は、公開されているデータセキュリティ問題のデータベースです。 これは、情報システムのセキュリティに関連する脆弱性と脅威を検出するための参照モデルとして機能します。

この記事では、脆弱性スキャンにNmapを使用する方法を見ていきます。

始めましょう!

Nmapのインストール

Nmapは、ほぼすべてのLinuxディストリビューションにプリインストールされています。 不足している場合は、手動でインストールする必要があります。 次のコマンドで簡単にインストールできます。

 apt-get install nmap

また、公式のgitリポジトリのクローンを作成してインストールすることもできます。

 git clone https://github.com/nmap/nmap.git

次に、そのディレクトリに移動し、以下のコマンドを使用して要件をインストールします。

 ./configure make make install

このソフトウェアの最新バージョン、およびWindows、macOS、Linux(RPM)のバイナリインストーラーは、こちらから入手できます。

Nmapを使用した脆弱性スキャン

Nmap-vulnersvulscan 、およびvulnは、Nmap検索エンジンで一般的で最も人気のあるCVE検出スクリプトです。 これらのスクリプトを使用すると、システムのセキュリティ上の欠陥に関する重要な情報を見つけることができます。

Nmap-脆弱性

最もよく知られている脆弱性スキャナーの1つは、Nmap脆弱性です。 このツールの設定方法と基本的なCVEスキャンの実行方法を見てみましょう。 NmapスクリプトエンジンはHTTP応答を検索して、指定されたスクリプトのCPEを識別します。

インストール

Nmap-vulnersスクリプトをインストールするには、次のコマンドを使用してNmapスクリプトディレクトリに移動します。

 cd /usr/share/nmap/scripts/

次のステップは、gitリポジトリのクローンを作成することです。

 git clone https://github.com/vulnersCom/nmap-vulners.git

gitリポジトリのクローンを作成した後は、構成のために他に何もする必要はありません。 ツールは自動的にインストールされます。

また、Nmap-vulnersデータベースに存在するNSEスクリプトを確認する場合は、 lsコマンドを使用します。 ターミナルにすべての.nse拡張子スクリプトが表示されます。

使用法

NSEスクリプトは簡単に使用できます。 -script引数をNmapコマンドに渡すだけで、使用するNSEスクリプトを指示できます。

 nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target>

NSEスクリプトを使用している間は、「-sV」引数を渡すことを忘れないでください。 Nmap-vulnersは、Nmapからバージョン情報を受信しない場合、Vulnersエクスプロイトデータベースにアクセスできません。 したがって、-sVパラメーターは常に必要です。

コマンドの例

構文は非常に単純です。 「–script」オプションを指定してスクリプトを呼び出し、脆弱性エンジンとターゲットを指定してスキャンを開始するだけです。

 nmap -sV --script nmap-vulners/ <target>

特定のポートをスキャンする場合は、コマンドの最後に「-p」オプションを追加して、スキャンするポート番号を渡します。

 nmap -sV --script nmap-vulners/ <target> -p80,223

Nmap –脆弱性

NSEスクリプトは、各スクリプトが属する一連の事前定義されたカテゴリに従って分類されます。 認証、ブロードキャスト、ブルートフォース、侵入型、マルウェア、セーフ、バージョン、および脆弱性は、いくつかのカテゴリです。 NSEスクリプトのすべてのカテゴリタイプとそのフェーズは、ここにあります。

「vuln」カテゴリに分類されるスクリプトは、特定の既知の脆弱性を探し、ターゲットシステムで特定された場合にのみ報告します。

 nmap -sV --script vuln <target>

Nmap-vulscan

Vulscanは、サービスとバージョン検出に基づいてターゲットの脆弱性を検出する際にNmapを支援するNSEスクリプトです。 vulscanは、脆弱性スキャナーに変換するNmapのモジュールのようなものです。 Nmapオプション-sVは、サービスごとのバージョン検出を可能にします。これは、システムで検出された脆弱性の潜在的なエクスプロイトを識別するために使用されます。

現在、次のプレインストールされたデータベースが利用可能です。

  • exploredb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

インストール

Vulscanをインストールするには、まず、次のコマンドを使用してNmapスクリプトディレクトリに移動します。

 cd /usr/share/nmap/scripts/

次のステップは、gitリポジトリのクローンを作成し、すべての要件をインストールすることです。

 git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan

Vulscanは、マシンにローカルに保存された事前構成済みのデータベースを利用します。 データベースを更新するには、アップデータディレクトリに移動します。 ターミナルに次のコマンドを入力して、アップデータディレクトリに移動します。

 cd vulscan/utilities/updater/

次に、システムで実行するファイルの権限を変更します。

 chmod +x updateFiles.sh

そして最後に、以下のコマンドでエクスプロイトデータベースを更新します。

 ./updateFiles.sh

使用法

vulscanを使用してNmap脆弱性スキャンを実行してみましょう。 vulscan NSEスクリプトは、nmap-vulnersと同じように使用できます。

 nmap -sV --script vulscan <target>

デフォルトでは、Vulscanはすべてのデータベースを同時に検索します。 すべてのデータベースを使用して情報を照会するには、多くの時間がかかります。 vulscandbパラメーターを使用すると、一度に1つのCVEデータベースのみを渡すことができます。

 --script-args vulscandb=database_name

コマンドの例

nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,233

個々の脆弱性スキャン

個々の脆弱性スキャンは、各カテゴリ内の特定のスクリプトを利用して実行することもできます。 これは、600以上のすべてのNSEスクリプトと139のNSEライブラリのリストです。

  • http-csrf :クロスサイトリクエストフォージェリ(CSRF)の脆弱性は、このスクリプトによって検出されます。
 nmap -sV --script http-csrf <target>
  • http- sherlock:Webアプリケーションの「shellshock」脆弱性を悪用することを目的としています。
 nmap -sV --script http-sherlock <target>
  • http-slowloris-attack: DoS攻撃を開始せずに、このスクリプトはWebサーバーまたはターゲットシステムの脆弱性をチェックして、SlowlorisDoS攻撃を実行します。
 nmap -sV --script http-slowloris-check <target>
  • http-vmware-path-vuln :VMWare ESX、ESXi、およびServerはすべて、パストラバーサルの脆弱性についてテストされています
nmap -sV --script http-vmware-path-vuln <target>
  • http-passwd :/etc/passwdまたはboot.iniを取得して、Webサーバーがディレクトリトラバーサルに対して脆弱かどうかを確認します。
 nmap -sV --script http-passwd <target>
  • http-internal-ip-disclosure :HostヘッダーなしでHTTP / 1.0リクエストを送信する場合、このチェックにより、Webサーバーが内部IPアドレスをリークしているかどうかが判断されます。
 nmap -sV --script http-internal-ip-disclosure <target>
  • http-vuln-cve2013-0156 :DOS攻撃およびコマンドインジェクションに対して脆弱なRubyonRailsサーバーを検出します。
 nmap -sV --script http-vuln-cve2013-0156 <target-address>

そして最後に、「vuln」カテゴリに分類されるすべてのNSEスクリプトのリストを示します。

システムはNmapスキャンを検出できますか?

偵察は、倫理的なハッキングと侵入テストの最初のフェーズです。 ハッカーは偵察フェーズを使用して、攻撃するシステムの欠陥や抜け穴を特定します。 したがって、防衛システムはそれらを検出できる必要があります。

SIEM(セキュリティ情報およびイベント管理)ツール、ファイアウォール、およびその他の防御手段を使用すると、アラートを受信します。 そして、ここにサイバー攻撃からあなたのビジネスと組織を保護するための最高のSIEMツールのリストがあります。 これらのツールは、Nmapスキャンのログ記録にも役立ちます。 脆弱性スキャンは、早期の識別によってシステムへの将来の損傷を回避できるため、価値があります。

結論

この記事が脆弱性スキャンにNmapを使用する方法を学ぶのに非常に役立つことを願っています。

脆弱性を見つけるために、オープンソースのWebセキュリティスキャナーのリストを学ぶことにも興味があるかもしれません。