Nmap でターゲットをランダム化する

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、Nmap スキャンにおいて対象ホストの順序をランダム化する方法を検討します。まず、192.168.1.0/24 の標準サブネットスキャンを実行して、アクティブなホストを特定します。

次に、サブネット (192.168.1.0/24) と特定の範囲 (192.168.1.1 - 10) の両方に対して、Nmap が対象の IP アドレスをスキャンする順序をシャッフルするために --randomize-hosts オプションを使用します。また、-v フラグを使って詳細度を上げ、ランダム化されたスキャン結果を random.txt という名前のファイルに保存します。最後に、Xfce 端末で出力を比較して、ランダム化の効果を観察します。

nmap を使って 192.168.1.0/24 のサブネットを通常通りにスキャンする

このステップでは、Nmap を使って 192.168.1.0/24 のサブネット内のアクティブなホストを特定するための基本的なネットワークスキャンを行います。これは、ネットワークの調査と、ネットワーク上に存在するデバイスを理解するための基本的な技術です。

始める前に、Nmap とサブネットスキャンについて簡単に説明しましょう:

  • Nmap (Network Mapper): ネットワーク探索とセキュリティ監査用の無料でオープンソースのユーティリティ。パケットを送信して応答を分析することで、コンピュータネットワーク上のホストとサービスを発見するために使用されます。
  • サブネット: IP ネットワークの論理的なサブディビジョン。/24 表記 (CIDR 表記) はサブネットマスクを示し、この場合、255.255.255.0 です。これは、最初の 3 オクテット (192.168.1) がネットワークを定義し、最後のオクテット (0 - 255) がそのネットワーク内のホストアドレスを定義することを意味します。
  • サブネットスキャン: サブネット内のすべての可能な IP アドレスをスキャンして、アクティブなホストを特定するプロセス。

では、スキャンを行いましょう。LabEx VM 内で Xfce 端末を開きます。デフォルトのディレクトリは ~/project であることを忘れないでください。

次のコマンドを実行します:

sudo nmap 192.168.1.0/24

パスワードの入力を求められます。labex ユーザーはパスワードなしで sudo 権限を持っているため、単に Enter キーを押してください。

このコマンドは、Nmap に 192.168.1.0 から 192.168.1.255 までのすべての IP アドレスをスキャンするように指示します。Nmap は、各 IP アドレスにさまざまなプローブを送信して、ホストがアクティブであるかどうかを判断します。

出力には、発見されたホストのリストとそのステータス (たとえば、「Host is up」) が表示されます。Nmap がそれらを判断できる場合、ホスト上の開いているポートも表示されるかもしれません。

出力の例 (実際の出力はネットワークによって異なります):

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.00020s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.00 seconds

この出力は、2 つのホスト (192.168.1.1 と 192.168.1.100) がアクティブであることを示しています。また、192.168.1.1 ではポート 22 (SSH) が開いており、192.168.1.100 ではポート 80 (HTTP) が開いていることも示しています。

nmap --randomize-hosts 192.168.1.0/24 を使ってホストをランダム化する

このステップでは、Nmap が 192.168.1.0/24 のサブネット内のホストをスキャンする順序をランダム化することで、ネットワークスキャンを強化します。この技術は、基本的な侵入検知システム (IDS) を回避し、スキャンを予測しにくくするのに役立ちます。

デフォルトでは、Nmap は連続した順序でホストをスキャンします。これはネットワークモニタリングツールによって簡単に検出されます。--randomize-hosts オプションは、スキャンする前に対象の IP アドレスの順序をシャッフルし、スキャンを特定するのを難しくします。

ホストの順序をランダム化するには、Xfce 端末で次のコマンドを実行します:

sudo nmap --randomize-hosts 192.168.1.0/24

前と同様に、パスワードの入力を求められます。labex ユーザーはパスワードなしで sudo 権限を持っているため、単に Enter キーを押してください。

このコマンドは、前のステップと同じサブネット (192.168.1.0/24) をスキャンしますが、IP アドレスがスキャンされる順序がランダム化されます。

出力は、前のスキャンと同様に、発見されたホストとそのステータスを表示します。ただし、ホストがリストされる順序が異なる場合があります。

出力の例 (実際の出力はネットワークによって異なります):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.10 seconds

