Nmap の出力形式を管理する

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、Nmap における出力形式の管理方法を学びます。まず、IP アドレス 192.168.1.1 に対して基本的なスキャンを実行して、開いているポートとサービスに関する情報を収集します。次に、通常のテキスト、XML、および grep 可能な出力など、さまざまな形式でスキャン結果を保存し、既存のファイルに出力を追加する方法も学びます。最後に、Xfce のテキストエディタで結果を開きます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/basic_syntax -.-> lab-530182{{"Nmap の出力形式を管理する"}} nmap/output_formats -.-> lab-530182{{"Nmap の出力形式を管理する"}} nmap/save_output -.-> lab-530182{{"Nmap の出力形式を管理する"}} nmap/host_discovery -.-> lab-530182{{"Nmap の出力形式を管理する"}} nmap/service_detection -.-> lab-530182{{"Nmap の出力形式を管理する"}} end

nmap を使って 192.168.1.1 に対する基本的なスキャンを実行する

このステップでは、Nmap を使って IP アドレス 192.168.1.1 に対する基本的なスキャンを行います。Nmap は、パケットを送信して応答を分析することにより、コンピュータネットワーク上のホストとサービスを見つけるために使用される強力なネットワークスキャンツールです。基本的なスキャンにより、開いているポートやオペレーティングシステムの詳細など、対象に関する情報が得られます。

まず、nmap コマンドの基本構文を理解しましょう。

nmap [target]

ここで [target] は、スキャンしたい IP アドレスまたはホスト名です。

次に、192.168.1.1 に対する基本的なスキャンを実行しましょう。ターミナルを開き、次のコマンドを実行します。

nmap 192.168.1.1

このコマンドにより、対象の IP アドレスのスキャンが開始されます。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 done: 1 IP address (1 host up) scanned in 2.18 seconds

この出力は、ホスト 192.168.1.1 が稼働しており、ポート 22(SSH)が開いていることを示しています。「Not shown: 999 closed ports」の行は、出力を簡潔にするために Nmap が 999 個のクローズドポートを表示しなかったことを示しています。

nmap -oN scan.txt 127.0.0.1 を使って通常のファイルに保存する

このステップでは、-oN オプションを使って Nmap スキャンの出力を通常のテキストファイルに保存します。これは、後で分析やレポート作成のためにスキャン結果を保存するのに便利です。

-oN オプションは、Nmap に対象の出力を人が読みやすい形式で指定されたファイルに保存するように指示します。構文は以下の通りです。

nmap -oN <filename> <target>

ここで <filename> は出力を保存するファイル名で、<target> はスキャンしたい IP アドレスまたはホスト名です。

この場合、127.0.0.1(localhost)をスキャンして、~/project ディレクトリに scan.txt という名前のファイルに出力を保存します。

ターミナルを開き、次のコマンドを実行します。

nmap -oN scan.txt 127.0.0.1

スキャンが完了した後、scan.txt ファイルの内容をテキストエディタまたは cat コマンドを使って表示できます。たとえば:

cat scan.txt

出力は以下に似たものになります(正確な出力は異なります)。

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds

この出力は、ターミナル上で見るのと同じ情報ですが、今は将来の参照のために scan.txt ファイルに保存されています。

nmap -oX scan.xml 192.168.1.1 を使って XML を生成する

このステップでは、Nmap スキャンの結果を含む XML ファイルを生成します。XML 形式は、プログラムでスキャン結果を解析する際に便利であり、Nmap を他のツールやスクリプトと統合するのを容易にします。

-oX オプションは、Nmap に対象の出力を XML 形式で指定されたファイルに保存するように指示します。構文は以下の通りです。

nmap -oX <filename> <target>

ここで <filename> は作成したい XML ファイルの名前で、<target> はスキャンしたい IP アドレスまたはホスト名です。

この場合、192.168.1.1 をスキャンして、~/project ディレクトリに scan.xml という名前のファイルに出力を保存します。

ターミナルを開き、次のコマンドを実行します。

nmap -oX scan.xml 192.168.1.1

スキャンが完了した後、scan.xml ファイルの内容をテキストエディタまたは cat コマンドを使って表示できます。ただし、XML ファイルであるため、多くのマークアップが含まれており、通常のテキストエディタでは読みやすくない場合があります。

cat scan.xml

出力は、ホストの詳細、開いているポート、サービスのバージョンなど、スキャンに関する詳細情報を含む大きな XML ドキュメントになります。xmllint のようなツールを使って XML ファイルを整形して検証したり、xml.etree.ElementTree のようなライブラリを持つ Python のようなプログラミング言語を使ってデータを解析したりすることができます。

この XML 出力は、自動処理のために設計されており、人間が読みやすいものではありません。

nmap -oG scan.grep 127.0.0.1 を使って grep 可能な出力を作成する

このステップでは、Nmap スキャンから grep 可能な出力ファイルを生成します。この形式は、grepawksed などのコマンドラインツールで簡単に解析できるように特別に設計されており、スクリプト作成や自動分析に便利です。

