Nmap Scripting Engine
NSEスクリプト
「Nmap Scripting Engine」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。
NSEとは何か
Nmap Scripting Engine(NSE)は、Luaで記述されたスクリプトによってNmapを拡張します。Nmapをポートスキャナーから、ディスカバリー、バージョン検出、脆弱性チェックなどに対応する柔軟な自動化プラットフォームへと変えます。
Nmapには、非常に幅広いサービスやタスクを対象とする、コミュニティ製のスクリプトが数千個付属しています。
スクリプトのカテゴリ
NSEスクリプトは、動作とリスクを示すカテゴリに分類されています。
- safe:対象に害を及ぼす可能性が低い
- intrusive:サービスをクラッシュさせたり、妨害したりする可能性がある
- vuln:既知の脆弱性をチェックする
- auth、brute、discovery、exploit、malware:それぞれ特定の目的に特化している
カテゴリを指定すると、同じカテゴリのスクリプトをまとめて実行できます。
デフォルトスクリプト
-sCフラグを使うと、安全で有用なスクリプトを厳選したdefaultスクリプトセットが実行されます。これは--script=defaultと同じです。
最初の調査として非常に有効です。バナーを取得し、基本情報を列挙し、対象に負荷をかけずに見つけやすい情報を確認できます。
nmap -sC 192.168.1.10
# Runs the default safe script set特定のスクリプトを実行する
--scriptを使うと、名前を指定したスクリプト、カンマ区切りのリスト、カテゴリ、さらにはワイルドカードパターンを実行できます。
nmap --script http-title 192.168.1.10
nmap --script 'http-*' 192.168.1.10カテゴリを指定して実行する
カテゴリ全体を実行できます。vulnカテゴリを実行すると、多数の既知の脆弱性検出スクリプトで対象を一度にチェックします。
カテゴリはブール式で組み合わせ、実行する内容を正確に制御できます。
nmap --script vuln 192.168.1.10
nmap --script 'safe and discovery' 192.168.1.10スクリプト引数
多くのスクリプトは、--script-argsを使って引数を受け取ります。たとえば、認証情報、ワードリストのパス、対象URLなどを指定できます。
nmap --script http-brute \
--script-args http-brute.path=/admin 192.168.1.10脆弱性スキャン
NSEには強力な脆弱性検出スクリプトが含まれています。vulnersは検出したバージョンを基にCVEデータベースを照会し、smb-vuln-ms17-010(EternalBlue)のようなサービス固有のスクリプトは、個別の脆弱性を検証します。
これらのチェックは、必ず許可を得て実行してください。脆弱性検出スクリプトは侵入的な動作を行う可能性があり、脆弱なシステムに影響を与えることがあります。
nmap -sV --script vulners 192.168.1.10
nmap --script smb-vuln-ms17-010 -p445 192.168.1.10スクリプトの保存場所
スクリプトはNmapのscriptsディレクトリに保存されます。通常は/usr/share/nmap/scriptsです。インデックスデータベースにより、Nmapはカテゴリや名前を解決できます。
新しいスクリプトを追加したら、インデックスを更新して認識できるようにしてください。
ls /usr/share/nmap/scripts | grep smb
nmap --script-updatedb適切なスクリプトを見つける
役立つスクリプトを見つけるには、scriptsディレクトリを検索するか、ヘルプテキストを確認します。--script-helpフラグを使うと、実行前にスクリプトの説明と引数が表示されます。
nmap --script-help http-enum
# Shows what the script does and its argsNSEと他のフラグを組み合わせる
NSEはバージョン検出と組み合わせると効果を発揮します。これにより、スクリプトが対象にするサービスを把握できます。一般的な詳細スキャンでは、-sVとスクリプトを組み合わせ、出力を保存します。
侵入的なカテゴリは慎重に使用し、必ず許可された範囲内で実行してください。
nmap -sV -sC -p- -oA full_scan 192.168.1.10独自のスクリプトを書く
NSEはLuaを使用するため、特殊なサービス向けや繰り返し行うチェック向けのカスタムスクリプトを作成できます。スクリプトでは、対象にするポートやサービス(ルール)と、一致した対象に対して実行するアクション関数を定義します。
効果的に利用するためにスクリプトを書く必要はありません。しかし、エンジンが拡張可能であることを知っておけば、NSEが成長し続ける理由や、遭遇するほぼすべてのサービス向けにスクリプトが存在する可能性が高い理由を理解できます。
クイックチェック
スクリプトのカテゴリとリスクについて考えてみましょう。
まとめ
Nmap Scripting Engineについて学びました。
- NSEは、カテゴリ(safe、intrusive、vuln、bruteなど)に分類されたLuaスクリプトを実行します。
-sCは安全なdefaultセットを実行し、--scriptは名前、パターン、カテゴリを指定して実行します。- 認証情報やオプションを渡すには
--script-argsを使い、最初に--script-helpを確認します。 - vulnersやsmb-vuln-ms17-010などの脆弱性検出スクリプトで既知の脆弱性を見つけられます。
-sVと組み合わせ、-oAで保存します。侵入的なスクリプトは、許可を得た場合にのみ使用してください。
これでNmap Deep DiveとEthicalHackingの追加モジュールは完了です。
よくある質問
「Nmap Scripting Engine」レッスンは無料ですか?
はい。「Nmap Scripting Engine」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。
「Nmap Scripting Engine」で何を学びますか?
NSEスクリプト ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ethical Hacking Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Nmap Scripting Engine」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEthical Hacking Academyレッスンでコードを書いて実行できますか?
はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ホストの探索
- ポートスキャンの技法
- サービスとOSの検出
- Nmap Scripting Engine