Nmap スキャンと出力分析を学ぶ

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、セキュリティ専門家がコンピュータネットワーク上のホストとサービスを発見するために広く使用する強力なネットワークスキャンツールである Nmap の使い方を学びます。また、スキャン結果の解釈やさらなる分析に不可欠な、Nmap が提供するさまざまな出力形式を探索します。

Nmap は Network Mapper の略で、ネットワーク探索とセキュリティ監査のための無料でオープンソースのユーティリティです。生の IP パケットを使用して、利用可能なサービスやオペレーティングシステムなど、ネットワークホストに関する情報を収集します。この実験では、テストサービスのセットアップと、さまざまな Nmap 出力オプションを使用したスキャンの手順を案内します。これは、効果的なネットワーク分析とドキュメント化に不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/scripting_basics("Scripting Engine Basics") subgraph Lab Skills nmap/installation -.-> lab-415926{{"Nmap スキャンと出力分析を学ぶ"}} nmap/output_formats -.-> lab-415926{{"Nmap スキャンと出力分析を学ぶ"}} nmap/save_output -.-> lab-415926{{"Nmap スキャンと出力分析を学ぶ"}} nmap/port_scanning -.-> lab-415926{{"Nmap スキャンと出力分析を学ぶ"}} nmap/scripting_basics -.-> lab-415926{{"Nmap スキャンと出力分析を学ぶ"}} end

Nmap スキャンのテスト環境のセットアップ

このステップでは、Nmap スキャンを練習できる簡単な環境を作成します。Nmap はネットワーク探索とセキュリティ監査に使用される強力なツールです。ローカルマシンに基本的な Web サーバーをセットアップし、それを Nmap でスキャンすることで、安全で管理しやすい環境でネットワークスキャンについて学ぶことができます。これにより、実際のネットワークに影響を与えることなく実験を行うことができます。

ローカル Web サーバーのセットアップ

まず、Nmap でスキャンできる簡単な Web サーバーをセットアップする必要があります。Python を使うと、基本的な HTTP サーバーを簡単に作成できます。HTTP サーバーは、ブラウザなどのクライアントに Web ページを提供するソフトウェアです。

  1. ターミナルを開き、プロジェクトディレクトリに移動します。

    cd /home/labex/project

    cd コマンドは「change directory」の略で、ファイルシステム内を移動するために使用します。この場合、Web サーバーをセットアップする /home/labex/project ディレクトリに移動しています。

  2. 提供する簡単な HTML ファイルを作成します。

    echo "Welcome to Nmap Testing Environment" > index.html

    echo コマンドはテキストをターミナルに出力します。> 記号はその出力をファイルにリダイレクトします。つまり、「Welcome to Nmap Testing Environment」というテキストを含む index.html という名前のファイルを作成しています。これがサーバーが提供する Web ページになります。

  3. ポート 8080 で Python HTTP サーバーを起動します。

    python3 -m http.server 8080 &

    python3 -m http.server コマンドは Python を使って簡単な HTTP サーバーを起動します。8080 はサーバーがリッスンするポート番号を指定します。ポートは、ネットワークトラフィックがコンピューターに入ったり出たりする「ドア」のようなものです。コマンドの最後の & はサーバーをバックグラウンドで実行し、ターミナルを他のコマンドで引き続き使用できるようにします。

  4. Web サーバーが実行されていることをアクセスして確認します。

    curl http://localhost:8080

    curl コマンドはサーバーとの間でデータを転送するために使用されます。ここでは、http://localhost:8080 にセットアップした Web サーバーにアクセスしようとしています。localhost は現在のコンピューターを指します。

    以下の出力が表示されるはずです。

    Welcome to Nmap Testing Environment

    この出力が表示されれば、Web サーバーが正常に実行されていることを意味します。

基本的な Nmap スキャン

これで Web サーバーが実行されているので、Nmap を使ってスキャンすることができます。サーバーをスキャンすると、どのポートが開いているか、それらのポートで何のサービスが実行されているかを調べることができます。

  1. ローカル Web サーバーに対して基本的な Nmap スキャンを実行します。

    nmap -p 8080 localhost

    nmap コマンドの -p オプションはスキャンするポートを指定します。この場合、Nmap に localhost(IP アドレス 127.0.0.1)のポート 8080 のみをスキャンするように指示しています。

    以下のような出力が表示されるはずです。

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-08 12:34 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    
    PORT     STATE SERVICE
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    この出力は Nmap のデフォルト形式で、人間が読みやすく、スキャンに関する基本的な情報が表示されます。

