はじめに
この実験では、Nmap のスクリプトエンジン (NSE) について学び、Nmap スクリプトの分類方法と更新方法を学びます。強力なオープンソースのネットワーク探索およびセキュリティ監査ツールである Nmap は、NSE によって機能が拡張されています。NSE を使用すると、ユーザーはさまざまなネットワークタスクを自動化するためのスクリプトを作成し、共有することができます。
この実験では、Nmap のスクリプトカテゴリを探索し、カスタムスクリプトディレクトリを作成し、独自のスクリプトを追加し、Nmap スクリプトデータベースを更新する方法を案内します。これらのスキルは、ネットワーク管理者やセキュリティ専門家がネットワークを効率的にスキャンし、脆弱性を特定するために不可欠です。
Nmap スクリプトカテゴリの探索
このステップでは、システムに事前にインストールされている Nmap スクリプトのカテゴリを探索します。Nmap スクリプトはサイバーセキュリティの分野で強力なツールです。これらは機能に応じて整理されています。たとえば、一部のスクリプトはディスカバリ (探索) に使用され、ネットワーク上のデバイスやサービスを見つけることができます。他のスクリプトは脆弱性評価に使用され、システムのセキュリティ上の弱点を特定するのに役立ちます。
まず、ターミナルを開く必要があります。ターミナルは、システムと対話するためのコマンドを入力できるテキストベースのインターフェイスです。ターミナルを開いたら、正しいディレクトリにいることを確認する必要があります。ディレクトリは、コンピュータ上のフォルダのようなもので、ファイルや他のフォルダが格納されています。ターミナルで次のコマンドを実行します。
cd /home/labex/project
このコマンドは、現在の作業ディレクトリを /home/labex/project に変更します。
では、システムにインストールされている Nmap のバージョンを確認しましょう。バージョンを知ることは重要です。なぜなら、異なるバージョンでは異なる機能や互換性がある場合があるからです。ターミナルでこのコマンドを実行します。
nmap --version
出力は次のようになります。
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
次に、利用可能な Nmap スクリプトのカテゴリを調べます。Nmap スクリプトは /usr/share/nmap/scripts/ ディレクトリに格納されています。利用可能なスクリプトの概要を把握するために、それらを一覧表示し、名前でソートすることができます。ターミナルでこのコマンドを実行します。
ls /usr/share/nmap/scripts/ | grep -v .lua | sort | head -10
このコマンドは、まず /usr/share/nmap/scripts/ ディレクトリ内のすべてのファイルを一覧表示します。次に、grep -v .lua を使用して .lua 拡張子のファイルを除外します。その後、残りのファイルを名前でソートし、最初の 10 件の結果を表示します。出力は次のようになります。
address-info.nse
afp-brute.nse
afp-ls.nse
afp-path-vuln.nse
afp-serverinfo.nse
afp-showmount.nse
ajp-auth.nse
ajp-brute.nse
ajp-headers.nse
ajp-methods.nse
すべてのスクリプトカテゴリを表示するには、次のコマンドを使用できます。
grep -r categories /usr/share/nmap/scripts/*.nse | grep -o "categories = {[^}]*}" | sort | uniq | head -10
このコマンドは、/usr/share/nmap/scripts/ ディレクトリ内のすべての .nse スクリプトファイルを検索して "categories" 文字列が含まれているかを調べます。その後、カテゴリ情報を抽出し、ソートし、重複するエントリを削除し、最初の 10 件の結果を表示します。出力は次のようになります。
categories = {"auth", "brute", "intrusive"}
categories = {"auth", "default", "discovery", "safe"}
categories = {"auth", "discovery", "safe"}
categories = {"auth", "intrusive"}
categories = {"auth", "safe"}
categories = {"broadcast", "discovery"}
categories = {"broadcast", "discovery", "safe"}
categories = {"default", "discovery"}
categories = {"default", "discovery", "safe"}
categories = {"default", "discovery", "safe", "version"}
より良い整理のために、スクリプトを機能に基づいてカテゴリ分けするディレクトリ構造を作成します。これにより、後でスクリプトを見つけて使用しやすくなります。異なるカテゴリに対して別々のディレクトリを作成します。ターミナルでこれらのコマンドを実行します。
mkdir -p /home/labex/project/NmapScripts/vulnerability
mkdir -p /home/labex/project/NmapScripts/discovery
mkdir -p /home/labex/project/NmapScripts/authentication
mkdir -p コマンドはディレクトリを作成します。親ディレクトリが存在しない場合、それらも作成します。
では、脆弱性関連のスクリプトを新しく作成した脆弱性ディレクトリにコピーしましょう。ターミナルでこのコマンドを実行します。
cp /usr/share/nmap/scripts/smb-vuln* /home/labex/project/NmapScripts/vulnerability/
このコマンドは、/usr/share/nmap/scripts/ ディレクトリ内の名前が smb - vuln で始まるすべてのスクリプトを /home/labex/project/NmapScripts/vulnerability/ ディレクトリにコピーします。
ファイルが正しくコピーされたことを確認しましょう。ターミナルでこのコマンドを実行します。
ls -la /home/labex/project/NmapScripts/vulnerability/
出力には、コピーされた脆弱性スクリプトが表示されます。
total 88
drwxr-xr-x 2 labex labex 4096 Mar 15 12:30 .
drwxr-xr-x 4 labex labex 4096 Mar 15 12:30 ..
-rw-r--r-- 1 labex labex 3355 Mar 15 12:30 smb-vuln-conficker.nse
-rw-r--r-- 1 labex labex 8045 Mar 15 12:30 smb-vuln-cve2009-3103.nse
-rw-r--r-- 1 labex labex 5100 Mar 15 12:30 smb-vuln-cve-2017-7494.nse
-rw-r--r-- 1 labex labex 9595 Mar 15 12:30 smb-vuln-ms06-025.nse
-rw-r--r-- 1 labex labex 11645 Mar 15 12:30 smb-vuln-ms07-029.nse
-rw-r--r-- 1 labex labex 12558 Mar 15 12:30 smb-vuln-ms08-067.nse
-rw-r--r-- 1 labex labex 9719 Mar 15 12:30 smb-vuln-ms10-054.nse
-rw-r--r-- 1 labex labex 7326 Mar 15 12:30 smb-vuln-ms10-061.nse
-rw-r--r-- 1 labex labex 8091 Mar 15 12:30 smb-vuln-ms17-010.nse
-rw-r--r-- 1 labex labex 4245 Mar 15 12:30 smb-vuln-regsvc-dos.nse
同様に、いくつかのディスカバリと認証スクリプトをそれぞれのディレクトリにコピーしましょう。ターミナルでこれらのコマンドを実行します。
cp /usr/share/nmap/scripts/dns-* /home/labex/project/NmapScripts/discovery/
cp /usr/share/nmap/scripts/ssh-* /home/labex/project/NmapScripts/authentication/
これで、一部の Nmap スクリプトを機能に基づいてカテゴリ分けして整理しました。これにより、特定のタスクに対してスクリプトを見つけて使用しやすくなります。
スクリプトの機能を理解する
このステップでは、Nmap スクリプトを調査して理解し、それらが何ができるかを把握する方法を学びます。これを知ることは非常に重要です。なぜなら、異なるネットワークスキャン作業に適したスクリプトを選ぶのに役立つからです。
前のステップでコピーした脆弱性スクリプトの 1 つを詳しく見てみましょう。cat コマンドを使用してスクリプトの内容を表示し、head -20 を使用して最初の 20 行のみを表示します。これにより、スクリプトの冒頭にある重要な情報をすぐに確認できます。
cat /home/labex/project/NmapScripts/vulnerability/smb-vuln-ms17-010.nse | head -20
出力にはスクリプトの冒頭部分が表示されます。この部分には通常、スクリプトの用途や使い方に関する詳細が記載されています。
local smb = require "smb"
local vulns = require "vulns"
local stdnse = require "stdnse"
local string = require "string"
description = [[
Attempts to detect if a Microsoft SMBv1 server is vulnerable to a remote code
execution vulnerability (ms17-010, a.k.a. EternalBlue). The vulnerability affects
Windows Vista, 7, 8.1, 10, Server 2008, Server 2008 R2, Server 2012 Gold and R2, and Server 2016.
The script connects to the $IPC tree, executes a transaction on FID 0 and
checks if the error "STATUS_INSUFF_SERVER_RESOURCES" is returned to
determine if the target is not patched against ms17-010. Additionally it checks
for a matching error code on EternalChampion.
References:
* https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
* https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
* https://msrc-blog.microsoft.com/2017/05/12/customer-guidance-for-wannacrypt-attacks/
* https://github.com/rapid7/metasploit-framework/pull/8654/files
このスクリプトは、Microsoft SMBv1 サーバーが MS17 - 010 脆弱性 (別名 EternalBlue) を持っているかどうかをチェックするように設計されています。
では、Nmap スクリプトの構造を見て、そのさまざまな部分を理解しましょう。ほとんどの Nmap スクリプトには、次のような重要なコンポーネントがあります。
- 説明セクション:これはスクリプトが何をするかを説明します。スクリプトの目的をすぐに理解するのに役立つ短い要約のようなものです。
- 作者セクション:これはスクリプトを作成した人にクレジットを与えます。特に、作者に連絡したい場合や同じ作者の他のスクリプトを探す場合に、誰がスクリプトを作成したかを知ることは重要です。
- カテゴリ:これらは似たようなスクリプトをグループ化します。たとえば、脆弱性スキャンに関連するスクリプトは "vuln" カテゴリに分類されるかもしれません。これにより、スクリプトの検索と管理が容易になります。
- ルール:これらはスクリプトが実行されるタイミングを決定します。
portruleやhostruleなど、さまざまな種類のルールがあります。たとえば、hostruleは特定のホストでのみスクリプトを実行するように指定できます。 - メインアクション関数:ここでスクリプトの実際の作業が行われます。脆弱性のチェックやホストに関する情報の取得など、タスクを実行するコードが含まれています。
この構造を実際に確認するために、独自の基本的な Nmap スクリプトを作成しましょう。cat コマンドを使用して新しいファイルを作成し、スクリプトを書き込みます。
cat << 'EOF' > /home/labex/project/my-ping-check.nse
description = [[
A simple script that checks if a host responds to ICMP echo requests (ping).
]]
author = "LabEx User"
categories = {"discovery", "safe"}
-- The rule section determines when the script should be run
hostrule = function(host)
return true -- Run the script for all hosts
end
-- The action section contains the main function of the script
action = function(host)
local output = "Host status: "
if host.pingresponse then
output = output .. "Responds to ping"
else
output = output .. "Does not respond to ping"
end
return output
end
EOF
このスクリプトを分解してみましょう。
descriptionセクションは、スクリプトがホストが ping 要求に応答するかどうかをチェックすることを明確に説明しています。authorセクションは、スクリプトが LabEx ユーザーによって作成されたことを示しています。categoriesセクションは、このスクリプトを他のディスカバリ (探索) および安全なスクリプトとグループ化しています。ディスカバリスクリプトはホストに関する情報を見つけるために使用され、安全なスクリプトはターゲットに何らかの害を与えないものです。hostrule関数はtrueを返すように設定されているため、すべてのホストでスクリプトが実行されます。action関数にはメインのロジックが含まれています。ホストが ping 応答を持っているかどうかをチェックし、ホストが ping に応答するかどうかを示すメッセージを返します。
では、カスタムスクリプトをローカルホスト (127.0.0.1) に対して実行しましょう。nmap コマンドと --script オプションを使用して、カスタムスクリプトを指定します。
nmap --script /home/labex/project/my-ping-check.nse 127.0.0.1
次のような出力が表示されるはずです。
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000091s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
| my-ping-check: Host status: Responds to ping
3001/tcp open nessus
|_my-ping-check: Host status: Responds to ping
Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
この出力は、私たちのスクリプトが正しく動作していることを示しています。ローカルホストが ping 要求に応答することを検出しました。これは単純な例ですが、Nmap スクリプトの基本的な構造と機能を示しています。
カスタムスクリプトの作成と Nmap への追加
このステップでは、カスタム Nmap スクリプトを作成し、Nmap スクリプトデータベースに追加する方法を学びます。Nmap は強力なネットワークスキャンツールであり、カスタムスクリプトを追加することで、特定のニーズに合わせてその機能を拡張することができます。つまり、デフォルトの Nmap スクリプトではカバーされていない独自のタスクをネットワークスキャン中に実行することができます。
まず、少し複雑な新しいスクリプトを作成しましょう。このスクリプトは、特定のポートが開いているかどうかをチェックします。ポートはネットワーク上のドアのようなもので、さまざまな種類のネットワークトラフィックがデバイスに出入りするのを許可します。ポートが開いているかどうかをチェックすることで、特定のサービスがデバイス上で実行されているかどうかを知ることができます。
cat << 'EOF' > /usr/share/nmap/scripts/port-check.nse
description = [[
A script that checks if a specific port is open and reports its status.
]]
author = "LabEx User"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery", "safe"}
-- The portrule determines when the script should be run
portrule = function(host, port)
return port.protocol == "tcp" and port.state == "open"
end
-- The action section contains the main function of the script
action = function(host, port)
local output = string.format("Port %d is open on host %s", port.number, host.ip)
return output
end
EOF
上記のコードでは、まずスクリプトの機能についての説明を定義します。次に、作者とライセンス情報を設定します。portrule 関数は、スクリプトが実行されるタイミングを決定します。ここでは、ポートが TCP プロトコルを使用しており、かつ開いているかどうかをチェックします。action 関数はスクリプトの主要部分です。特定のホスト上で特定のポートが開いていることを示すメッセージを作成します。
このスクリプトを Nmap スクリプトディレクトリ (/usr/share/nmap/scripts/) に直接作成したことに注意してください。これは重要です。なぜなら、Nmap はこのディレクトリ内のスクリプトを探すからです。ただし、スクリプトを作成するだけでは不十分です。Nmap にこの新しいスクリプトを認識させるために、Nmap スクリプトデータベースを更新する必要があります。
Nmap スクリプトデータベースを更新するには、次のコマンドを実行します。
sudo nmap --script-updatedb
出力は次のようになります。
Starting Nmap 7.80 ( https://nmap.org )
NSE: Updating rule database.
NSE: Script Database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.36 seconds
この出力は、スクリプトデータベースが正常に更新されたことを示しています。では、私たちのスクリプトが Nmap スクリプトデータベースに追加されたことを確認しましょう。これは、script.db ファイル内で私たちのスクリプトを検索することで行うことができます。
grep port-check /usr/share/nmap/scripts/script.db
次のような出力が表示されるはずです。
Entry { filename = "port-check.nse", categories = { "discovery", "safe", } }
これにより、私たちのスクリプトが Nmap スクリプトデータベースに正常に追加されたことが確認されます。
では、Nmap スクリプト内でライブラリを使用する方法を示すもう 1 つのスクリプトを作成しましょう。ライブラリは、スクリプトをより強力にするために使用できる事前に書かれたコードです。このスクリプトは、Web サーバーの HTTP ヘッダーをチェックします。HTTP ヘッダーには、Web ページに関する重要な情報、たとえばサーバーの種類、最後に更新された日付などが含まれています。
cat << 'EOF' > /usr/share/nmap/scripts/http-headers-check.nse
description = [[
A script that retrieves and displays HTTP headers from web servers.
]]
author = "LabEx User"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery", "safe"}
local http = require "http"
local shortport = require "shortport"
local stdnse = require "stdnse"
-- The portrule determines when the script should be run
portrule = function(host, port)
return shortport.http(host, port)
end
-- The action section contains the main function of the script
action = function(host, port)
local response = http.get(host, port, "/")
if not response or not response.status then
return "Failed to retrieve HTTP headers"
end
local output = stdnse.output_table()
output["Status"] = response.status
if response.header then
output["Headers"] = {}
for name, value in pairs(response.header) do
output["Headers"][name] = value
end
end
return output
end
EOF
このスクリプトは、いくつかの Nmap ライブラリを使用しています。
http:HTTP リクエストを行うためのライブラリです。このライブラリにより、スクリプトは Web サーバーと通信し、そこから情報を取得することができます。shortport:ポートが HTTP サービスを実行している可能性があるかどうかを判断するためのライブラリです。ホスト上の特定のポートが Web トラフィックに使用されているかどうかを判断するのに役立ちます。stdnse:出力を整形するためのライブラリです。これにより、Web サーバーから取得した情報が読みやすくなります。
再度スクリプトデータベースを更新して、Nmap に新しいスクリプトを認識させましょう。
sudo nmap --script-updatedb
では、新しいスクリプトを Web サーバーに対して実行しましょう。デモンストレーションのために、ポート 3001(開発サーバーでよく使用される)のローカル Web サーバーを使用します。
nmap --script http-headers-check -p 3001 127.0.0.1
ポート 3001 に Web サーバーが実行されていない場合、出力はポートが閉じているかフィルタリングされていることを示します。Web サーバーがある場合、取得された HTTP ヘッダーが表示されます。
最後に、2 つのカスタムスクリプトを一緒に実行しましょう。これにより、2 つのスクリプトの結果を一度に確認することができます。
nmap --script "port-check,http-headers-check" -p 22,3001 127.0.0.1
このコマンドは、ローカルホストのポート 22 と 3001 に対して 2 つのカスタムスクリプトを実行します。ポート 22 は一般的に SSH(Secure Shell)接続に使用されます。
出力には、これらのポートが開いているかどうかが表示され、ポート 3001 が HTTP サービスを実行している場合、HTTP ヘッダーが表示されます。
カスタムスクリプトを作成して Nmap に追加することで、ネットワークスキャンやセキュリティ評価の要件に応じたタスクを実行するために、その機能を拡張することができます。
スクリプトカテゴリの実行とスクリプト出力の管理
このステップでは、Nmap スクリプトをカテゴリごとに実行する方法と、これらのスクリプトスキャンの出力を管理する方法を探っていきます。これは非常に有用なスキルです。なぜなら、個々のスクリプトをそれぞれ指定することなく、関連する複数のスクリプトを実行できるからです。
Nmap スクリプトは、その機能に基づいてさまざまなカテゴリに分類されています。これらのカテゴリを理解することで、必要なスクリプトをすばやく見つけて実行することができます。以下はいくつかの一般的なカテゴリです。
auth:これらは認証に関連するスクリプトです。ターゲットの認証メカニズムが安全かどうかをチェックするのに役立ちます。broadcast:このカテゴリのスクリプトは、ローカルネットワーク上でブロードキャストを送信します。同じネットワーク上のデバイスやサービスを発見するのに便利です。brute:これらはブルートフォースパスワード監査スクリプトです。異なるパスワードを試して、サービスに不正アクセスできるかどうかを確認します。default:Nmap で-sCオプションを使用すると、これらのスクリプトがデフォルトで実行されます。基本的なスキャンの良い出発点を提供します。discovery:これらのスクリプトは、ホストとサービスの発見に使用されます。ネットワーク上で利用可能なホストと、それらが実行しているサービスを見つけることができます。dos:サービス拒否(Denial of Service、DOS)スクリプトは、ターゲットシステムを過負荷にして利用不能にするように設計されています。これらを使用する際には注意が必要です。なぜなら、実際の損害を引き起こす可能性があるからです。exploit:エクスプロイト(Exploitation)スクリプトは、システムの既知の脆弱性を利用するために使用されます。セキュリティテストに使用できますが、責任を持って使用する必要があります。external:これらのスクリプトは、データをサードパーティのデータベースに送信する場合があります。ターゲットに関する追加情報を提供することができますが、プライバシーに関する影響を考慮する必要があります。fuzzer:ファザー(Fuzzer)スクリプトは、ファジング技術を使用します。ランダムまたは不正なデータをターゲットに送信して、エラーや脆弱性が露出するかどうかを確認します。intrusive:このカテゴリのスクリプトは、サービスをクラッシュさせる可能性があったり、侵入的と見なされる場合があります。特に本番環境では、注意して使用してください。malware:マルウェア検出スクリプトは、ターゲットシステムがマルウェアに感染しているかどうかをチェックするために使用されます。safe:これらのスクリプトは安全で非侵入的と見なされます。ターゲットシステムに何らかの害を与えることはありません。version:バージョン検出スクリプトは、ターゲットサービスで実行されているソフトウェアのバージョンを見つけるのに役立ちます。この情報は、潜在的な脆弱性を特定するのに役立つ場合があります。vuln:脆弱性検出スクリプトは、ターゲットシステムのセキュリティ上の弱点を見つけるために使用されます。
では、特定のカテゴリのスクリプトを実行する方法を見てみましょう。たとえば、"discovery" カテゴリのすべてのスクリプトを実行したい場合は、次のコマンドを使用できます。
nmap --script discovery 127.0.0.1
このコマンドは、Nmap に対して、ローカルホスト(127.0.0.1)に対してすべてのディスカバリスクリプトを実行するよう指示します。出力は非常に長くなるでしょう。なぜなら、すべてのディスカバリスクリプトの結果が表示されるからです。
場合によっては、複数のカテゴリのスクリプトを実行したいことがあります。これは、カテゴリ名をコンマで区切ることで行うことができます。以下に例を示します。
nmap --script "discovery,safe" -p 1-100 127.0.0.1
このコマンドは、ローカルホストのポート 1 - 100 に対して、ディスカバリと安全なカテゴリのすべてのスクリプトを実行します。
not 演算子を使用して、特定のカテゴリを除外することもできます。たとえば:
nmap --script "discovery and not broadcast" 127.0.0.1
このコマンドは、ディスカバリスクリプトを実行しますが、ブロードキャストカテゴリに属するものは除外します。
次に、Nmap スクリプトスキャンの出力をフォーマットして保存するさまざまな方法を見てみましょう。Nmap はいくつかの出力形式を提供しており、それぞれ異なる目的に役立ちます。
- 通常出力(デフォルト):これは、Nmap が画面に表示する標準のテキスト出力です。
- XML 出力:XML は、他のツールで容易に解析できる構造化された形式です。
- Grep 可能な出力:この形式は、
grepなどのツールで容易に検索できるように設計されています。 - JSON 出力(適切なスクリプトを使用する場合):JSON は、データ交換に広く使用される別の構造化形式です。
出力を XML 形式で保存するには、次のコマンドを使用できます。
nmap --script vuln -p 1-1000 127.0.0.1 -oX /home/labex/project/scan_results.xml
このコマンドは、ローカルホストのポート 1 - 1000 に対してすべての脆弱性スクリプトを実行し、結果を XML 形式で /home/labex/project/scan_results.xml ファイルに保存します。
XML ファイルの内容を確認してみましょう。
head -20 /home/labex/project/scan_results.xml
このコマンドは、XML 形式の出力の最初の 20 行を表示します。スキャンに関する情報、使用されたオプション、およびスキャン結果が表示されます。
Grep 可能な出力を得るには、次のコマンドを使用できます。
nmap --script "default" 127.0.0.1 -oG /home/labex/project/scan_results.gnmap
このコマンドは、結果を grep などのツールで容易に解析できる形式で保存します。
gnmap ファイルの内容を確認してみましょう。
cat /home/labex/project/scan_results.gnmap
各ホストが 1 行に表示されるので、特定の情報を検索するのが容易になります。
出力を通常形式と XML 形式の両方で同時に保存したい場合は、次のコマンドを使用できます。
nmap --script "default" 127.0.0.1 -oX /home/labex/project/scan_results2.xml -oN /home/labex/project/scan_results.txt
このコマンドは、出力を通常のテキスト形式と XML 形式の両方で同時に保存します。
最後に、-oA オプションを使用して、出力を 3 つの形式(通常、XML、および Grep 可能)で一度に保存することができます。
nmap --script "default" 127.0.0.1 -oA /home/labex/project/all_formats
このコマンドは、3 つのファイルを作成します。
/home/labex/project/all_formats.nmap(通常出力)/home/labex/project/all_formats.xml(XML 出力)/home/labex/project/all_formats.gnmap(Grep 可能な出力)
これらのスクリプトカテゴリの実行方法とスクリプト出力の管理技術を習得することで、効率的にネットワークスキャンを行い、結果を整理してさらなる分析に役立てることができます。
まとめ
この実験では、Nmap のスクリプティングエンジン(NSE)を使用するための重要なスキルを学びました。Nmap スクリプトをその機能に応じて分類し、整理する方法を探りました。これは、効率的なネットワークスキャンとセキュリティ評価に不可欠です。
スクリプトのカテゴリを調査したり、整理されたディレクトリを作成したり、スクリプトの構造を理解したり、カスタムスクリプトを作成してデータベースに追加したり、論理演算子を使用してカテゴリごとにスクリプトを実行したり、さまざまな形式で出力を管理したりするなど、多方面で実践的な経験を積みました。これらのスキルにより、特定のニーズに合わせて Nmap の機能を拡張することができます。スクリプトの作成、分類、更新を習得することで、よりターゲット指向で効率的なスキャンワークフローを開発することができます。スキャン結果を整理し、フォーマットする能力は、文書化やチームメンバーおよび利害関係者とのコミュニケーションにも役立ちます。Nmap の使用を続けるにつれて、これらのスキルを基に、より複雑なスクリプトとスキャン戦略を構築することができます。



