Day 22: Nmap入門 - ネットワークスキャンツールの基礎
はじめに
ネットワークセキュリティを学ぶなら、Nmap(Network Mapper) は欠かせないツールの1つです。Nmapは、ネットワーク上のデバイスやサービスをスキャンして、効率的に状況を把握できるオープンソースのネットワークスキャナです。
ここでは、Nmapの基本的な使い方や応用例、スクリプトエンジン(NSE)の活用法について解説していきます。ハッキングラボなど安全な環境がなくコマンドが試せない場合は、まずは「こういうことができるツールなんだ」くらいのイメージだけでも掴んでもらえれば十分だと思います。安全な環境の作り方やターゲットマシン(脆弱性のある仮想マシン)の準備などについては、別の記事で解説予定です。
Nmapとは?
Nmapは、ネットワーク管理やセキュリティ診断に特化したコマンドラインベース(CLI)のツールです。
主な用途
- ホスト発見:ネットワーク上で稼働中のデバイスを特定。
- ポートスキャン:開いているポートを確認し、サービスの状態を把握。
- OSとサービスの特定:デバイスのOSや稼働中サービスのバージョンを判定。
- 脆弱性診断:スクリプトを用いて、既知の脆弱性やセキュリティリスクを調査。
Nmapの特徴
- 無料かつオープンソース:幅広いユーザーが利用し、活発なコミュニティが存在。
- クロスプラットフォーム対応:Windows、Linux、macOSなど主要なOSで動作可能。
- 拡張性の高いNSE(Nmap Scripting Engine):カスタムスクリプトで機能を拡張。
- 多様なスキャンモード:基本的なポートスキャンから、OSフィンガープリント(OSの特定)やステルススキャンまで幅広く対応。
Nmapの入手
Nmapは公式サイトや主要なパッケージマネージャ(例:Homebrew、aptなど)から入手できます。
Nmapの基本コマンド
Nmapを使う際、スキャンの目的や調査対象に応じてコマンドを選びます。以下は、よく使われるであろう基本的なコマンドの紹介です。
また以前、ネットワークセキュリティ入門で取り上げたサイバーキルチェーンでいう、偵察(Reconnaissance) を行う際もこういったコマンドが用いられています。
1. ホストスキャン
ネットワーク上で稼働中のホスト(デバイス)を確認します。これにより、応答可能なIPアドレスを特定できます。
nmap [ターゲットIPまたはドメイン]
なぜスキャンするのか?
- ネットワーク全体の構造を把握するため。
- 不要なデバイスが接続されていないか確認するため。
- 特定デバイスが正常に接続されているかチェックするため。
2. ポートスキャン
ターゲットホストで開いているポートを調査します。これにより、稼働中のサービスを把握できます。
nmap -p [ポート番号] [ターゲットIP]
なぜスキャンするのか?
- 開いているポートを確認し、不必要なポートを閉じるため。
- 稼働中のサービス(例:ウェブサーバー)が正しく動作しているか確認するため。
- 特定のポートで通信障害が起きていないか調査するため。
3. 複数ホストのスキャン
指定したIPアドレスの範囲や複数ターゲットをまとめてスキャンします。これにより、大規模ネットワークの調査が効率的に行えます。
nmap [ターゲットIPの範囲を指定(192.168.1.1-10など)]
なぜスキャンするのか?
- ネットワーク全体の稼働状況を効率よく確認するため。
- 範囲内に未知のデバイスが存在しないか調査するため。
4. サービスとOSの特定
ターゲットホストの稼働中サービスやOSを特定します。これにより、脆弱性を特定するための詳細な情報を収集可能です。
nmap -A [ターゲットIP]
なぜスキャンするのか?
- 使用中のサービスやOSバージョンを確認し、古いソフトウェアのアップデートを検討するため。
- 互換性の問題や設定ミスを特定するため。
5. ステルススキャン
TCP接続を完全に確立せず、検知されにくい形でスキャンを実行します。これは、侵入検知システム(IDS)やファイアウォールを回避する際に役立ちます。
nmap -sS [ターゲットIP]
なぜスキャンするのか?
- IDS/IPSに検知されにくい形で情報を収集するため。
- ターゲットの負担を軽減しつつスキャンするため。
- セキュリティシステムの監視状態を評価するため。
Nmap Scripting Engine(NSE)
NSEを使うと、Nmapの機能を拡張し、詳細な解析や脆弱性スキャンが可能です。
NSEの代表的なスクリプト
-
脆弱性診断
nmap --script vuln [ターゲットIP]
-
HTTPサービスの分析
nmap --script http-enum [ターゲットIP]
-
SMB(Server Message Block)情報の取得
nmap --script smb-enum-shares [ターゲットIP]
NSEを活用すれば、スクリプトにより手間を省きながら深い解析が可能になります。
使用上の注意
-
許可された範囲での使用
- 許可なく他人のネットワークをスキャンすることは法律違反となる事があります。
- 必ず自身が管理するネットワークでのみ使用してください。
小テスト
Q1: Nmapで稼働中のホストを確認するための基本コマンドはどれですか?
a) nmap -p
b) nmap -A
c) nmap [ターゲットIP]
d) nmap --script vuln
Q2: ポートスキャンを実行して特定のポートを調査するオプションはどれですか?
a) -A
b) -p
c) -sS
d) --script
Q3: ステルススキャンを実行するオプションはどれですか?
a) -sU
b) -sT
c) -sS
d) -A
Q4: Nmap Scripting Engine(NSE)を利用して脆弱性診断を行うコマンドはどれですか?
a) nmap --script vuln [ターゲットIP]
b) nmap -sS [ターゲットIP]
c) nmap -p [ポート番号] [ターゲットIP]
d) nmap -A [ターゲットIP]
Q5: 複数のホストをスキャンするためのコマンドはどれですか?
a) nmap --script vuln
b) nmap -A
c) nmap 192.168.1.1-10
d) nmap -p 80
解答
Q1: c) nmap [ターゲットIP]
Q2: b) -p
Q3: c) -sS
Q4: a) nmap --script vuln [ターゲットIP]
Q5: c) nmap 192.168.1.1-10
まとめ
Wireshark、tcpdump、Nmapとここまでいくつかネットワーク関連のツールについて、触れてきました。次回からはこういったツールを活用しながら、ネットワークに関する知識をさらに深めていきます。
Discussion