Nmap のデフォルト出力の理解

デフォルト出力が何を示しているかを理解しましょう。

  • Starting Nmap:この行は使用している Nmap のバージョンとスキャンが開始された時間を示します。スキャンがいつ開始されたかを追跡するのに役立ちます。
  • Nmap scan report:これはスキャンの対象を示します。この場合、対象は localhost です。
  • Host is up:これは対象がオンラインであることを確認します。レイテンシ時間は、Nmap が対象から応答を得るのにかかった時間を示します。
  • PORT:これはスキャンされたポート番号を示します。このスキャンでは、ポート 8080 をスキャンしました。
  • STATE:これはポートが開いている、閉じている、またはフィルタリングされているかを示します。開いているポートは、そのポートでサービスがリッスンしており、接続を受け付けていることを意味します。
  • SERVICE:Nmap はそのポートで実行されている可能性のあるサービスを推測します。ここでは、http - proxy と推測されています。
  • Nmap done:これはスキャンの概要です。何個の IP アドレスがスキャンされ、スキャンにどれだけの時間がかかったかを示します。

これで、テスト環境を正常にセットアップし、基本的な Nmap スキャンを実行しました。次のステップでは、Nmap が提供するさまざまな出力形式を探索します。

Nmap のさまざまな出力形式を探索する

このステップでは、Nmap が提供するさまざまな出力形式について学びます。出力形式はサイバーセキュリティにおいて重要です。なぜなら、それによってスキャン結果を必要に応じてさまざまな方法で提示することができるからです。たとえば、ある形式は人間が読みやすく、他の形式は機械が解析しやすいように設計されており、他のツールと統合する際に便利です。

Nmap 出力形式の概要

Nmap はいくつかの出力形式をサポートしており、それぞれ独自の特徴と使用例があります。

  1. 通常出力 (デフォルト): これは人間が読みやすい形式です。スキャン結果を一目で理解しやすいように表示するため、迅速な手動分析に最適です。
  2. XML 出力 (-oX): XML は Extensible Markup Language の略です。構造化された形式で、データが階層的に整理されています。このため、プログラムやスクリプトがデータを解析しやすく、Nmap を他のセキュリティツールと統合する際に一般的に使用されます。
  3. grep 可能な出力 (-oG): これは行ベースの形式です。grep、awk、cut などの Unix ツールで簡単に処理できるように設計されています。スキャン結果から特定の情報を迅速に抽出したい場合に便利です。
  4. Script Kiddie 出力 (-oS): この形式は通常出力に似ていますが、ASCII アートが含まれています。ただし、実際のシナリオではあまり使用されません。
  5. すべての形式 (-oA): このオプションを使用すると、スキャン結果を通常、XML、および grep 可能な形式で同時に保存できます。すべての種類の出力を一度に利用できる便利な方法です。

ローカル Web サーバーを再度スキャンして、これらの形式を探索しましょう。

XML 出力形式

XML (Extensible Markup Language) は、データの保存と交換に広く使用される構造化された形式です。その階層構造により、プログラムがデータを解析しやすく、他のセキュリティツールとの統合に一般的に使用されます。

  1. Nmap スキャンを実行し、出力を XML 形式で保存します。

    nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml

    このコマンドでは、-p 8080 はポート 8080 をスキャンすることを指定し、localhost はスキャン対象(ローカルマシン)です。-oX は Nmap に出力を指定されたファイルパスに XML 形式で保存するよう指示します。

  2. XML 出力を表示します。

    cat /home/labex/project/scan_results.xml

    cat コマンドはファイルの内容を表示するために使用されます。このコマンドを実行すると、次のような XML 形式の出力が表示されます(省略版)。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE nmaprun>
    <nmaprun scanner="nmap" args="nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml" ...>
      <scaninfo type="connect" protocol="tcp" .../>
      <verbose level="0"/>
      <debugging level="0"/>
      <host>
        <status state="up" reason="conn - refused" reason_ttl="0"/>
        <address addr="127.0.0.1" addrtype="ipv4"/>
        <hostnames>
          <hostname name="localhost" type="user"/>
          <hostname name="localhost" type="PTR"/>
        </hostnames>
        <ports>
          <port protocol="tcp" portid="8080">
            <state state="open" reason="syn - ack" reason_ttl="0"/>
            <service name="http - proxy" method="table" conf="3"/>
          </port>
        </ports>
        <times srtt="97" rttvar="5000" to="100000"/>
      </host>
      <runstats>...</runstats>
    </nmaprun>
  3. XML 形式には階層構造で整理された詳細な情報が含まれています。特定のポート情報を抽出しましょう。

    grep -A5 "<port " /home/labex/project/scan_results.xml > /home/labex/project/port_details.txt

    grep コマンドはファイル内で特定のパターンを検索するために使用されます。-A5 はパターンに一致する行の後に 5 行を表示することを意味します。XML ファイル内で <port を含む行を検索し、結果を port_details.txt という新しいファイルに保存しています。

  4. 抽出したポートの詳細を表示します。

    cat /home/labex/project/port_details.txt

    このコマンドを実行すると、XML からのポート情報セクションが表示されます。

