Table of Contents
TryHackMe Nmap: The Basics
オープンソースのネットワークスキャナー「Nmap」の基本を学びます。「Nmap」でポートスキャンを行ってみましょう。このルームはプレミアムルームです。
Task1 Introduction
ターゲットの偵察を行う際、まず直面する課題は「どのデバイスが稼働しているか(ホスト発見)」、そして「それらでどのようなサービスが動いているか(サービス発見)」を特定することです。
これらをpingやarp-scan、あるいはtelnetといった標準的なツールで手動調査することも可能ですが、たくさんのポート番号を一つずつ確認するのは膨大な時間を要します。また、ファイアウォールによるICMP(ping)の遮断や、同一ネットワーク内(レイヤー2)でしか機能しないツールなど、環境によって正確な調査が困難です。
こうした課題を解決するのが、1997年に公開されたオープンソースのネットワークスキャナー「Nmap」です。Nmapは、柔軟性と強力な機能を兼ね備え、多様なシナリオに適応できる業界標準のツールです。
学習目標
本ルームでは、Nmapを用いた以下の基本操作の習得を目指します。
- 稼働ホストの発見と、動作しているサービスの特定
- 各種ポートスキャンの種類の理解と使い分け
- サービスの詳細なバージョン検出
- スキャン速度(タイミング)の制御と結果の出力管理
なお、本タスクを進めるにあたっては、TCP/IPモデルや主要なプロトコルに関する基礎知識が前提となります。
Question
No answer needed
Task2 Host Discovery: Who Is Online
ターゲットの指定方法
Nmapでは柔軟なターゲット指定が可能です。
- 範囲指定: 192.168.0.1-10(ハイフンで範囲を指定)
- サブネット指定: 192.168.0.0/24(CIDR表記)
- ホスト名: example.thm のようにドメイン名でも指定可能
稼働ホストの調査(pingスキャン)
-snオプションを使用することで、ポートスキャンを行わずにホストの死活確認のみを実行できます。これは「pingスキャン」と呼ばれますが、環境に応じて高度なパケットを使い分けます。なお、特権が必要な高度なスキャンを行うため、通常はsudo(root権限)で実行します。
ローカルとリモートの違い
- ローカルネットワーク: 同一ネットワーク内の場合、NmapはARPリクエストを送信します。応答があればMACアドレスが表示され、ベンダー情報の特定も可能です。
- リモートネットワーク: ルーターを越える場合、ARPは届かないため、ICMPエコー(ping)、TCP SYN/ACKパケットなど、複数の手法を組み合わせて応答を確認します。
その他の便利なオプション
- -sL (List Scan): 実際にパケットを送らず、スキャン対象となるIPアドレスのリストを表示します。事前にターゲットを確認する際に有効です。
-snスキャンは、実行中のサービスまでは調査しないため、「ノイズ(通信ログ)」を抑えてネットワークの全体像を把握するのに適しています。
Question
What is the last IP address that will be scanned when your scan target is 192.168.0.1/27?
スキャン対象が 192.168.0.1/27 の場合、最後にスキャンされる IP アドレスはどれですか?
Kali Linuxで-snオプションでnampコマンドを実行します。
┌──(kali㉿kali)-[~]
└─$ nmap -sn 192.168.0.1/27
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-22 01:27 -0400
Nmap scan report for 192.168.0.0
Host is up (0.00042s latency).
Nmap scan report for 192.168.0.1
Host is up (0.00047s latency).
Nmap scan report for 192.168.0.2
Host is up (0.00046s latency).
Nmap scan report for 192.168.0.3
Host is up (0.00040s latency).
Nmap scan report for 192.168.0.4
Host is up (0.00038s latency).
Nmap scan report for 192.168.0.5
Host is up (0.00037s latency).
Nmap scan report for 192.168.0.6
Host is up (0.00036s latency).
Nmap scan report for 192.168.0.7
Host is up (0.00034s latency).
Nmap scan report for 192.168.0.8
Host is up (0.00033s latency).
Nmap scan report for 192.168.0.9
Host is up (0.00026s latency).
Nmap scan report for 192.168.0.10
Host is up (0.00024s latency).
Nmap scan report for 192.168.0.11
Host is up (0.00024s latency).
Nmap scan report for 192.168.0.12
Host is up (0.00022s latency).
Nmap scan report for 192.168.0.13
Host is up (0.00030s latency).
Nmap scan report for 192.168.0.14
Host is up (0.00018s latency).
Nmap scan report for 192.168.0.15
Host is up (0.00017s latency).
Nmap scan report for 192.168.0.16
Host is up (0.00035s latency).
Nmap scan report for 192.168.0.17
Host is up (0.00033s latency).
Nmap scan report for 192.168.0.18
Host is up (0.00012s latency).
Nmap scan report for 192.168.0.19
Host is up (0.00011s latency).
Nmap scan report for 192.168.0.20
Host is up (0.00040s latency).
Nmap scan report for 192.168.0.21
Host is up (0.00038s latency).
Nmap scan report for 192.168.0.22
Host is up (0.00037s latency).
Nmap scan report for 192.168.0.23
Host is up (0.00026s latency).
Nmap scan report for 192.168.0.24
Host is up (0.00024s latency).
Nmap scan report for 192.168.0.25
Host is up (0.00027s latency).
Nmap scan report for 192.168.0.26
Host is up (0.000053s latency).
Nmap scan report for 192.168.0.27
Host is up (0.00026s latency).
Nmap scan report for 192.168.0.28
Host is up (0.00048s latency).
Nmap scan report for 192.168.0.29
Host is up (0.00047s latency).
Nmap scan report for 192.168.0.30
Host is up (0.00045s latency).
Nmap scan report for 192.168.0.31
Host is up (0.00044s latency).
Nmap done: 32 IP addresses (32 hosts up) scanned in 25.15 seconds
Task3 Port Scanning: Who Is Listening
ホストが稼働していることを確認した次のステップは、TCPやUDPの各ポートでどのようなプロセスが接続を待機しているかを調べることです。
TCPスキャンの2つの主要手法
TCPポートの状態を確認するには、主に以下の2つのフラグが使われます。
- TCPコネクトスキャン (-sT):
- TCPの3ウェイ・ハンドシェイクを最後まで完了させ、接続を確立します。
- 最も基本的で確実な方法ですが、ターゲットのログに残る可能性が非常に高いです。
- SYNスキャン (-sS):
- 「ステルススキャン」とも呼ばれます。ハンドシェイクの最初のステップ(SYNパケット)のみを送り、応答がSYN-ACKであればポートが開いていると判断します。
- 接続を完了させずにRSTパケットで中断するため、コネクトスキャンよりもログに記録されにくい性質があります。
UDPスキャン (-sU)
DNSやDHCPなどのサービスを調査するために使用します。UDPはコネクションレス型であるためTCPのようなハンドシェイクがなく、ポートが閉じている場合に返される「ICMP port unreachable」メッセージなどを手がかりに状態を判定します。
スキャン対象ポートの制御
Nmapはデフォルトで上位1,000個の主要なポートをスキャンしますが、以下のオプションで範囲を調整できます。
- -F (Fast mode): 上位100ポートに絞って高速に実行。
- -p [範囲]: スキャン対象を明示。例:-p22,80や-p1-1023。
- -p-: 全ポート(1〜65535番)をスキャンする最も徹底的な設定。
Question
How many TCP ports are open on the target system at 10.145.168.255?
IPアドレス 10.145.168.255 のターゲットシステムでは、いくつのTCPポートが開いていますか?
-sSフラグを指定してnamapコマンドを実行して、TCP SYNスキャンを行います。ターゲットIPアドレスは攻撃対象マシンのIPアドレスです。
┌──(kali㉿kali)-[~]
└─$ nmap -sS 10.145.168.255
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-22 01:32 -0400
Nmap scan report for 10.145.168.255
Host is up (0.10s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE
7/tcp open echo
9/tcp open discard
13/tcp open daytime
17/tcp open qotd
22/tcp open ssh
8008/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 2.78 seconds
Find the listening web server on 10.145.168.255 and access it with your browser. What is the flag that appears on its main page?
IPアドレス 10.145.168.255 でリスニングしているWebサーバーを探し、ブラウザでアクセスしてください。そのトップページにはどのような旗が表示されていますか?
TCP SYNスキャンから、Webサーバはポート番号8008で起動しています。Kali LinuxのWebブラウザでhttp://10.145.168.255:8008にアクセスします。

Task4 Version Detection: Extract More Information
ポートの開閉を確認した後は、攻撃対象の特定や脆弱性診断のために、より具体的な情報を収集する必要があります。
OS検出 (-O)
ターゲットのOS(Windows、Linuxなど)を推定します。Nmapはネットワークパケットの応答パターンの微細な違いを分析し、OSの種類やカーネルのバージョンを推測します。完璧な精度ではありませんが、非常に近い推測結果を得ることが可能です。
サービスとバージョンの検出 (-sV)
開いているポートで稼働しているサービスの名称だけでなく、その詳細なバージョン(例:OpenSSH 8.9p1)を特定します。これにより、特定のバージョンに存在する既知の脆弱性を探す際の手がかりが得られます。
アグレッシブスキャン (-A)
-O(OS検出)、-sV(サービスバージョン検出)、traceroute(経路探索)、およびデフォルトスクリプトのスキャンを一括で実行する強力なオプションです。一度に多くの情報を取得できますが、通信量が増え「ノイズ」が大きくなる点に注意が必要です。
ホスト発見のスキップ (-Pn)
ターゲットがping(ICMP)に応答しない設定の場合、Nmapは通常「稼働していない」と判断してスキャンを中止します。-Pnを使用すると、ホストの応答の有無にかかわらずすべてのホストが稼働していると仮定してポートスキャンを強制実行します。
| オプション | 説明 |
| -O | OSの種類やバージョンを推定する |
| -sV | サービスの正確なバージョンを検出する |
| -A | OS・サービス検出、経路探索などを統合して実行する |
| -Pn | pingに応答しないホストも強制的にスキャンする |
これで基本的なスキャンオプションは網羅されました。これらを組み合わせることで、より効率的な調査が可能になります。
Question
What is the name and detected version of the web server running on 10.145.168.255?
10.145.168.255 で動作しているウェブサーバーの名称と、検出されたバージョンは何ですか?
-sVオプションを指定して、nmapコマンドを実行します。ターゲットIPアドレスは攻撃対象マシンのIPアドレスです。
┌──(kali㉿kali)-[~]
└─$ nmap -sV 10.145.168.255
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-22 01:40 -0400
Nmap scan report for 10.145.168.255
Host is up (0.11s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE VERSION
7/tcp open echo
9/tcp open tcpwrapped
13/tcp open daytime?
17/tcp open qotd?
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
8008/tcp open http lighttpd 1.4.74
2 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at https://nmap.org/cgi-bin/submit.cgi?new-service :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
-- omitted --
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 17.29 seconds
–
Task5 Timing: How Fast is Fast
Nmapのスキャン速度が速すぎると、ネットワークの負荷が高まったり、IDS(侵入検知システム)に攻撃として検知されたりするリスクがあります。
タイミングテンプレート (-T<0-5>)
Nmapには、あらかじめ設定された6段階のタイミングテンプレートが用意されています。
| テンプレート | 名称 | 特徴 |
| -T0 | Paranoid | 非常に低速。ポート間に5分の間隔を置き、検知回避を最優先する。 |
| -T1 | Sneaky | 低速。IDS回避のためにパケット間隔を約15秒にする。 |
| -T2 | Polite | 帯域消費を抑えるため、通常より少し遅く実行する。 |
| -T3 | Normal | デフォルト設定。ネットワークの安定性に合わせて最適化される。 |
| -T4 | Aggressive | 高速。信頼性の高い高速なネットワークでの使用を想定。 |
| -T5 | Insane | 非常に高速。正確さよりも速度を優先し、パケットを大量に送る。 |
詳細な制御オプション
テンプレート以外にも、特定の数値を指定して細かくカスタマイズが可能です。
- 並列処理の制限: –min-parallelism / –max-parallelism を使い、同時に実行するプローブ(調査パケット)の数を指定します。
- パケットレートの固定: –min-rate / –max-rate で、1秒間に送信するパケット数を指定します。
- タイムアウト設定: –host-timeout を指定すると、応答の遅い特定のホストに対して、指定時間経過後にスキャンを打ち切ることができます。
効率的な調査には、ターゲットの環境に合わせてこれらを使い分ける必要があります。例えば、ステルス性が求められるペネトレーションテストでは低い数値を、迅速な資産調査では高い数値を選択します。
Question
What is the non-numeric equivalent of -T4?
-T4に相当する非数値の表記は何ですか?
Task6 Output: Controlling What You See
効率的なペネトレーションテストやトラブルシューティングには、スキャンプロセスの可視化と結果の記録が欠かせません。
出力の詳細化(VerbosityとDebugging)
スキャンが長時間に及ぶ場合や、内部で何が起きているかを確認したい場合に以下のオプションを使用します。
- 詳細表示 (-v): 実行中の進捗(ARPスキャン中、DNS解決中など)をリアルタイムで表示します。-vv と重ねることで、より詳細な情報を得られます。スキャン開始後にキーボードの v を押してレベルを上げることも可能です。
- デバッグ表示 (-d): 開発者向けのさらに深い情報(パケットの送受信詳細など)を表示します。最大レベルは -d9 ですが、膨大な出力になるため注意が必要です。
スキャンレポートの保存
Nmapの結果を後で分析したり、他のツールと連携させたりするために、用途に合わせた形式で保存できます。
- -oN <ファイル名> (Normal): ターミナルに表示されるものと同じ、人間が読みやすい形式。
- -oX <ファイル名> (XML): プログラムでの処理に適した形式。報告書作成ツールなどへのインポートに利用されます。
- -oG <ファイル名> (Grepable): grep や awk といったコマンドで特定の情報を抽出するのに便利な、1行に情報をまとめた形式。
- -oA <ベース名> (All): 上記の主要3形式(.nmap, .xml, .gnmap)をまとめて一度に出力します。
| オプション | 用途 |
| -v / -vv | スキャンの進捗をリアルタイムで詳しく表示する |
| -oN | 標準的なテキスト形式で保存する |
| -oX | XML形式で保存する(自動化・解析用) |
| -oG | grep可能な形式で保存する(コマンド操作用) |
| -oA | 全ての主要形式で一括保存する |
Question
What option must you add to your nmap command to enable debugging?
デバッグ機能を有効にするには、nmap コマンドにどのようなオプションを追加する必要がありますか?
Task7 Conclusion and Summary
このルームでは、ネットワーク上のホスト発見から、サービスやOSの特定、スキャン速度の制御、そして結果の保存まで、Nmapの必須機能を網羅しました。
特権(sudo)実行の重要性
Nmapの能力を最大限に引き出すには、sudo(root権限)での実行が強く推奨されます。一般ユーザー権限では、生のネットワークパケットを作成できないため、多くの機能が制限されます。
- 特権あり: デフォルトで「SYNスキャン(-sS)」を使用します。
- 特権なし: 3ウェイ・ハンドシェイクを完了させる「コネクトスキャン(-sT)」に強制的にフォールバックされます。
主要オプションのクイックリファレンス
これまでに学んだ主要なオプションは以下の通りです。
| カテゴリ | オプション | 概要 |
| ホスト発見 | -sn | pingスキャン(ホスト発見のみ) |
| ポートスキャン | -sS, -sT, -sU | SYN, コネクト, UDPスキャン |
| 詳細検出 | -sV, -O, -A | サービス、OS検出、アグレッシブスキャン |
| タイミング | -T<0-5> | スキャン速度のテンプレート |
| 出力制御 | -v, -oA | 詳細表示、全形式での保存 |
Question
What kind of scan will Nmap use if you run nmap 10.145.168.255 with local user privileges?
ローカルユーザーの権限で「nmap 10.145.168.255」を実行した場合、Nmapはどのようなスキャンを使用しますか?

