Nmapによるポートスキャン技法
SYN、TCP connect、UDP、バージョンスキャンを実行し、Nmapの出力を読み、タイミングを調整して検知を回避します。
「Nmapによるポートスキャン技法」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
ポートスキャンが重要な理由
ポートスキャンを行うと、対象でどのサービスが稼働しているかを明らかにできます。開いているポートはすべて潜在的な侵入口です。何が公開されているかを把握することは、攻撃側と防御側のどちらにとっても最初の一歩です。
TCP SYNスキャン(ステルススキャン)
SYNスキャン(-sS)はSYNパケットを送信し、ハンドシェイクを完了させずにSYN-ACKを待ちます。高速で、ログに記録される可能性が比較的低く、root権限が必要です。
# SYN scan (requires root)
sudo nmap -sS 192.168.1.0/24
# Results: open / closed / filteredTCPコネクトスキャン
コネクトスキャン(-sT)は、3ウェイハンドシェイクを完全に実行します。root権限は必要ありませんが、通信量が多く、アプリケーションログに記録される可能性が高くなります。
nmap -sT 192.168.1.100
# Useful when you lack raw socket privilegesUDPスキャン
UDPサービス(DNS、SNMP、DHCP)は見落とされがちです。-sUはUDPポートをプローブします。応答の有無によって、open|filteredかclosedかを判断します。低速なため、対象ポートを指定してください。
sudo nmap -sU -p 53,161,67,123 192.168.1.100
# SNMP (161) and DNS (53) are common UDP targetsバージョン検出
-sVは、開いているポートにプローブを送信して、稼働中のサービスとバージョンを特定します。バージョン情報は、CVEデータベースとの照合に不可欠です。
sudo nmap -sV 192.168.1.100
# Output:
# 22/tcp open ssh OpenSSH 8.9p1
# 80/tcp open http Apache httpd 2.4.52タイミングテンプレート
Nmapのタイミング(-T0~-T5)は、速度とステルス性のバランスを制御します。-T3がデフォルト、-T4はより高速、-T1は非常に低速で回避に適しています。
sudo nmap -sS -T4 192.168.1.0/24 # faster
sudo nmap -sS -T1 10.0.0.1 # slow/stealthy
# Aggressive timing increases detection riskポート範囲の指定
デフォルトでは、Nmapは上位1000個のポートをスキャンします。特定の範囲には-p、65535個すべてのポートには-p-、最も一般的なポートをN個指定するには--top-portsを使用します。
nmap -p 22,80,443 192.168.1.100
nmap -p 1-1024 192.168.1.100
nmap -p- 192.168.1.100 # all ports
nmap --top-ports 100 192.168.1.100出力形式
-oN(通常形式)、-oX(ツールへのインポート用XML)、-oG(grep可能形式)、または3つすべてを同時に出力する-oAを使用して結果を保存できます。
sudo nmap -sV -oA scan_results 192.168.1.0/24
# Creates:
# scan_results.nmap
# scan_results.xml
# scan_results.gnmap複数の対象のスキャン
Nmapは、IP範囲、CIDRブロック、ホスト名、入力ファイルを受け付けます。除外リストと組み合わせて、機密性の高いホストをスキップできます。
nmap 192.168.1.1 192.168.1.50
nmap 192.168.1.1-100
nmap -iL targets.txt
nmap 192.168.1.0/24 --exclude 192.168.1.1ファイアウォール回避の基礎
フラグメント化したパケット(-f)、デコイ(-D)、送信元ポートの偽装(--source-port)は、許可されたテストにおいて、基本的なファイアウォールルールの回避に役立つ場合があります。
sudo nmap -f 192.168.1.100 # fragment packets
sudo nmap -D RND:10 192.168.1.100 # decoys
sudo nmap --source-port 53 192.168.1.100Nmapの出力を読む
Nmapは各ポートをopen、closed、またはfilteredとして報告します。openはサービスがプローブを受け付けたこと、filteredはファイアウォールがブロックしていること、closedは待ち受けているサービスがないことを意味します。
クイックチェック
SYN(ステルス)スキャンを実行するNmapのフラグはどれですか。
まとめ:Nmapポートスキャン
Nmapを使いこなすには、許可の範囲と検知されることへの許容度に応じて、適切なスキャン種別を選ぶ必要があります。高速かつステルス性を重視する場合はSYN、root権限がない場合はコネクト、見落とされがちなサービスにはUDP、CVEを調査できる対象リストの作成にはバージョン検出を使用します。必ず出力を保存してください。
よくある質問
「Nmapによるポートスキャン技法」レッスンは無料ですか?
はい。「Nmapによるポートスキャン技法」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「Nmapによるポートスキャン技法」で何を学びますか?
SYN、TCP connect、UDP、バージョンスキャンを実行し、Nmapの出力を読み、タイミングを調整して検知を回避します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Nmapによるポートスキャン技法」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Nmapによるポートスキャン技法
- サービスとOSのフィンガープリンティング
- Netcat:ネットワークの万能ツール
- ネットワーク列挙のスクリプト作成