-oG オプションは、Nmap に対象の出力を grep 可能な形式で指定されたファイルに保存するように指示します。構文は以下の通りです。

nmap -oG <filename> <target>

ここで <filename> は grep 可能な出力を保存するファイル名で、<target> はスキャンしたい IP アドレスまたはホスト名です。

この場合、127.0.0.1(localhost)をスキャンして、~/project ディレクトリに scan.grep という名前のファイルに出力を保存します。

ターミナルを開き、次のコマンドを実行します。

nmap -oG scan.grep 127.0.0.1

スキャンが完了した後、scan.grep ファイルの内容をテキストエディタまたは cat コマンドを使って表示できます。

cat scan.grep

出力は grep で簡単に解析できる形式になっています。たとえば:

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
## Nmap scan report for localhost (127.0.0.1)
Host: 127.0.0.1 (localhost)	Status: Up
Host: 127.0.0.1 (localhost)	Ports: 22/open/tcp//ssh///, 80/open/tcp//http///
## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds

今、grep を使ってファイル内の特定の情報を検索できます。たとえば、すべての開いているポートを見つけるには、次のコマンドを使います。

grep "Ports:" scan.grep

これにより、開いているポートを含む行が出力されます。

Host: 127.0.0.1 (localhost)	Ports: 22/open/tcp//ssh///, 80/open/tcp//http///

grep 可能な出力形式は、さらなる処理のために Nmap スキャン結果から特定のデータを抽出するための簡単で効率的な方法を提供します。

nmap -oN scan.txt --append-output 192.168.1.1 で出力を追加する

このステップでは、Nmap スキャンの出力を既存のファイルに追加します。これは、複数のスキャンの結果を 1 つのファイルに結合して、以前の結果を上書きしない場合に便利です。

通常の形式で出力を保存するために -oN オプションを使用し、指定されたファイルに出力を追加するために --append-output オプションを使用します。

最初に、前のステップで 127.0.0.1 のスキャン結果を持つ scan.txt という名前のファイルを作成しました。今回は、192.168.1.1 のスキャン結果を同じファイルに追加します。

ターミナルを開き、次のコマンドを実行します。

nmap -oN scan.txt --append-output 192.168.1.1

スキャンが完了すると、出力が scan.txt ファイルに追加されます。scan.txt ファイルの内容をテキストエディタまたは cat コマンドを使って表示できます。

cat scan.txt

ファイルには両方のスキャンの結果が表示されるはずです。最初の部分は 127.0.0.1 のスキャン結果で、2 番目の部分は 192.168.1.1 のスキャン結果です。

--append-output オプションにより、新しいスキャン結果がファイルの末尾に追加され、以前のコンテンツが保持されます。これは、--append-output なしで -oN scan.txt 192.168.1.1 を使用する場合とは異なり、既存の scan.txt ファイルを上書きします。

Xfce のテキストエディタで結果を開く

このステップでは、Xfce のテキストエディタで Nmap のスキャン結果を開きます。これにより、グラフィカルな環境でスキャン出力を表示して分析できます。

Xfce のテキストエディタは mousepad と呼ばれます。これを使って、前のステップで作成した scan.txtscan.xmlscan.grep などのファイルを開くことができます。

ターミナルから mousepad でファイルを開くには、次のコマンドを使用します。

mousepad <filename>

ここで <filename> は開きたいファイルの名前です。

まず、scan.txt ファイルを開きましょう。ターミナルで次のコマンドを実行します。

mousepad scan.txt

これにより、mousepad のテキストエディタで scan.txt ファイルが開きます。これで、ファイルをスクロールして Nmap のスキャン結果を調べることができます。

次に、scan.xml ファイルを開きましょう。ターミナルで次のコマンドを実行します。

mousepad scan.xml

これにより、mousepadscan.xml ファイルが開きます。このファイルには XML 形式のスキャン結果が含まれており、スクリプトや他のツールでの解析に便利です。

最後に、scan.grep ファイルを開きましょう。ターミナルで次のコマンドを実行します。

mousepad scan.grep

これにより、mousepadscan.grep ファイルが開きます。このファイルには grep 可能な形式のスキャン結果が含まれており、grep などのコマンドラインツールを使って結果を検索およびフィルタリングする際に便利です。

mousepad のようなテキストエディタを使用することで、グラフィカルな環境で Nmap のスキャン結果を表示および分析する便利な方法が提供されます。

まとめ

この実験では、参加者は Nmap で出力形式を管理する方法を学びました。まず、IP アドレス 192.168.1.1 に対して基本的なスキャンを行い、開いているポートやサービスに関する情報を収集しました。次に、異なる形式でスキャン結果を保存しました。-oN を使った通常のテキスト形式、-oX を使った XML 形式、-oG を使った grep 可能な出力形式です。また、--append-output オプションを使って既存のファイルに出力を追加する方法も学びました。最後に、結果を Xfce のテキストエディタで開いて確認しました。