【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

ハッカーはNmap Scripting Engineを利用して、ネットワーク探査やセキュリティ監査を行い脆弱性を見つける

ペネトレーションテスト&バグバウンティ

Nmap(Network Mapper)とは、ネットワークのスキャンや監査に使用されるオープンソースのセキュリティツールです。ネットワーク上のホストやサービスを探索し、その情報を詳細に分析します。ポートスキャンやサービスバージョンの検出、ネットワークマッピング、セキュリティ監査、脆弱性スキャンなどの用途に利用されます。
その処理の自動化スクリプトとして使えるのが「Nmap Scripting Engine」です。

Nmap Scripting Engineとは

Nmap Scripting Engine(以下、NSE)は、ホワイトハッカーやセキュリティ専門家がネットワークおよびシステムのセキュリティ監査や調査を行うためのツールです。
Nmap(Network Mapper)というネットワークスキャナーの一部になります。
NSEはKali LinuxのNmapから起動できます。
 
NSEは、Nmapが提供する柔軟なフレームワークであり、ユーザーがカスタムスクリプトを作成してNmapの機能を拡張することができ、柔軟性と拡張性もある為、様々なネットワーク環境に適応、広範なセキュリティ検査に利用されています。
 
主な機能としては以下のようなものがあります
 
1.スクリプトの実行
NSEは、Nmapのスキャンの間にスクリプトを実行し、ネットワーク上の様々な情報を収集します。これには、サービスやプロトコルのバージョン、脆弱性、セキュリティ設定などが含まれます。
 
2.標準スクリプトとカスタムスクリプト
NSEには、Nmapに同梱されている多くの標準スクリプトが含まれています。これらのスクリプトは、一般的なネットワーク調査やセキュリティ監査のために使用されます。また、ユーザーは独自のスクリプトを作成してNmapをカスタマイズしたり、オンラインで利用可能な多数の追加スクリプトも存在します。これらのスクリプトは、さまざまなネットワーク調査やセキュリティテストに使用されます。
 
3.脆弱性スキャン
NSEを使用して、特定の脆弱性を検出するためのスクリプトを実行することができます。これにより、システムやネットワークに存在する脆弱性を特定し、修正するための対策を講じることができます。
 
4.セキュリティ監査
NSEは、セキュリティポリシーの準拠やセキュリティベストプラクティスの確認を目的として、ネットワークやシステムの監査を行います。これには、不正アクセスを試みるためのテストや、不正なサービスやプロトコルの検出などが含まれます。
 
5.自動化と効率性
NSEは、Nmapのスキャンの間に自動的にスクリプトを実行し、ネットワーク上のさまざまな情報を収集します。これにより、手動で情報を収集する必要がなくなり、作業効率が向上します。
 

NSEのスクリプトとは

NSEのスクリプトは、特定のネットワークタスクを実行するための関数やルーチンのセットで構成されています。
スクリプトを使用してネットワーク探査やセキュリティテストをカスタマイズするための機能です。NSEは、Nmapの標準的なポートスキャンやサービス検出の機能を拡張し、特定のネットワークサービスやアプリケーションに関連する情報を収集したり、脆弱性スキャンを実行したりすることができます。
NSEスクリプトは、Lua言語で記述されています。
 
 

NSEの使用方法

NSEのコマンドを使用することで、ネットワーク探査やセキュリティ監査を行うことができます。NSEのスクリプトは、ネットワーク上のさまざまな情報を収集し、セキュリティの問題を特定するためのツールになります。
NSEの基本的な使用方法と一般的なコマンドは以下の通りです:
 
1.スクリプトの実行
Nmapを使用して特定のNSEスクリプトを実行するには、–scriptオプションを使用します。
nmap –script <script-name> <target>
 
たとえば、http-titleというスクリプトを使用して、HTTPサービスのタイトルを取得するには、次のようにします。
nmap –script http-title 10.0.2.4
 
2.スクリプトのカテゴリを指定
NSEにはさまざまなカテゴリのスクリプトがあります。特定のカテゴリのスクリプトのみを実行する場合は、–scriptオプションにカテゴリ名を指定します。
nmap –script <category> <target>
 
例えば、vulnカテゴリのスクリプトを実行するには、次のようにします。
nmap –script vuln 10.0.2.4
 
3.デフォルトのスクリプトの実行
いくつかの一般的なスクリプトを実行する場合は、-sCオプションを使用します。これにより、デフォルトのNSEスクリプトが実行されます。
nmap -sC <target>
 
