はじめに
この実験では、Nmap を使って MAC アドレスを偽装する方法を探ります。MAC アドレスを偽装することで、スキャン中にネットワークの識別情報を隠すことができ、検出を回避したり、ネットワークセキュリティをテストする際に役立ちます。
この実験では、--spoof-mac オプションを使ってカスタム MAC アドレスを指定したり、--spoof-mac 0 で MAC アドレスをランダム化したり、-v フラグを使って詳細度を上げたり、偽装されたスキャン結果をファイルに保存したり、Xfce 端末で通常のスキャン結果と比較したりします。
nmap を使って MAC アドレスを偽装する --spoof-mac 00:11:22:33:44:55 192.168.1.1
このステップでは、Nmap を使って MAC アドレスを偽装する方法を探ります。MAC アドレスを偽装することで、スキャン中にネットワークの識別情報を隠すことができます。これは、検出を回避したり、ネットワークセキュリティをテストするなど、様々な理由で役立ちます。
始める前に、MAC アドレスが何かについて簡単に説明しましょう。MAC(Media Access Control)アドレスは、ネットワークセグメント内の通信においてネットワークアドレスとして使用するためにネットワークインターフェイスコントローラ(NIC)に割り当てられる一意の識別子です。ネットワークカードの物理アドレスのようなものです。
さて、Nmap を使って MAC アドレスを偽装してみましょう。--spoof-mac オプションに続けて、望む MAC アドレスとターゲット IP アドレスを指定します。
Xfce 端末を開きます。
次のコマンドを実行します:
sudo nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1
このコマンドは、Nmap に対象の IP アドレス 192.168.1.1 のスキャン中に MAC アドレス 00:11:22:33:44:55 を使用するように指示します。通常の Nmap スキャンと同じような出力が表示されると思いますが、スキャンに使用されるソース MAC アドレスは偽装されたものになります。
出力には、開いているポートやターゲットに関するその他の情報を含むスキャン結果が表示されます。
出力の例(特定の出力はターゲットによって異なります):
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
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.10s
この例では、Nmap が偽装された MAC アドレス 00:11:22:33:44:55 を使って 192.168.1.1 をスキャンしました。
nmap を使って MAC アドレスをランダム化する --spoof-mac 0 127.0.0.1
前のステップでは、特定の値で MAC アドレスを偽装する方法を学びました。このステップでは、Nmap を使って MAC アドレスをどのようにランダム化するかを探ります。予測可能な MAC アドレスを使って追跡されるのを避けたい場合に役立ちます。
Nmap は、--spoof-mac オプションの引数として 0 を使うことで MAC アドレスをランダム化することができます。これは、Nmap に各スキャンごとに完全にランダムな MAC アドレスを生成するように指示します。
Xfce 端末を開きます。
次のコマンドを実行します:
sudo nmap --spoof-mac 0 127.0.0.1
このコマンドは、Nmap に対象の IP アドレス 127.0.0.1(localhost)のスキャン中にランダムな MAC アドレスを使用するように指示します。
出力には、開いているポートやターゲットに関するその他の情報を含むスキャン結果が表示されます。localhost をスキャンしているので、結果は比較的速く表示されるはずです。
出力の例(特定の出力はターゲットとシステム設定によって異なります):
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.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed
Nmap done: 1 IP address (1 host up) scanned in 0.01s
この例では、Nmap がランダム化された MAC アドレスを使って 127.0.0.1 をスキャンしました。このコマンドを実行するたびに、Nmap は異なる MAC アドレスを生成します。
nmap を使って詳細表示を追加する -v --spoof-mac 00:11:22:33:44:55 192.168.1.1
このステップでは、Nmap における MAC アドレスの偽装と詳細度の増加を組み合わせます。詳細度は、スキャンプロセスに関するより詳細な情報を提供し、トラブルシューティングや Nmap の動作を理解するのに役立ちます。
Nmap の -v オプションは詳細度レベルを上げます。一度使用するとデフォルトよりも多くの情報が提供され、複数回使用する(例えば、-vv や -vvv)とさらに詳細度が増します。
Xfce 端末を開きます。
次のコマンドを実行します:
sudo nmap -v --spoof-mac 00:11:22:33:44:55 192.168.1.1
このコマンドは、Nmap に対して 192.168.1.1 のスキャンを実行し、MAC アドレスを 00:11:22:33:44:55 に偽装し、詳細な出力を提供するように指示します。
出力は、前のステップよりも詳細になり、スキャンの異なる段階や送信されるプローブ、受信される応答が表示されます。
出力の例(特定の出力はターゲットとシステム設定によって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 10:10
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Discovered open port 80/tcp on 192.168.1.1
Completed SYN Stealth Scan at 10:10, 0.05s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07s
Raw packets sent: 1001 (44.044KB) | Rcvd: 1001 (40.044KB)
NSE スクリプトの読み込み、異なるスキャンフェーズ(Ping スキャン、DNS 解決、SYN ステルススキャン)の開始、送信および受信されたパケット数など、追加で提供される情報に注目してください。この詳細度は、ネットワークの問題をデバッグしたり、スキャン結果を分析する際に非常に貴重です。
nmap を使って偽装されたスキャン結果を保存する --spoof-mac 0 -oN spoof.txt 127.0.0.1
このステップでは、Nmap のスキャン結果をファイルに保存する方法を学びます。これは、後で分析するためやレポートを作成するために便利です。また、MAC アドレスの偽装も続けます。
Nmap には、スキャン結果を保存するためのいくつかのオプションがあります。-oN オプションは、人が読みやすい「通常」の形式で出力を保存します。-oG オプションは、grep で検索可能な形式で出力を保存し、スクリプトに便利です。-oX オプションは、XML 形式で出力を保存し、他のツールにインポートする際に便利です。
Xfce 端末を開きます。
次のコマンドを実行します:
sudo nmap --spoof-mac 0 -oN spoof.txt 127.0.0.1
このコマンドは、Nmap に対して 127.0.0.1 のスキャンを実行し、MAC アドレスをランダム化し、出力を通常の形式で現在のディレクトリ(~/project)にある spoof.txt という名前のファイルに保存するように指示します。
スキャンが完了した後、cat コマンドを使って spoof.txt ファイルの内容を表示できます:
cat spoof.txt
出力には、端末上で見るのと同じように、人が読みやすい形式でスキャン結果が表示されます。
出力の例(特定の出力はターゲットとシステム設定によって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed
Nmap done: 1 IP address (1 host up) scanned in 0.01s
spoof.txt ファイルには、Nmap のスキャン結果が含まれており、好きなときに確認できます。
Xfce 端末でスキャン結果を確認する
このステップでは、前のステップで spoof.txt ファイルに保存したスキャン結果を確認します。これにより、Nmap のスキャン結果を解釈する練習ができます。
Xfce 端末を開きます。
cat コマンドを使って spoof.txt ファイルの内容を表示します:
cat spoof.txt
出力には Nmap のスキャンレポートが表示されます。レポートの重要な部分を解説しましょう:
- Starting Nmap: この行は、Nmap のバージョンとスキャン開始の日付と時刻を示します。
- Nmap scan report for: この行は、スキャンの対象(この場合は
localhostまたは127.0.0.1)を示します。 - Host is up: この行は、対象ホストに到達可能であることを確認します。レイテンシ(往復時間)も表示されます。
- Ports: このセクションでは、スキャンされたポートとその状態(開いている、閉じている、フィルタリングされている)が一覧表示されます。前のステップですべてのポートが閉じていた場合、「All 1000 scanned ports on localhost are closed」が表示されます。ポートが開いている場合は、そのサービス名とともにここに一覧表示されます(例:80/tcp open http)。
- Nmap done: この行は、スキャンの概要をまとめており、スキャンされた IP アドレスの数と合計スキャン時間が含まれます。
出力例(特定の出力はターゲットとシステム設定によって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed
Nmap done: 1 IP address (1 host up) scanned in 0.01s
出力を調べて、対象システムに関する情報を理解しましょう。次のステップでは、この出力と通常のスキャン(MAC アドレスの偽装なし)の出力を比較して、違いがあるかどうかを確認します。
Xfce 端末で通常のスキャンと比較する
このステップでは、通常の Nmap スキャン(MAC アドレスの偽装なし)を実行し、前のステップの偽装済みのスキャン結果と比較します。これにより、MAC アドレスの偽装がスキャン結果に影響を与えるかどうかを理解できます。
Xfce 端末を開きます。
まず、127.0.0.1 の通常の Nmap スキャンを実行します:
sudo nmap 127.0.0.1
このコマンドは、localhost の標準的な Nmap スキャンを実行します。
このスキャンの出力を注意深く調べましょう。以下の点に注目してください:
- Nmap のバージョンと開始時刻。
- スキャンの対象(
127.0.0.1)。 - ホストが稼働しているかどうか。
- スキャンされたポートの一覧とその状態(開いている、閉じている、フィルタリングされている)。
- スキャン完了時刻。
出力例(特定の出力はターゲットとシステム設定によって異なります):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed
Nmap done: 1 IP address (1 host up) scanned in 0.01s
次に、この出力を偽装済みのスキャンの出力を含む spoof.txt ファイルの内容と比較します。cat コマンドを使って spoof.txt の内容を表示できます:
cat spoof.txt
2 つのスキャン結果に違いはありますか?ほとんどの基本的なシナリオでは、スキャン結果は同じになります。ただし、より複雑なネットワーク環境では、MAC アドレスの偽装が対象システムがスキャンに応答する方法に影響を与え、結果が異なる可能性があります。これは、一部のネットワークデバイスやファイアウォールが MAC アドレスをフィルタリングやアクセス制御に使用するためです。
この簡単な実験環境では、MAC アドレスの偽装の主な目的は、スキャンの元を隠すことであり、必ずしもスキャン結果を変更することではありません。
まとめ
この実験では、Nmap を使って MAC アドレスを偽装する方法を検討しました。対象の IP アドレスのスキャン中に、--spoof-mac オプションを使って特定の MAC アドレス(たとえば 00:11:22:33:44:55)を指定する方法を学びました。これにより、ネットワークの識別情報を隠すことができ、検出から逃れる可能性があります。
さらに、Nmap を使って MAC アドレスをランダム化する方法を調べ始めました。予測可能な MAC アドレスを使うことによるトラッキングを回避するために役立ちます。この実験では、MAC アドレスを指定する場合とランダム化する場合の基本的な構文を示し、より高度なネットワークスキャン技術の基礎を築きました。