grep 可能な出力形式

grep 可能な出力は、grep、awk、cut などのツールで簡単に処理できるように特別に設計されています。これらの Unix ツールはテキスト処理に非常に強力で、スキャン結果から必要な情報を迅速に抽出するのに役立ちます。

  1. Nmap スキャンを実行し、出力を grep 可能な形式で保存します。

    nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep

    ここで、-oG は Nmap に出力を指定されたファイルに grep 可能な形式で保存するよう指示します。

  2. grep 可能な出力を表示します。

    cat /home/labex/project/scan_results.grep

    出力は次のようになります。

    ## Nmap 7.80 scan initiated Wed Nov 8 12:40:00 2023 as: nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
    Host: 127.0.0.1 (localhost)   Status: Up
    Host: 127.0.0.1 (localhost)   Ports: 8080/open/tcp//http - proxy///
    ## Nmap done at Wed Nov 8 12:40:00 2023 -- 1 IP address (1 host up) scanned in 0.05 seconds
  3. grep 可能な形式では、すべてのホスト情報が 1 行にまとめられているため、テキスト処理ツールで使用しやすいです。たとえば、ポート情報を含む行だけを抽出することができます。

    grep "Ports:" /home/labex/project/scan_results.grep > /home/labex/project/ports_info.txt

    このコマンドは、grep 可能な出力ファイル内で「Ports:」という単語を含む行を検索し、一致する行を ports_info.txt という新しいファイルに保存します。

  4. 抽出したポート情報を表示します。

    cat /home/labex/project/ports_info.txt

すべての形式で同時に保存する

Nmap は -oA オプションを使用して、出力を複数の形式で一度に保存する便利なオプションを提供しています。異なる目的で異なる種類の出力が必要な場合、これは時間を節約できます。

  1. Nmap スキャンを実行し、出力をすべての形式で保存します。

    nmap -p 8080 localhost -oA /home/labex/project/all_formats

    このコマンドはローカルマシンのポート 8080 をスキャンし、結果を通常、XML、および grep 可能な形式で保存します。

  2. 作成されたファイルを確認します。

    ls -la /home/labex/project/all_formats.*

    ls -la コマンドはディレクトリ内のすべてのファイルを詳細情報とともにリスト表示します。このコマンドを実行すると、次の 3 つのファイルが表示されるはずです。

    • all_formats.nmap (通常出力)
    • all_formats.xml (XML 出力)
    • all_formats.gnmap (grep 可能な出力)

これで、Nmap が提供するさまざまな出力形式とその使い方がわかりました。それぞれの形式には独自の利点があります。

  • 通常出力は人間が読みやすい
  • XML 出力は機械が解析しやすい構造で、他のツールとの統合に適している
  • grep 可能な出力は Unix テキスト処理ツールで迅速に分析できるように設計されている

次のステップでは、これらの出力をより詳細に分析する方法を学びます。

Nmap 出力の分析と有用な情報の抽出

このステップでは、Nmap のスキャン結果から特定の情報を抽出し、分析する方法を学びます。これはネットワーク管理者やセキュリティ専門家にとって重要なスキルです。ネットワークスキャンを行うと、大量のデータが得られることが多いです。関連する部分を効率的に抽出できることで、ネットワークのセキュリティ状況を理解し、潜在的な問題を特定することができます。

XML 出力の分析

