Nmap を使用したホスト検出の実行

NmapNmapBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Nmap を使ってホスト探索を行う方法を学ぶことが目的です。この実験では、ホスト探索に関するさまざまな Nmap コマンドが扱われており、ポートスキャンを無効にするために -sn オプションを使って 192.168.1.0/24 ネットワークでピングスキャンを実行すること、TCP SYN ピングと ACK ピングを使うこと、さまざまなピングを組み合わせることが含まれます。また、Xfce 端末で稼働中のホストを表示する方法も示されています。さらに、ポートスキャンを無効にしながらローカルホストアドレスでピングスキャンを実行する方法も示されています。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/firewall_evasion("Firewall Evasion Techniques") subgraph Lab Skills nmap/port_scanning -.-> lab-530184{{"Nmap を使用したホスト検出の実行"}} nmap/host_discovery -.-> lab-530184{{"Nmap を使用したホスト検出の実行"}} nmap/target_specification -.-> lab-530184{{"Nmap を使用したホスト検出の実行"}} nmap/syn_scan -.-> lab-530184{{"Nmap を使用したホスト検出の実行"}} nmap/firewall_evasion -.-> lab-530184{{"Nmap を使用したホスト検出の実行"}} end

nmap -sn 192.168.1.0/24 でピングスキャンを実行する

このステップでは、Nmap を使ってピングスキャンを実行します。ピングスキャンは、ホスト探索スキャンとも呼ばれ、ネットワーク上で稼働している(オンラインの)ホストを特定するための基本的な手法です。Nmap は、指定された範囲内の各 IP アドレスにさまざまなプローブを送信し、応答を分析してアクティブなホストを識別します。Nmap の -sn オプションはポートスキャンを無効にし、完全なスキャンよりも高速で侵入性が低くなります。

192.168.1.0/24 は、ネットワークを表す CIDR 表記です。/24 は、IP アドレスの最初の 24 ビットが固定され、ネットワークを定義し、残りの 8 ビットがそのネットワーク内のホストアドレスに使用されることを意味します。これは、192.168.1.1 から 192.168.1.254 までの IP アドレスの範囲に相当します。

192.168.1.0/24 ネットワークでピングスキャンを実行するには、ターミナルで次のコマンドを実行します。

sudo nmap -sn 192.168.1.0/24

このコマンドは、Nmap に 192.168.1.0/24 ネットワーク内のすべての IP アドレスでピングスキャンを実行するように指示します。sudo が必要なのは、Nmap が特定の種類のネットワークパケットを送信するためには、一般的に昇格された特権が必要だからです。

