ネットワーク評価のための高度なスキャンオプション
Nmap の基本と複数のターゲットをスキャンする方法を理解したので、サイバーセキュリティ評価に特に役立つ高度なスキャンオプションをいくつか見てみましょう。
ポート選択とスキャンタイプ
デフォルトでは、Nmap は最も一般的な 1000 個の TCP ポートをスキャンします。ただし、スキャンするポートをカスタマイズできます。
特定のポートのスキャン
特定のポートをスキャンするには、次のようにします。
nmap -p 22,80,443 localhost
このコマンドは、ポート 22、80、および 443 のみをスキャンします。
ポートの範囲をスキャンするには、次のようにします。
nmap -p 20-25 localhost
これは、ポート 20 から 25 をスキャンします。
すべての 65535 個の TCP ポートをスキャンするには、次のようにします。
nmap -p- localhost
すべてのポートをスキャンすると、大幅に時間がかかることに注意してください。
さまざまなスキャンタイプの使用
Nmap はさまざまなスキャン手法をサポートしています。デフォルトは TCP SYN スキャン (-sS) ですが、これには root 権限が必要です。root 権限がない場合、Nmap は TCP connect スキャン (-sT) を使用します。
TCP connect スキャンを明示的に試してみましょう。
nmap -sT localhost
よりステルス性の高いスキャンを行うには (root 権限が必要):
sudo nmap -sS localhost
UDP ポートをスキャンするには (見落とされがちですが、セキュリティにとって重要です):
sudo nmap -sU -p 53,161,162 localhost
これは、UDP ポート 53 (DNS)、161、および 162 (SNMP) をスキャンします。
OS 検出とバージョンスキャン
より包括的な情報については、OS 検出とサービスバージョンスキャンを組み合わせてみましょう。
sudo nmap -sS -O -sV localhost
-O オプションは、ターゲットのオペレーティングシステムを識別しようとします。これは、さまざまなオペレーティングシステムが異なる脆弱性を持っている可能性があるため、セキュリティ評価に貴重な情報を提供します。
各オプションが何を行うかを見てみましょう。
-sS: SYN スキャンを実行します (root が必要)
-O: ターゲットのオペレーティングシステムを識別しようとします
-sV: オープンポートをプローブして、サービス/バージョン情報を決定します
出力には、ターゲットで実行されているオペレーティングシステムとサービスバージョンの詳細な情報が含まれます。
Nmap スクリプトの使用
Nmap には、高度なサービス検出から脆弱性スキャンまで、幅広いタスクを実行できる強力な Nmap Scripting Engine (NSE) が含まれています。
一般的に公開されているサービスをチェックする基本的なスクリプトを実行してみましょう。
nmap --script=default localhost
よりセキュリティに重点を置いたスキャンを行うには、次のようにします。
nmap --script=vuln localhost
これにより、ターゲットに対して脆弱性検出スクリプトが実行され、一般的なセキュリティ問題が特定されます。
タイミングとパフォーマンスオプション
複数のターゲットをスキャンする場合、スキャンパフォーマンスの最適化が重要になります。すでに -T オプションを見てきましたが、よりきめ細かい制御が可能です。
nmap -T4 --max-rtt-timeout 200ms --min-rate 1000 127.0.0.1/24
このコマンドは、次のことを行います。
- 「アグレッシブ」なタイミングテンプレートを使用します (
-T4)
- 最大ラウンドトリップタイムアウトを 200ms に設定します
- 最小レートを 1000 パケット/秒に設定します
これらの設定により、複数のホストのスキャンを大幅に高速化できますが、混雑したネットワークや高遅延のネットワークでは信頼性が低くなる可能性があります。
包括的なスキャンのためのすべてを組み合わせる
ローカルネットワークの包括的なスキャンを行うために、複数の手法を組み合わせてみましょう。
sudo nmap -sS -sV -O -p 1-1000 --script=default -T4 -oA comprehensive_scan 127.0.0.1
このコマンドは、次のことを実行します。
- SYN スキャン
- サービスバージョン検出
- OS 検出
- ポート 1 ~ 1000 をスキャン
- デフォルトスクリプトを実行
- アグレッシブなタイミングを使用
- 結果をプレフィックス「comprehensive_scan」で、すべての形式で保存します
結果を調べてみましょう。
cat comprehensive_scan.nmap
この包括的なスキャンは、オープンポート、実行中のサービス、サービスバージョン、潜在的な脆弱性など、ターゲットシステムに関する豊富な情報を提供します。
倫理的配慮とベストプラクティス
結論を出す前に、Nmap はスキャンする明示的な許可があるネットワークでのみ使用する必要があることを強調することが重要です。許可なくスキャンすることは違法であり、敵対的な行為と見なされる可能性があります。
従うべきベストプラクティスをいくつか示します。
- ネットワークまたはシステムをスキャンする前に、必ず許可を得てください
- ネットワークへの影響を最小限に抑えるために、可能な限り、それほどアグレッシブでないスキャンを使用してください
- 誤検出と誤検出の可能性に注意してください
- 参照と説明責任のために、スキャン活動を文書化してください
- 発見された情報のプライバシーと機密性を尊重してください