XML 出力は詳細な分析に非常に有用で、他のツールと簡単に統合できます。XML はデータを階層的に整理する構造化された形式で、特定の情報を見つけて抽出しやすくなっています。XML 出力から特定の情報を抽出する方法を見てみましょう。

  1. まず、XML 出力の構造を見て、どのような情報が含まれているかを理解しましょう。grep コマンドを使って、XML ファイル内のホストセクションの始まりを見つけます。grep コマンドはファイル内で指定されたパターンを検索します。

    grep "<host" -A2 /home/labex/project/scan_results.xml

    このコマンドは scan_results.xml ファイル内の <host> タグを検索し、一致した行の次の 2 行を表示します。これにより、XML ファイル内のホストセクションの始まりを確認できます。

  2. 次に、ポートの状態に関する情報を抽出しましょう。再び grep を使って、<state タグを含むすべての行を見つけ、結果を新しいファイルに保存します。

    grep "<state " /home/labex/project/scan_results.xml > /home/labex/project/port_state.txt
  3. 抽出したポートの状態を表示します。ファイルの内容を表示するために cat コマンドを使います。

    cat /home/labex/project/port_state.txt

    次のような内容が表示されるはずです。

    <state state="open" reason="syn-ack" reason_ttl="0"/>

    これはポートが開いていることを示しています。Nmap は SYN パケットに対する応答として SYN - ACK パケットを受信したため、この判断を下しました。これは TCP の 3 ウェイハンドシェイクの一部で、ネットワーク上の 2 つのデバイス間で TCP 接続を確立する方法です。

より複雑な抽出に正規表現を使用する

より複雑なデータ抽出には、grepsed、または awk などのツールと正規表現を組み合わせて使用できます。正規表現はテキスト内のパターンを検索し、一致させる強力な方法です。複雑な検索条件を定義することができます。

  1. ポート番号とその状態の両方を抽出しましょう。正規表現を使った grep を使って、XML ファイル内の関連情報を見つけ、新しいファイルに保存します。

    grep -o 'portid="[0-9]*".*state="[^"]*"' /home/labex/project/scan_results.xml > /home/labex/project/port_and_state.txt
  2. cat コマンドを使って抽出した情報を表示します。

    cat /home/labex/project/port_and_state.txt

    次のような出力が表示されるはずです。

    portid="8080" state="open"

grep 可能な出力の分析

grep 可能な出力形式は、標準的な Unix ツールで簡単に処理できるように設計されています。これはテキストベースの形式で、grep などのコマンドを使って特定の情報を簡単に検索できます。

  1. grep 可能な出力から開いているポートだけを抽出しましょう。grep を使って、「open」という単語を含むすべての行を見つけ、結果を新しいファイルに保存します。

    grep "open" /home/labex/project/scan_results.grep > /home/labex/project/open_ports.txt
  2. cat コマンドを使って抽出した情報を表示します。

    cat /home/labex/project/open_ports.txt

    これにより、開いているすべてのポートを含む行が表示されるはずです。

  3. これをさらに処理して、ポート番号だけを抽出することができます。grepcut コマンドを組み合わせて使用します。cut コマンドは区切り文字に基づいて行の特定の部分を抽出するために使用されます。

    grep "open" /home/labex/project/scan_results.grep | grep -o "8080/open" | cut -d "/" -f1 > /home/labex/project/port_numbers.txt
  4. cat コマンドを使って抽出したポート番号を表示します。

    cat /home/labex/project/port_numbers.txt

    次のように表示されるはずです。

    8080

簡単な要約レポートの作成

では、スキャンのさまざまな部分からの情報を組み合わせた簡単な要約レポートを作成しましょう。要約レポートは、スキャンの主要な結果をすぐに理解するのに役立ちます。

  1. 要約レポートを作成します。echo コマンドを使ってテキストをファイルに書き込みます。>> 演算子はテキストをファイルの末尾に追加します。

    echo "Nmap Scan Summary" > /home/labex/project/scan_summary.txt
    echo "----------------" >> /home/labex/project/scan_summary.txt
    echo "Target: localhost (127.0.0.1)" >> /home/labex/project/scan_summary.txt
    echo "Open ports:" >> /home/labex/project/scan_summary.txt
    grep "open" /home/labex/project/scan_results.grep | grep -o "[0-9]*/open/tcp//[^/]*" >> /home/labex/project/scan_summary.txt
  2. cat コマンドを使って要約レポートを表示します。

    cat /home/labex/project/scan_summary.txt

    出力は次のようになるはずです。

    Nmap Scan Summary
    ----------------
    Target: localhost (127.0.0.1)
    Open ports:
    8080/open/tcp//http - proxy