出力には、Nmap のプローブに応答したホストの IP アドレスがリストされ、それらが稼働していることが示されます。出力は次のようになります(特定の IP アドレスとホスト名は、あなたのネットワークによって異なります)。

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0023s latency).
Nmap scan report for 192.168.1.20
Host is up (0.0019s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.54 seconds

この出力は、Nmap が 256 個の IP アドレス(192.168.1.0/24 のすべてのネットワーク)をスキャンし、3 つのホストが稼働していることを見つけたことを示しています。

nmap -sn 127.0.0.1 でポートスキャンを無効にする

このステップでは、Nmap を使って、ポートスキャンを無効にしながらローカルホストアドレス(127.0.0.1)でピングスキャンを実行します。主な目的は、完全なポートスキャンを開始せずに、特定のホスト探索を行うために -sn オプションをどのように使うかを示すことです。ホストが稼働しているかどうかだけを確認し、潜在的に騒音の多いまたは時間がかかるポートスキャンを回避したい場合に役立ちます。

127.0.0.1 は、ループバックアドレスで、ローカルホストとも呼ばれます。これは常に現在のマシンを指します。ローカルホストをピングすることは、ネットワークインターフェイスが正常に機能していることを確認するための迅速な方法です。

ポートスキャンを行わずにローカルホストでピングスキャンを実行するには、ターミナルで次のコマンドを実行します。

sudo nmap -sn 127.0.0.1

このコマンドは、Nmap に 127.0.0.1 アドレスでピングスキャンを実行するように指示します。-sn オプションは、Nmap がホスト探索のみを行い、ポートをスキャンしようとしないことを保証します。Nmap が生のパケットを送信するには一般的に sudo が必要ですが、この場合、ローカルホストに対しては厳密には必要ないかもしれません。

出力は、ホストが稼働しているかどうかを示します。次のようになります。

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.00 seconds

この出力は、ローカルホスト(127.0.0.1)が稼働していることを確認しています。-sn オプションによって指定された通り、Nmap はピングスキャンのみを行い、ポートをスキャンしませんでした。

nmap -PS 192.168.1.1 を使って TCP SYN ピングを行う

このステップでは、Nmap を使って特定のホスト(192.168.1.1)に対して TCP SYN ピングスキャンを行います。TCP SYN ピングは、対象ホストに TCP SYN パケットを送信します。ホストが稼働しており、指定されたポート(またはデフォルトでは任意のポート)で待ち受けている場合、SYN/ACK パケットで応答します。その後、Nmap は RST パケットを送信して接続をリセットします。この手法は、多くのファイアウォールが ICMP トラフィックをブロックする一方で TCP トラフィックを許可するため、ICMP ピングよりも一般的に信頼性が高いです。

Nmap の -PS オプションは、TCP SYN ピングを使用することを指定します。デフォルトでは、Nmap は SYN パケットをポート 80 に送信します。また、異なるポートまたはポートのリストを指定してプローブすることもできます。

192.168.1.1 に対して TCP SYN ピングスキャンを行うには、ターミナルで次のコマンドを実行します。

sudo nmap -PS 192.168.1.1

このコマンドは、Nmap に 192.168.1.1 のホストのポート 80 に TCP SYN パケットを送信するよう指示します。Nmap が生の TCP パケットを作成して送信するには sudo が必要です。

出力は、ホストが稼働しており、ポート 80 で待ち受けているかどうかを示します。ホストが稼働している場合、出力は次のようになります。

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
PORT   STATE    SERVICE
80/tcp filtered http

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

この出力は、Nmap が 192.168.1.1 に TCP SYN パケットを送信し、応答を受け取ったことを示しており、ホストが稼働していることがわかります。ポート 80 の filtered 状態は、ファイアウォールが接続をブロックしている可能性があることを意味しますが、ホストは初期の SYN プローブに応答したため、まだ稼働していると見なされます。ホストがダウンまたは到達不能の場合、出力はホストがダウンであることを示します。

nmap -PA 192.168.1.1 を使って ACK ピングを行う

このステップでは、Nmap を使って特定のホスト(192.168.1.1)に対して ACK ピングスキャンを行います。ACK ピングは、対象ホストに TCP ACK パケットを送信します。接続を確立しようとする SYN ピングとは異なり、ACK ピングは既に確立された接続の一部であるように見えるパケットを送信します。ファイアウォールは、着信する ACK パケットを SYN パケットとは異なる方法で処理するルールを持っていることが多く、ACK ピングはいくつかのファイアウォール設定を迂回するのに役立ちます。

Nmap の -PA オプションは、TCP ACK ピングを使用することを指定します。デフォルトでは、Nmap は ACK パケットをポート 80 に送信します。また、異なるポートまたはポートのリストを指定してプローブすることもできます。

192.168.1.1 に対して TCP ACK ピングスキャンを行うには、ターミナルで次のコマンドを実行します。

sudo nmap -PA 192.168.1.1

このコマンドは、Nmap に 192.168.1.1 のホストのポート 80 に TCP ACK パケットを送信するよう指示します。Nmap が生の TCP パケットを作成して送信するには sudo が必要です。

出力は、ホストが稼働しているかどうかを示します。ホストが稼働している場合、出力は次のようになります。

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0011s latency).
PORT   STATE    SERVICE
80/tcp unfiltered http

Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