出力内のホスト (192.168.1.100 と 192.168.1.1) の順序が、前のスキャンと異なる場合があることに注意してください。これは --randomize-hosts オプションのためです。

nmap --randomize-hosts 192.168.1.1-10 を使って範囲をランダム化する

このステップでは、特定の IP アドレス範囲(192.168.1.1 から 192.168.1.10)をスキャンし、これらのホストをスキャンする順序をランダム化することに焦点を当てます。これは、ネットワークのより小さなサブセットを対象にし、ある程度の隠密性を維持したい場合に役立ちます。

前のステップで見たように、--randomize-hosts オプションは対象の IP アドレスの順序をシャッフルします。今回は、オプションをサブネット全体ではなく特定の範囲に適用します。

192.168.1.1 - 10 の範囲内のホスト順序をランダム化するには、Xfce 端末で次のコマンドを実行します:

sudo nmap --randomize-hosts 192.168.1.1-10

パスワードの入力を求められます。labex ユーザーはパスワードなしで sudo 権限を持っているため、単に Enter キーを押してください。

このコマンドは、Nmap に 192.168.1.1 から 192.168.1.10 までの IP アドレスをランダムな順序でスキャンするよう指示します。

出力には、その範囲内で発見されたホストのリストとそのステータスが表示されます。コマンドを実行するたびに、ホストがリストされる順序はランダムになります。

