Nmapと略されるネットワークマッパーは、リモートホストをスキャンし、開いているポート、OSバージョン、開いているポートでリッスンしているサービスのバージョンなどの豊富な情報をプローブするオープンソースのネットワークスキャンツールです。使用される引数に応じて、Nmapは、CVSS(Common Vulnerability Scanning System)に基づく古い脆弱性に関連する根本的なシステムの脆弱性も明らかにします。このため、Nmapは、侵入テストを行い、ハッカーが悪用できる抜け穴を明らかにするための貴重な偵察ツールです。実際、侵入テストとデジタルフォレンジック専用のオペレーティングシステムであるKaliとParrotOSにプリインストールされています。
この記事では、リモートホストに関する有用な情報を収集するのに役立ついくつかの有用なNmapコマンドに焦点を当てます。
基本的なNmap構文
最も基本的なNmapコマンドは、単一のホストをスキャンすることを含み、引数としてリモートターゲットのIPアドレスまたはホスト名のみを必要とします。
$ nmap hostname
または
$ nmap remote-host-ip
次に、いくつかのNmapのユースケースについて詳しく見ていきましょう。このガイドでは、KaliLinuxを使用してリモートホストをスキャンします。
単一のリモートホストをスキャンする
単一のホストのスキャンは非常に簡単です。必要なのは、引数としてリモートホストのIPアドレスまたはドメイン名を渡すことだけです。たとえば、
$ nmap 192.168.2.103
Nmapスキャンレポートには、開いているポート、ポートの状態、ポートでリッスンしているサービスなどの詳細が含まれます。
複数のリモートホストをスキャンする
複数のリモートホストがあるシナリオでは、示されているように、それらのIPアドレスを1行で渡すだけです。
$ nmap 192.168.2.103 192.168.2.1
連続するリモートホストのIPアドレスをスキャンする場合は、次のようにアドレスにサフィックスを付けます。
$ nmap 192.168.2.1,2,3,4
上記のコマンドは、リモートホスト 192.168.2.1、192.168.2.2、192.168.2.3、をスキャンします および192.168.2.4
さまざまなリモートホストをスキャンする
ある範囲のIPアドレスにリモートホストがある場合は、ハイフンで区切って範囲を指定できます。
$ nmap 192.168.2.100-105
これにより、 192.168.2.100からすべてのリモートホストがスキャンされます 192.168.2.105へ 範囲。
サブネットをスキャンする
CIDR表記を使用すると、サブネット全体をスキャンできます。たとえば、次のコマンドは、 192.168.2.0内のすべてのリモートホストをスキャンします サブネット。
$ nmap 192.168.2.0/24
Nmapを使用したポートスキャン
-p を使用して、ターゲットホストで開いているポートを明示的にスキャンするようにNmapに指示できます。 フラグの後にポート番号が続きます。以下の例では、リモートホストのポート80をスキャンしています。
$ nmap -p 80 192.168.2.100
複数のポートを指定するには、以下に示すようにコンマを使用してそれらをリストできます。
$ nmap -p 80,135,139 192.168.2.100
ターゲットで開いているすべてのポートをスキャンするには、 –openを使用します 国旗。ここでは、侵入テストのために意図的に脆弱な仮想インスタンスであるMetasploitableLinuxをスキャンしています。
$ nmap --open 192.168.2.107
アクティブなリモートホストをスキャンします
サブネット内で稼働しているリモートホストを知りたいだけの場合は、 -snを渡します。 示されているようにフラグ。出力は特別なものではなく、アクティブなホストの簡単な要約にすぎません。
$ nmap -sn 192.168.2.0/24
OSフィンガープリンティング
-Oフラグを使用すると、ホストのオペレーティングシステムをある程度検出することもできます。ただし、これはターゲットのOSの正確なバージョンを提供するものではありません。以下の例では、Windows 10で実行されているホストをスキャンしていますが、OSの推測によると、リモートホストはWindowsXPSP2またはWindowsServer2008/2008R2である可能性があります。
# nmap -O 192.168.2.103
サービスの検出
-sV を使用して、関連付けられたポートでリッスンしているサービスの要点を理解できます。 国旗。一般的なサービスには、SSH(ポート22)、HTTP(ポート80)、およびDNS(ポート53)が含まれます。サービス検出は、最も重要なスキャンタスクの1つです。これは、システムを悪用や攻撃を受けやすくする可能性のある古いサービスバージョンを指摘するのに役立ちます。
$ nmap -sV 192.168.2.107
Nmapを使用してステルススキャンを実行します
ステルススキャンはSYNスキャンとも呼ばれ、目立たない種類のスキャンであり、可能な限り短い時間で複数のポートをすばやくスキャンします。 SYNパケットがリモートターゲットに送信され、応答を受信すると、Nmapはポートが開いているか、フィルタリングされているか、閉じているかをレポートできます。
$ nmap -sS 192.168.2.107
詳細スキャンを実行する
-A flagは、リモートターゲットのポートの詳細な検査を実行し、実行中のサービスのバージョンに関する詳細を提供し、サービスの脆弱性を指摘します。
$ nmap -A 192.168.2.107
ファイアウォールの識別を実行する
Nmapは、ファイアウォールの識別を実行して、ポートがフィルタリングされているかどうかを確認することもできます。 -sA オプションは、ファイアウォールが有効になっていて、-pフラグおよびポート番号と組み合わせる必要があるかどうかを確認します。 「フィルタリングされていない」とは、ポートがファイアウォールの背後にないことを意味し、「フィルタリングされた」とは、有効になっているファイアウォールで開かれていることを意味します。
$ nmap -sA 192.168.2.107 -p 21
TCPまたはUDPプロトコルをスキャンする
TCPポートのみをスキャンする場合は、 -sTを使用します 示されているようにフラグを立てます。
$ nmap -sT 192.168.2.107
スキャンしてUDPプロトコルのみを表示する場合は、 -sTを使用してください オプション。
# nmap -sU 192.168.2.107
Nmapスクリプトを使用して脆弱性をスキャンする
Nmap Scripting Engine(略してNSE)は、Nmapの機能を拡張するNmapスクリプトを提供します。 Nmapスクリプトは、主に脆弱性の調査とマルウェアの検出に使用されます。これらのスクリプトはKaliLinuxにプリインストールされており、 / usr / share / nmap / scriptsにあります。 道。一意の.nseファイル拡張子が付いています。
たとえば、SSHを使用してリモートホストをブルートフォースできるかどうかを確認するには、以下のNmapスクリプトを使用します。
$ nmap --script=ssh-brute.nse 192.168.2.107
Nmapスキャン結果を保存する
急いでいて、後で確認するためにNmapスキャンの結果を保存したい場合は、示されているように、記号よりも大きいリダイレクトを使用できます。
$ nmap -sT 192.168.2.103 > myscans.txt
テキストファイルからホストをスキャンする
または、テキストファイルで定義されているリモートホストをスキャンすることもできます。ファイルを読み取るには、– iLを使用します オプション。
$ nmap -A iL hosts.txt
結論
リモートホストのスキャンを開始するために使用できる15のNmapコマンドをリストしました。ホストのスキャンと脆弱性の調査に使用されるNmapコマンドとNmapスクリプトは数百から数百あります。これで、Nmapの基本と、リモートターゲットに関する情報を明らかにするためのコマンドの実行について理解できたと思います。組織の資産をスキャンすることを検討している場合は、問題が発生しないように、管理者に許可を求めるようにしてください。