この出力は、Nmap が 192.168.1.1 に TCP ACK パケットを送信し、応答を受け取ったことを示しており、ホストが稼働していることがわかります。ポート 80 の unfiltered 状態は、Nmap が ACK パケットを送信し、ファイアウォールの干渉なしに応答を受け取ることができたことを意味します。ホストがダウンまたは到達不能の場合、出力はホストがダウンであることを示します。

nmap -PS -PA 192.168.1.0/24 を使ってピングを組み合わせる

このステップでは、Nmap を使って TCP SYN と ACK ピングスキャンを組み合わせて、192.168.1.0/24 ネットワーク上の稼働中のホストを検出します。異なるピングタイプを組み合わせることで、ファイアウォールルールやネットワーク構成のために、一部のホストがある種のピングに応答するが他のピングには応答しない場合があるため、ホスト検出の信頼性を高めることができます。

-PS-PA オプションの両方を使用することで、Nmap は指定されたネットワーク内の各ホストに TCP SYN と TCP ACK パケットの両方を送信します。これにより、特に制限的なファイアウォールのある環境で、稼働中のホストを検出する確率が増えます。

192.168.1.0/24 ネットワークに対して組み合わせた TCP SYN と ACK ピングスキャンを行うには、ターミナルで次のコマンドを実行します。

sudo nmap -PS -PA 192.168.1.0/24

このコマンドは、Nmap に 192.168.1.0/24 ネットワーク内の各ホストのポート 80 に TCP SYN と TCP ACK パケットの両方を送信するよう指示します。Nmap が生の TCP パケットを作成して送信するには sudo が必要です。

出力には、ネットワーク上で見つかった稼働中のホストが一覧表示されます。出力は次のようになります(実際の出力は、あなたのネットワーク上に存在するホストによって異なります)。

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0015s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0012s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.56 seconds

この出力は、Nmap が 192.168.1.0/24 ネットワークをスキャンし、3 つの稼働中のホスト:192.168.1.1192.168.1.2、および 192.168.1.10 を見つけたことを示しています。

Xfce ターミナルで稼働中のホストを表示する

このステップでは、Nmap を使って見つけた稼働中のホストを特定するために、Xfce ターミナルで実行したコマンドを見直します。Xfce ターミナルは、実行したコマンドの履歴を保持しており、作業を見直したり、スキャン結果を確認するのに役立ちます。

Xfce ターミナルのコマンド履歴を表示するには、history コマンドを使用できます。このコマンドは、以前に実行したコマンドの番号付きリストを表示します。

Xfce で新しいターミナルウィンドウを開きます(既に開いていない場合は)。そして、次のコマンドを入力して Enter キーを押します。

history

これにより、最近のコマンドのリストが表示されます。前のステップで使用した Nmap コマンド、特に -sn-PS、および -PA を使用してピングスキャンを行うコマンドを見つけるために、リストをスクロールします。

たとえば、次のようなコマンドが表示されるはずです。

sudo nmap -sn 192.168.1.0/24
sudo nmap -sn 127.0.0.1
sudo nmap -PS 192.168.1.1
sudo nmap -PA 192.168.1.1
sudo nmap -PS -PA 192.168.1.0/24

これらのコマンドとその出力(前のステップで留意しておくはず)を見直すことで、ネットワーク上で見つかった稼働中のホストを確認できます。history コマンドは、作業を監査し、この実験の手順を正しく実行したことを確認するための便利なツールです。

注:history コマンドの正確な出力は、ターミナルセッションで実行したコマンドによって異なります。

まとめ

この実験では、参加者は Nmap を使ってホスト検出を行う方法を学びます。まず、ポートスキャンを無効にするために -sn オプションを使って 192.168.1.0/24 ネットワークでピングスキャンを行います。これは、より高速で侵入性の少ない方法です。sudo コマンドを使って、ネットワークパケットを送信するための昇格された特権を与えます。また、ポートスキャンを無効にしながら、ローカルホストアドレス 127.0.0.1 でピングスキャンを行う方法も学びます。さらに、-PS を使った TCP SYN ピング、-PA を使った ACK ピング、および -PS -PA を使った組み合わせたピングなど、さまざまなピングタイプを探索し、Xfce ターミナルで稼働中のホストを表示します。