出力の例(実際の出力はネットワークによって異なります):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.5
Host is up (0.00025s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 10 IP addresses (2 hosts up) scanned in 2.00 seconds

この例では、Nmap は 192.168.1.1 から 192.168.1.10 までの IP アドレスをランダムな順序でスキャンし、2 つのホスト(192.168.1.5 と 192.168.1.1)がアクティブであることを見つけました。表示されたポートは例に過ぎず、あなたの環境では異なる場合があります。

nmap -v --randomize-hosts 192.168.1.0/24 で詳細度を追加する

このステップでは、ホストの順序をランダム化しながら、Nmap スキャンに詳細度を追加します。詳細度は、スキャンプロセスに関するより詳細な情報を提供し、トラブルシューティングや Nmap の動作を理解するのに役立ちます。

Nmap の -v オプションは詳細度レベルを上げます。一度使用すると、デフォルトの出力よりも多くの情報が提供されます。二度使用する (-vv) と、さらに詳細な情報が提供されます。

詳細度を追加してホストの順序をランダム化するには、Xfce 端末で次のコマンドを実行します:

sudo nmap -v --randomize-hosts 192.168.1.0/24

パスワードの入力を求められます。labex ユーザーはパスワードなしで sudo 権限を持っているため、単に Enter キーを押してください。

このコマンドは、192.168.1.0/24 のサブネットをスキャンし、ホストの順序をランダム化し、より詳細な出力を提供します。

出力には、ピングスキャンや DNS 解決のタイミングなど、スキャンプロセスに関する詳細が含まれるようになります。

出力の例(実際の出力はネットワークによって異なります):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Initiating Ping Scan at 10:15
Scanning 256 hosts [2 ports/host]
Completed Ping Scan at 10:15, 0.72s elapsed (256 total hosts)
Initiating Parallel DNS resolution of 256 hosts. at 10:15
Completed Parallel DNS resolution of 256 hosts. at 10:15, 1.81s elapsed
Initiating SYN Stealth Scan at 10:15
Scanning 256 hosts [1000 ports/host]
Discovered open port 22/tcp on 192.168.1.1
Discovered open port 80/tcp on 192.168.1.100
Completed SYN Stealth Scan at 10:16, 3.21s elapsed (256 total hosts)
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.74 seconds

出力には、ピングスキャンのタイミングや DNS 解決など、スキャンプロセスに関するより多くの情報が表示されます。これは、Nmap がどのように動作しているかを理解し、問題のトラブルシューティングに役立ちます。

nmap --randomize-hosts -oN random.txt 192.168.1.0/24 で結果を保存する

このステップでは、Nmap スキャンの結果をファイルに保存する方法を学びます。これは、後の分析、レポート作成、または以前のスキャンとの比較にとって重要です。出力を保存しながら、ホストの順序をランダム化し続けます。

Nmap は、いくつかのオプションを提供してスキャン結果を保存します。それぞれが異なる形式です。-oN オプションは、人間が読みやすく、簡単なツールで解析できる「通常」の出力を指定します。

ランダム化されたホストスキャンの結果を random.txt という名前のファイルに保存するには、Xfce 端末で次のコマンドを実行します:

sudo nmap --randomize-hosts -oN random.txt 192.168.1.0/24

パスワードの入力を求められます。labex ユーザーはパスワードなしで sudo 権限を持っているため、単に Enter キーを押してください。

このコマンドは、Nmap に 192.168.1.0/24 のサブネットをスキャンし、ホストの順序をランダム化し、出力を「通常」の形式で現在のディレクトリ(~/project)内の random.txt という名前のファイルに保存するよう指示します。

スキャンが完了すると、cat コマンドや nano のようなテキストエディタを使って random.txt ファイルの内容を表示できます。

cat random.txt

出力の例(実際の出力はネットワークによって異なります):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.00 seconds

random.txt ファイルには、スキャン中に画面に表示されたのと同じ情報が含まれています。これで、このファイルをさらなる分析やレポート作成に使用できます。

Xfce 端末で出力を比較する

このステップでは、前のステップで実行したさまざまな Nmap スキャンの出力を比較します。これにより、ホストのランダム化や詳細度など、使用したさまざまなオプションの影響を理解することができます。

まず、実行したコマンドを振り返りましょう。

  1. sudo nmap 192.168.1.0/24(通常のスキャン)
  2. sudo nmap --randomize-hosts 192.168.1.0/24(ホストをランダム化)
  3. sudo nmap --randomize-hosts 192.168.1.1-10(ランダム化された範囲)
  4. sudo nmap -v --randomize-hosts 192.168.1.0/24(詳細モード、ホストをランダム化)
  5. sudo nmap --randomize-hosts -oN random.txt 192.168.1.0/24(ホストをランダム化してファイルに保存)

出力を比較するには、いくつかの方法があります。

  • 端末内で直接比較する: 最初の 4 つのコマンドの出力を比較するには、端末の履歴を巻き戻して確認します。スキャン対象のホストの順序の違い(あれば)と、詳細モードで提供される詳細度の違いに注目してください。

  • 通常のスキャンと保存したファイルを比較する: 前のステップで作成した random.txt ファイルの内容と比較するために、最初のコマンドを再度実行します。

    sudo nmap 192.168.1.0/24
    cat random.txt

    random.txt を作成する際に使用した --randomize-hosts オプションのため、スキャン対象のホストの順序は異なる場合がありますが、出力は似ていることに注意してください。

  • diff コマンドを使用する(オプション): より詳細な比較のために、通常のスキャンの出力をファイル(たとえば normal.txt)に保存し、その後 diff コマンドを使用して 2 つのファイルを比較します。

    sudo nmap -oN normal.txt 192.168.1.0/24
    diff normal.txt random.txt

    diff コマンドは、2 つのファイル間の違いを強調表示します。ホストの順序が唯一の違いの場合、出力は追加された行と削除された行を表示しますが、内容は同じです。

出力を比較することで、以下のことがわかります。

  • --randomize-hosts オプションは、Nmap がホストをスキャンする順序を変更します。
  • -v オプションは、スキャンプロセスに関するより詳細な情報を提供します。
  • -oN オプションは、人間が読みやすい形式でスキャン結果をファイルに保存します。

これで Nmap の実験は終了です。基本的な Nmap スキャン、ホスト順序のランダム化、詳細度の増加、および結果をファイルに保存する方法を学びました。これらは、ネットワークの調査とセキュリティ監査に不可欠なスキルです。

まとめ

この実験では、Nmap のネットワークスキャンとホスト探索機能を調べました。まず、nmap 192.168.1.0/24 を使用して標準的なサブネットスキャンを行い、指定されたネットワーク範囲内のアクティブなホストを特定しました。この基本的なステップは、Nmap が IP アドレスを調査してホストの可用性を判断する方法を示しています。

その後、--randomize-hosts オプションを使用して、Nmap がターゲットをスキャンする順序をランダム化する方法を学びました。これをサブネット (192.168.1.0/24) と特定の IP 範囲 (192.168.1.1-10) の両方に適用しました。また、より詳細な出力のために詳細度 (-v) でスキャンを強化し、結果を後で比較するためにファイル (random.txt) に保存しました。これにより、Nmap スキャンを制御して文書化するための実用的な技術が強調されました。