4.スクリプトの出力を保存
実行したスクリプトの出力をファイルに保存する場合は、-oNオプションを使用して結果を指定したファイルに保存します。
nmap -oN output.txt –script <script-name> <target>
 
 

スクリプトの種類

NSEには、さまざまな種類のスクリプトが用意されています。これらのスクリプトは、ネットワーク探査、サービス特定、セキュリティテスト、脆弱性スキャンなど、さまざまな目的に使用されます。主な種類のスクリプトには以下のようなものがあります。
1.デフォルトスクリプト
Nmapにデフォルトで含まれる基本的なスクリプト。ポートスキャンやサービスバージョンの検出などの一般的なタスクに使用されます。
 
2.バージョン検出スクリプト
サービスやアプリケーションのバージョンを特定するスクリプト。特定のポートに対してバージョン番号や製品名を取得するために使用されます。
 
3.脆弱性スキャンスクリプト
既知の脆弱性を検出するためのスクリプト。特定のサービスやアプリケーションに関連する脆弱性を特定し、悪用する可能性があるセキュリティの問題を識別します。
 
4.ネットワークマッピングスクリプト
ネットワーク内のホストやサービスのマッピングを行うスクリプト。ホスト間の関係やネットワーク構造を把握するのに役立ちます。
 
5.暗号化スクリプト
暗号化やセキュリティプロトコルに関する情報を収集するスクリプト。SSL/TLSの設定や暗号アルゴリズムの使用状況を確認します。
 
6.ファイアウォールスクリプト
ファイアウォールやセキュリティデバイスの設定を検証するスクリプト。ファイアウォールルールやアクセス制御リスト(ACL)の検査を行います。
 
7.ハイパーバージョンスクリプト
高度な機能を提供するスクリプト。複数のホストやサービス間の相互作用を調査し、詳細な情報を収集します。
 
詳しくはこちらをごらんください。–> NSE Scripts
 
 

NSEを活用したセキュリティ監査と脆弱性スキャン

NSEを活用したセキュリティ監査と脆弱性スキャンは、ネットワークやシステムのセキュリティを評価し、潜在的な脆弱性やセキュリティの問題を特定するための効果的な方法です。以下に、NSEを活用したセキュリティ監査と脆弱性スキャンの一般的な手法を示します。
1.サービスとバージョンの検出
NSEを使用して、ネットワーク上のサーバーやデバイスが提供するサービスやそのバージョンを検出します。これにより、セキュリティポリシーに違反している古いバージョンのサービスを特定し、更新が必要な場合に対処できます。
 
2.脆弱性スキャン
NSEは、特定の脆弱性を検出するためのスクリプトを実行することができます。これにより、システムやアプリケーションに存在する既知の脆弱性を特定し、攻撃者が悪用する可能性があるリスクを識別します。一般的な脆弱性スキャンスクリプトには、CVE(Common Vulnerabilities and Exposures)番号に基づいて特定の脆弱性を検出するものや、特定のサービスやアプリケーションに関連する脆弱性を検出するものなどがあります。
 
3.セキュリティ設定の評価
NSEを使用して、ネットワーク上のシステムやデバイスのセキュリティ設定を評価します。これには、アクセス制御リスト(ACL)の検証、ファイアウォールルールの確認、不正な設定や構成ミスの検出などが含まれます。セキュリティポリシーに適合していない設定や構成が見つかった場合は、適切な対策を講じることが重要です。
 
4.不正アクセスの検出
NSEは、不正アクセスや不正な活動の検出にも使用できます。セキュリティイベントや不審な通信パターンを監視するスクリプトを実行し、不正な行動を特定します。これにより、潜在的なセキュリティ侵害を早期に検出し、迅速に対処することができます。
 
 

ハッカーはNmap Scripting Engineを利用して、ネットワーク探査やセキュリティ監査を行い脆弱性を見つけるのまとめ

Nmap Scripting Engineは、Nmapツールの重要な機能の1つであり、Luaスクリプトを使用してネットワークスキャンをカスタマイズします。NSEは、セキュリティ監査や脆弱性スキャンなどのタスクを自動化し、標準のスクリプトやカスタムスクリプトを使用してネットワーク上の様々な情報を収集します。
柔軟性と拡張性に優れ、セキュリティテストの効率を向上させ、ネットワークやシステムのセキュリティを向上させます。