Nmap の結果から特定の情報を抽出し、分析する方法を学ぶことで、ネットワーク調査データを効率的に処理し、解釈することができます。このスキルは、多数のホストやサービスがある大規模なネットワークをスキャンする際に特に有用です。

次のステップでは、より高度な Nmap スキャン技術について学びます。

高度な Nmap スキャン技術

このステップでは、より高度な Nmap スキャン技術を探索します。これらの技術は、ネットワークサービスに関する追加の詳細情報を提供できるため、非常に重要です。具体的には、サービスバージョン検出とスクリプトスキャンに焦点を当てます。これらの技術を理解することで、スキャン対象のネットワークサービスについてより深い洞察を得ることができ、セキュリティ評価、ネットワークインベントリ、トラブルシューティングに不可欠です。

サービスバージョン検出

Nmap には、ポートで実行されているサービスの特定のバージョンを判断しようとする強力な機能があります。これは -sV オプションを使用して行われます。サービスのバージョンを知ることは非常に有用です。なぜなら、異なるバージョンには異なるセキュリティ脆弱性や機能がある可能性があるからです。

  1. サービスバージョン検出を伴う Nmap スキャンを実行します。

    nmap -p 8080 -sV localhost -oN /home/labex/project/version_scan.txt

    このコマンドでは、-sV オプションが Nmap に開いているポートを調査するよう指示します。これにより、Nmap はそれらのポートで実行されているサービスに関する情報(バージョンを含む)を収集できます。-oN オプションは、スキャンの出力を通常の形式で指定されたファイル /home/labex/project/version_scan.txt に保存するために使用されます。出力をファイルに保存することで、後で結果を確認することができます。

  2. スキャン結果を表示します。

    cat /home/labex/project/version_scan.txt

    cat コマンドを実行した後、次のような出力が表示されるはずです。

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-08 13:20:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    
    PORT     STATE SERVICE VERSION
    8080/tcp open  http    Python/3.10 aiohttp/3.8.1 (Python httpd)
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 6.52 seconds

    ここで、Nmap がサービス名だけでなく、バージョン情報も表示していることに注意してください。この場合、HTTP サーバーが Python 3.10 で実行されていることを検出しました。この詳細情報は、潜在的なセキュリティリスクを特定したり、サービスの機能を理解したりするために使用できます。

Nmap スクリプト (NSE) の使用

Nmap スクリプトエンジン (NSE) は、さまざまなタスクを実行するためのスクリプトを実行できる強力なツールです。これらのタスクは、サービス検出から脆弱性スキャンまで幅広い範囲に及びます。NSE スクリプトを使用することで、Nmap の機能を拡張し、ターゲットネットワークに関するより多くの情報を収集することができます。

  1. Web サーバーで基本的な HTTP 情報スクリプトを実行します。

    nmap -p 8080 --script=http-title localhost -oN /home/labex/project/script_scan.txt

    http-title スクリプトは、HTTP ウェブページのタイトルを取得するように設計されています。これは、ウェブページの内容や目的を迅速に特定するのに役立ちます。-oN オプションは、スクリプトスキャンの出力を通常の形式で指定されたファイル /home/labex/project/script_scan.txt に保存します。

  2. スクリプトスキャンの結果を表示します。

    cat /home/labex/project/script_scan.txt

    出力には次のような内容が含まれるはずです。

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-08 13:25:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    
    PORT     STATE SERVICE
    8080/tcp open  http-proxy
    |_http-title: Directory listing for /
    
    Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds

    http-title スクリプトはウェブページのタイトルを取得しました。この場合、ディレクトリリストです。この情報は、Web サーバーの構造と内容を理解するのに役立ちます。

  3. HTTP サーバーに関するより多くの情報を提供する別のスクリプトを試してみましょう。

    nmap -p 8080 --script=http-server-header localhost -oN /home/labex/project/server_header_scan.txt

    http-server-header スクリプトは、HTTP サーバーヘッダーを取得するために使用されます。サーバーヘッダーには、サーバーソフトウェアのバージョンやタイプなどの情報が含まれることがよくあります。この情報は、セキュリティ評価やネットワークインベントリにとって貴重です。-oN オプションは、スキャンの出力を通常の形式で指定されたファイル /home/labex/project/server_header_scan.txt に保存します。

  4. サーバーヘッダースキャンの結果を表示します。

    cat /home/labex/project/server_header_scan.txt

    出力にはサーバーソフトウェアに関する情報が含まれるはずです。

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-08 13:30:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    
    PORT     STATE SERVICE
    8080/tcp open  http-proxy
    |_http-server-header: SimpleHTTP/0.6 Python/3.10.12
    
    Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

