はじめに
この実験では、Nmap を使ってオペレーティングシステムを特定する方法を学びます。この実験では、OS 検出用のさまざまな Nmap コマンドを扱います。基本的な OS スキャンの実行、推測モードの有効化、OS とポートスキャンの組み合わせ、スキャンの微調整、結果のエクスポートなどが含まれます。Xfce 端末で nmap -O <target_ip> のようなコマンドを実行し、出力に OS の詳細を表示します。
これらの実践的な手順により、Nmap を使ってターゲットマシンのオペレーティングシステムを検出する実際のスキルを身につけることができます。Nmap が応答を分析して OS 情報を提供する方法を示す例もあります。
nmap -O 192.168.1.1 を使って OS 検出を実行する
このステップでは、Nmap を使ってターゲットマシンの OS 検出を行います。OS 検出は、リモートホストで実行されているオペレーティングシステムを特定するために使用される技術です。Nmap は、ターゲットに一連の特別に作成されたパケットを送信し、応答を分析して OS を特定します。
始める前に、使用するコマンドの基本構文を理解しましょう:
nmap -O <target_ip>
nmap:これは使用するコマンドラインツールです。-O:このオプションは Nmap に OS 検出を有効にするように指示します。<target_ip>:これはスキャンしたいターゲットマシンの IP アドレスです。この場合、それは192.168.1.1です。
さて、IP アドレス 192.168.1.1 のターゲットマシンに対して OS 検出を実行するコマンドを実行しましょう。Xfce 端末を開き、次のコマンドを入力します:
nmap -O 192.168.1.1
コマンドを実行した後、Nmap はターゲットマシンにさまざまなプローブを送信し、応答を分析します。Nmap が成功して OS を特定した場合、出力に OS の詳細が表示されます。出力は次のようになるかもしれません(正確な出力はターゲット OS によって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE
80/tcp open http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
上記の例では、Nmap はターゲットマシンが Linux オペレーティングシステムを実行していると特定しています。出力にはカーネルバージョンに関する詳細も含まれています。
Nmap が正確な OS を特定できない場合、可能性のある OS 候補のリストを提供する場合があります。場合によっては、Nmap がまったく OS を検出できないこともあります。これは、ターゲットマシンがファイアウォールの後ろにある場合や、OS がその識別情報を隠すように構成されている場合に発生する可能性があります。
nmap -O --osscan-guess 127.0.0.1 を使って推測を有効にする
このステップでは、Nmap を使ってローカルホスト(127.0.0.1)で --osscan-guess オプションを使って OS 検出を行います。このオプションは、Nmap に OS 検出の試行をより積極的に行わせます。Nmap が OS について確信できない場合、このオプションはより熟慮された推測を行うのに役立ちます。
コマンドを分解してみましょう:
nmap -O --osscan-guess 127.0.0.1
nmap:これは使用するコマンドラインツールです。-O:このオプションは Nmap に OS 検出を有効にするように指示します。--osscan-guess:このオプションは Nmap に OS をより積極的に推測するように指示します。127.0.0.1:これはスキャンしたいターゲットマシンの IP アドレスで、この場合はローカルホストです。
さて、ローカルホストで --osscan-guess オプションを使って OS 検出を実行するコマンドを実行しましょう。Xfce 端末を開き、次のコマンドを入力します:
nmap -O --osscan-guess 127.0.0.1
コマンドを実行した後、Nmap はターゲットマシンにさまざまなプローブを送信し、応答を分析します。Nmap が成功して OS を特定した場合、出力に OS の詳細が表示されます。ローカルホストをスキャンしているので、OS 検出は比較的正確であるはずです。出力は次のようになるかもしれません(正確な出力はシステムによって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
631/tcp open ipp
9929/tcp open nping-echo
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.23 seconds
出力が必ずしも OS 名を明示的に表示しない場合があることに注意してください。時々、開いているポートやその他の情報のみが表示されます。ただし、Nmap は依然としてバックグラウンドで OS 検出を行い、--osscan-guess オプションはより正確な結果の可能性を高めます。
nmap -O -p 1-100 192.168.1.1 を使って OS とポートを組み合わせる
このステップでは、Nmap を使って OS 検出とポートスキャンを組み合わせます。これにより、ターゲットマシンのオペレーティングシステムを特定し、そのマシンで開いているポートを見つけることができます。これらの 2 つの技術を組み合わせることで、ターゲットシステムをより包括的に理解することができます。
コマンドを分解してみましょう:
nmap -O -p 1-100 192.168.1.1
nmap:これは使用するコマンドラインツールです。-O:このオプションは Nmap に OS 検出を有効にするように指示します。-p 1-100:このオプションは Nmap に 1 から 100 までのポートをスキャンするように指示します。192.168.1.1:これはスキャンしたいターゲットマシンの IP アドレスです。
さて、IP アドレス 192.168.1.1 のターゲットマシンに対して OS 検出とポートスキャンを実行するコマンドを実行しましょう。Xfce 端末を開き、次のコマンドを入力します:
nmap -O -p 1-100 192.168.1.1
コマンドを実行した後、Nmap はターゲットマシンにさまざまなプローブを送信し、応答を分析します。出力には OS の詳細と開いているポートの一覧が表示されます。出力は次のようになるかもしれません(正確な出力はターゲット OS と開いているポートによって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
上記の例では、Nmap はターゲットマシンが Linux オペレーティングシステムを実行しており、22 番ポート(SSH)と 80 番ポート(HTTP)が開いていることを特定しています。
OS 検出とポートスキャンを組み合わせることで、ターゲットマシンで実行されているオペレーティングシステムとサービスを迅速に特定することができます。この情報は、セキュリティ評価やネットワークトラブルシューティングにとても役立ちます。
Xfce 端末で OS の詳細を表示する
前のステップでは、ターゲットマシンのオペレーティングシステムを検出するために Nmap コマンドを実行しました。これらのスキャンの結果は、Xfce 端末に直接表示されました。このステップでは、端末出力に表示される OS の詳細をどのように解釈するかを理解することに焦点を当てています。
Nmap がオペレーティングシステムを正常に識別すると、通常、OS 名、バージョン、場合によってはカーネルバージョンなどの情報が表示されます。また、ソフトウェアとハードウェアの標準化された命名方式である CPE(Common Platform Enumeration)識別子も提供される場合があります。
前のステップの出力例を見直してみましょう:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
この例では、「OS details: Linux 3.2 - 4.9」の行は、Nmap がカーネルバージョンが 3.2 から 4.9 の間の Linux オペレーティングシステムを検出したことを示しています。「Device type: general purpose」の行は、デバイスが標準的なコンピュータであることを示唆しています。「Running: Linux 3.X|4.X」の行は同様の情報を提供しています。「OS CPE」の行は、オペレーティングシステムとカーネルのより具体的な識別子を提供しています。
Nmap が正確な OS を特定できない場合、利用可能な情報に基づいて「推測」を行う場合があります。このような場合、出力には「OS details: Unknown」や「OS details: Possibly Windows」のような記述が含まれる場合があります。前のステップで使用した「--osscan-guess」オプションは、これらの推測の精度を向上させるのに役立ちます。
OS の詳細を表示するには、前のステップで実行した Nmap コマンドの出力を見るだけです。OS 情報は通常、ポートスキャン結果の後、出力の上部近くに表示されます。
OS 検出は必ずしも完全ではなく、Nmap の結果は注意深く解釈する必要があることを忘れないでください。ファイアウォールやネットワーク構成などの要因が OS 検出を妨げる可能性があります。
このステップでは、新しいコマンドを実行する必要はありません。これまでに生成した出力を理解し、解釈することが目的です。
nmap -O --osscan-limit 192.168.1.1 を使ってスキャンを微調整する
このステップでは、--osscan-limit オプションを使って OS 検出スキャンを微調整します。このオプションは、少なくとも 1 つの開いた TCP ポートと 1 つの閉じた TCP ポートを持つホストに対してのみ OS 検出を試みるように Nmap に指示します。これにより、特に大規模なネットワークをスキャンする場合、スキャンを大幅に高速化し、誤陽性の可能性を低減することができます。
--osscan-limit オプションは役に立ちます。なぜなら、OS 検出はさまざまな TCP プローブに対する応答を分析することに依存しているからです。ホストが開いたポートのみを持つか、または閉じたポートのみを持つ場合、Nmap はオペレーティングシステムを正確に判断するのに十分な情報を収集できない可能性があります。
IP アドレス 192.168.1.1 のターゲットマシンに対して微調整された OS 検出スキャンを実行するコマンドを実行しましょう。Xfce 端末を開き、次のコマンドを入力します:
nmap -O --osscan-limit 192.168.1.1
コマンドを実行した後、Nmap は OS 検出を行いますが、少なくとも 1 つの開いた TCP ポートと 1 つの閉じた TCP ポートを持つホストに対してのみ行います。Nmap がオペレーティングシステムを識別できた場合、出力には OS の詳細が表示されます。出力は次のようになるかもしれません(正確な出力はターゲット OS と開いた/閉じたポートによって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
この例では、Nmap はターゲットマシンが Linux オペレーティングシステムを実行していることを特定しています。「Not shown: 999 closed ports」の行は、Nmap が開いたポート(22)のみをスキャンし、それと見つけた閉じたポートに基づいて OS を判断したことを示しています。
--osscan-limit オプションを使用することで、特に大規模なネットワークや異常なポート構成を持つホストを扱う場合、OS 検出スキャンをより効率的かつ正確に行うことができます。
nmap -O -oN os.txt 127.0.0.1 で結果をエクスポートする
このステップでは、Nmap の OS 検出スキャンの結果をファイルにエクスポートする方法を学びます。これは、後の分析、レポート作成、または他のツールとの統合に役立ちます。「通常」形式で出力することを指定する -oN オプションを使用します。
os.txt というファイル名は任意です。好きな名前を選ぶことができますが、分かりやすい名前を使うのが良い習慣です。出力ファイルは、現在の作業ディレクトリである ~/project に作成されます。
OS 検出スキャンの結果をファイルにエクスポートするには、Xfce 端末を開き、次のコマンドを入力します:
nmap -O -oN os.txt 127.0.0.1
このコマンドは、IP アドレス 127.0.0.1(localhost)のターゲットマシンに対して OS 検出スキャンを実行し、結果を通常形式で ~/project ディレクトリ内の os.txt ファイルに保存します。
スキャンが完了した後、cat コマンドを使用して os.txt ファイルの内容を表示できます:
cat os.txt
出力は、人が読みやすい形式で Nmap のスキャン結果、含む OS の詳細を表示します。出力は次のようになるかもしれません(正確な出力はターゲット OS によって異なります):
## Nmap 7.80 scan initiated Tue Oct 27 10:20:00 2023 as: nmap -O -oN os.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000043s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
## Nmap done at Tue Oct 27 10:20:05 2023 -- 1 IP address (1 host up) scanned in 5.23 seconds
また、nano のようなテキストエディタを使って os.txt ファイルを表示または編集することもできます:
nano os.txt
これにより、nano テキストエディタで os.txt ファイルが開き、結果をより詳細に調べることができます。
Nmap の結果をファイルにエクスポートすることは、調査結果を文書化し、他の人と共有するための重要なスキルです。
まとめ
この実験では、参加者は Nmap を使ってオペレーティングシステムの検出を学びます。まず、nmap -O <target_ip> コマンドを使って基本的な OS 検出を実行し、例として 192.168.1.1 を使用します。また、nmap -O --osscan-guess を使って推測を有効にし、nmap -O -p 1-100 で OS とポートのスキャンを組み合わせ、nmap -O --osscan-limit でスキャンを微調整し、nmap -O -oN os.txt で結果をテキストファイルにエクスポートする方法も学びます。さらに、Xfce 端末で OS の詳細を表示します。



