はじめに
この実験では、Nmap における出力形式の管理方法を学びます。まず、IP アドレス 192.168.1.1
に対して基本的なスキャンを実行して、開いているポートとサービスに関する情報を収集します。次に、通常のテキスト、XML、および grep 可能な出力など、さまざまな形式でスキャン結果を保存し、既存のファイルに出力を追加する方法も学びます。最後に、Xfce のテキストエディタで結果を開きます。
この実験では、Nmap における出力形式の管理方法を学びます。まず、IP アドレス 192.168.1.1
に対して基本的なスキャンを実行して、開いているポートとサービスに関する情報を収集します。次に、通常のテキスト、XML、および grep 可能な出力など、さまざまな形式でスキャン結果を保存し、既存のファイルに出力を追加する方法も学びます。最後に、Xfce のテキストエディタで結果を開きます。
このステップでは、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 個のクローズドポートを表示しなかったことを示しています。
このステップでは、-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 スキャンの結果を含む 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 スキャンから grep 可能な出力ファイルを生成します。この形式は、grep
、awk
、sed
などのコマンドラインツールで簡単に解析できるように特別に設計されており、スクリプト作成や自動分析に便利です。
-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 スキャンの出力を既存のファイルに追加します。これは、複数のスキャンの結果を 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 のテキストエディタで Nmap のスキャン結果を開きます。これにより、グラフィカルな環境でスキャン出力を表示して分析できます。
Xfce のテキストエディタは mousepad
と呼ばれます。これを使って、前のステップで作成した scan.txt
、scan.xml
、scan.grep
などのファイルを開くことができます。
ターミナルから mousepad
でファイルを開くには、次のコマンドを使用します。
mousepad <filename>
ここで <filename>
は開きたいファイルの名前です。
まず、scan.txt
ファイルを開きましょう。ターミナルで次のコマンドを実行します。
mousepad scan.txt
これにより、mousepad
のテキストエディタで scan.txt
ファイルが開きます。これで、ファイルをスクロールして Nmap のスキャン結果を調べることができます。
次に、scan.xml
ファイルを開きましょう。ターミナルで次のコマンドを実行します。
mousepad scan.xml
これにより、mousepad
で scan.xml
ファイルが開きます。このファイルには XML 形式のスキャン結果が含まれており、スクリプトや他のツールでの解析に便利です。
最後に、scan.grep
ファイルを開きましょう。ターミナルで次のコマンドを実行します。
mousepad scan.grep
これにより、mousepad
で scan.grep
ファイルが開きます。このファイルには grep 可能な形式のスキャン結果が含まれており、grep
などのコマンドラインツールを使って結果を検索およびフィルタリングする際に便利です。
mousepad
のようなテキストエディタを使用することで、グラフィカルな環境で Nmap のスキャン結果を表示および分析する便利な方法が提供されます。
この実験では、参加者は Nmap で出力形式を管理する方法を学びました。まず、IP アドレス 192.168.1.1
に対して基本的なスキャンを行い、開いているポートやサービスに関する情報を収集しました。次に、異なる形式でスキャン結果を保存しました。-oN
を使った通常のテキスト形式、-oX
を使った XML 形式、-oG
を使った grep 可能な出力形式です。また、--append-output
オプションを使って既存のファイルに出力を追加する方法も学びました。最後に、結果を Xfce のテキストエディタで開いて確認しました。