複数の技術を組み合わせる

単一の Nmap コマンドで複数のスキャン技術を組み合わせて、より包括的なスキャンを実行することができます。これにより、一度にターゲットネットワークに関する幅広い情報を収集することができます。

  1. ポートスキャン、サービスバージョン検出、およびスクリプトスキャンを含む包括的なスキャンを実行します。

    nmap -p 8080 -sV --script=http-title,http-server-header localhost -oA /home/labex/project/comprehensive_scan

    このコマンドはいくつかのことを行います。

    • ポート 8080 をスキャンします (-p 8080)。つまり、ターゲットホストでこのポートが開いているかどうかを確認します。
    • サービスバージョンを検出します (-sV)。これにより、ポートで実行されているサービスの特定のバージョンに関する情報が提供されます。
    • http-title および http-server-header スクリプトを実行します (--script=http-title,http-server-header)。これらのスクリプトはそれぞれ、ウェブページのタイトルとサーバーヘッダー情報を取得します。
    • すべての形式で結果を保存します (-oA)。すべての形式で保存することで、異なる目的に応じてスキャン結果の異なる表現を持つことができます。
  2. 包括的なスキャン結果を表示します。

    cat /home/labex/project/comprehensive_scan.nmap

    出力には、前のスキャンのすべての情報が組み合わされて含まれます。これにより、ポート 8080 で実行されているターゲットネットワークサービスの全体像が得られます。

  3. すべての調査結果を要約した最終分析レポートを作成します。

    echo "Final Nmap Analysis Report" > /home/labex/project/final_report.txt
    echo "------------------------" >> /home/labex/project/final_report.txt
    echo "Target: localhost (127.0.0.1)" >> /home/labex/project/final_report.txt
    echo "Port: 8080/tcp (open)" >> /home/labex/project/final_report.txt
    echo "Service:" >> /home/labex/project/final_report.txt
    grep "SERVICE VERSION" -A1 /home/labex/project/version_scan.txt | tail -1 >> /home/labex/project/final_report.txt
    echo "HTTP Server Header:" >> /home/labex/project/final_report.txt
    grep "http-server-header:" /home/labex/project/server_header_scan.txt >> /home/labex/project/final_report.txt
    echo "HTTP Page Title:" >> /home/labex/project/final_report.txt
    grep "http-title:" /home/labex/project/script_scan.txt >> /home/labex/project/final_report.txt

    この一連のコマンドは、final_report.txt という名前のテキストファイルを作成し、前のスキャンから収集したすべての情報の要約を入力します。ターゲット、ポート、サービスバージョン、サーバーヘッダー、およびウェブページのタイトルに関する詳細が含まれます。

  4. 最終レポートを表示します。

    cat /home/labex/project/final_report.txt

    最終レポートには、ポート 8080 で実行されている Web サーバーに関して収集したすべての情報の包括的な要約が含まれるはずです。このレポートは、さらなる分析、セキュリティ評価、またはドキュメント作成の目的で使用できます。

これらの高度な Nmap スキャン技術を学ぶことで、セキュリティ評価、ネットワークインベントリ、およびトラブルシューティングに役立つネットワークサービスに関する詳細情報を収集することができます。

まとめ

この実験では、ネットワーク探索とセキュリティ監査に使用される強力なネットワークスキャンツールである Nmap の使い方を学びました。ローカル Web サーバーを用いたテスト環境のセットアップ、基本的なポートスキャンの実行、様々な出力形式の調査、スキャン結果の抽出と分析、サービスバージョン検出やスクリプトスキャンなどの高度な技術の使用を含む、様々な Nmap 操作の実践的な経験を積みました。

これらのスキルは、ネットワーク管理者、セキュリティアナリスト、ペネトレーションテスターにとって不可欠です。ネットワーク上のホストとサービスを発見し、ネットワークインフラを文書化し、セキュリティ問題を特定し、スキャンとレポートの自動化を行うことができます。Nmap とその出力形式を習得することで、効果的なネットワーク調査、他のセキュリティツールとの統合、包括的なネットワークインベントリの構築が可能になります。練習したコマンドラインスキルは、他のシステム管理やセキュリティタスクにも応用できます。