Table of Contents
TryHackMe Active Reconnaissance
TryHackMeのアクティブ偵察についてのルームです。ターゲットに直接接触して、より詳しく情報収集します。
Task1 Introduction
このルームは、ターゲットと直接接触して情報を収集する「アクティブ偵察」の導入編です。前ルームで扱ったパッシブ偵察(遠隔からの情報収集)とは異なり、システムへの直接的な接続を伴うのが最大の特徴です。
1. アクティブ偵察の定義とリスク
アクティブ偵察は、物理的な訪問や電話といった社会工学的アプローチから、Webサイトへのアクセス、ファイアウォールのポート確認といった技術的アプローチまで多岐にわたります。ターゲットに「直接触れる」行為であるため、ログにIPアドレスや接続時間が記録されるリスクがあります。そのため、実施前には必ずクライアントからの法的な許可(合意書)を得ることが不可欠です。
2. 隠密性とツールの活用
レッドチーム(攻撃側)の活動では、通常の通信(Webブラウジングなど)に紛れ込ませることで、ブルーチーム(防御側)の検知を回避する技術が重要となります。本ルームでは、OSに標準搭載されている、あるいは入手が容易な以下のツールに焦点を当てます。
Webブラウザ:開発者ツールを活用し、偵察フレームワークとして「武装」させる方法。
ネットワークツール:ping、traceroute、telnet、nc(netcat)を用いたサービスやネットワーク構造の調査。
これらのツールはコマンドライン操作が中心となりますが、基本をマスターすることで、ターゲットのネットワークや稼働サービスに関する重要な情報を効率的に収集できるようになります。
Question
No answer needed
Task2 Web Browser
本タスクでは、日常的に使用するWebブラウザを、強力な偵察ツールとして活用する方法を学びます。特別なソフトウェアを介さず、通常のユーザー活動に紛れて情報を収集できる点が大きなメリットです。
1. 通信プロトコルとポートの基本
ブラウザはデフォルトで以下のポートを使用します。
- HTTP: TCP 80番ポート
- HTTPS: TCP 443番ポート これらはアドレスバーでは省略されますが、https://127.0.0.1:8834/ のように記述することで、カスタムポートで動作するサービスへの接続・確認も可能です。
2. 開発者ツール(Developer Tools)の活用
Ctrl+Shift+I などのショートカットで起動する開発者ツールは、サーバーとのやり取りを詳細に分析できます。
- JavaScriptの閲覧・修正: クライアント側で動作するスクリプトの解析。
- クッキー(Cookies)の調査: セッション管理や追跡情報の確認。
- ディレクトリ構造の把握: サイトのフォルダ構成やリソース配置の推測。
3. ブラウザを強化する拡張機能(Add-ons)
ペネトレーションテストを効率化する以下のツールが紹介されています。
- FoxyProxy: Burp Suiteなどのプロキシツールへの切り替えを容易にします。
- User-Agent Switcher: OSやブラウザの種類を偽装し、特定のデバイス向けコンテンツを調査できます。
- Wappalyzer: サイトで使用されているCMS、フレームワーク、ライブラリなどの技術スタックを瞬時に可視化します。
これらを組み合わせることで、ブラウザを単なる閲覧ソフトから、効率的な偵察フレームワークへと進化させることができます。
Question
Browse to the following website (opens in new tab) and ensure that you have opened your Developer Tools on AttackBox Firefox, or the browser on your computer. Using the Developer Tools, figure out the total number of questions.
以下のウェブサイトにアクセスし(新しいタブで開きます)、AttackBoxのFirefox、またはお使いのコンピューターのブラウザで開発者ツールが開いていることを確認してください。開発者ツールを使用して、問題の総数を調べてください。
Webサイトにアクセスして、開発者ツールを起動して「script.js」の内容を確認してください。

Task3 Ping
本タスクでは、最も基本的かつ不可欠なネットワークツールである ping について学習します。pingは、より詳細なスキャンを行う前に「ターゲットがオンラインかどうか」を確認するために使用されます。
1. 仕組みとプロトコル
pingは、ICMP(Internet Control Message Protocol)を利用しています。
ICMP Echo Request (Type 8):送信側がターゲットに送るパケット。
ICMP Echo Reply (Type 0):ターゲットがオンラインであれば返信されるパケット。
このやり取りが成立すれば、ターゲットが稼働しており、かつ経路上のルーターやファイアウォールで通信が遮断されていないことが証明されます。
2. 基本的な操作方法
Linux環境(AttackBox)では、回数を指定しないと永続的に実行されるため、-c オプションで送信数を指定するのが一般的です。
実行例: ping -c 5 [ターゲットIP]
Windowsの場合: 回数指定は -n オプション(例: ping -n 5 [IP])を使用します。
3. 結果の解釈と「応答がない」理由
送信したパケットに対して返信(Reply)があれば生存とみなします。しかし、応答がない(100% packet loss)からといって必ずしもダウンしているとは限りません。以下の可能性を考慮する必要があります。
マシンの状態: 電源オフ、起動中、またはOSのクラッシュ。
ネットワークの問題: ケーブルの断線やネットワーク機器の故障。
セキュリティ設定: ファイアウォールによるブロック。特にWindowsの標準ファイアウォールは、デフォルトでpingをブロックする設定になっていることが多い点に注意が必要です。
偵察の第一歩として、pingでターゲットの反応を確認することは、その後の攻撃戦略を立てる上で非常に重要なステップとなります。
Question
Which option would you use to set the size of the data carried by the ICMP echo request?
ICMPエコーリクエストが送信するデータのサイズを設定するには、どのオプションを使用しますか?
What is the size of the ICMP header in bytes?
ICMPヘッダーのサイズはバイト単位でどれくらいですか?
Does MS Windows Firewall block ping by default? (Y/N)
Microsoft Windowsのファイアウォールは、デフォルトでpingをブロックしますか?(はい/いいえ)
Deploy the VM for this task and using the AttackBox terminal, issue the command ping -c 10 MACHINE_IP. How many ping replies did you get back?
このタスクのためにVMをデプロイし、AttackBoxのターミナルで「ping -c 10 MACHINE_IP」というコマンドを実行してください。何件のping応答が返ってきましたか?
Task4 Traceroute
本タスクでは、自身の端末からターゲットホストまでの通信経路(ネットワークホップ)を調査する traceroute コマンドについて学習します。
1. 仕組み:TTLを利用
直接的に通信経路を知る手段はないため、tracerouteはIPヘッダ内の TTL(Time To Live) フィールドを意図的に操作してルーターの情報を引き出します。
TTLの動作: 本来はパケットの生存期間を示す値ですが、実際には「経由可能な最大ルーター数」を意味します。各ルーターを通過するたびに値が1減算されます。
期限切れ通知: TTLが0になると、ルーターはパケットを破棄し、送信元へ ICMP Time-to-Live exceeded(時間切れ)メッセージを返します。
探索プロセス: まずTTL=1でパケットを送り、最初のルーターから返信を得ます。次にTTL=2、TTL=3と順次増やしていくことで、経路上にある全ルーターのIPアドレスを1つずつ特定していきます。
2. コマンドの実行
Linux/macOS: traceroute [ターゲットIP](デフォルトではUDPパケットを使用)
Windows: tracert [ターゲットIP](デフォルトではICMPを使用)
3. 結果の解釈と注意点
出力結果の各行は「ホップ(通過したルーター)」を表し、応答時間(ミリ秒)が表示されます。
経路の変動: インターネット上の動的ルーティングにより、同じターゲットでも実行タイミングによって経路やホップ数が変わることがあります。
応答なし(*): セキュリティ設定により、ICMPメッセージを返さないよう設定されているルーターがある場合、そのホップはアスタリスク(*)で表示されます。
tracerouteを活用することで、ターゲットに至るまでのネットワーク構成や、経由しているISPの情報など、攻撃対象の周辺環境を可視化することが可能になります。
Question
In Traceroute A, what is the IP address of the last router/hop before reaching tryhackme.com?
トレースルートAにおいて、tryhackme.comに到達する直前の最後のルーター/ホップのIPアドレスは何ですか?
In Traceroute B, what is the IP address of the last router/hop before reaching tryhackme.com?
トレースルートBにおいて、tryhackme.comに到達する直前の最後のルーター/ホップのIPアドレスは何ですか?
In Traceroute B, how many routers are between the two systems?
トレースルートBでは、2つのシステムの間にはいくつのルーターがありますか?
Start the attached VM from Task 3 if it is not already started. On the AttackBox, run traceroute MACHINE_IP. Check how many routers/hops are there between the AttackBox and the target VM.
タスク3で添付されたVMがまだ起動していない場合は、起動してください。AttackBox上で「traceroute MACHINE_IP」を実行し、AttackBoxとターゲットVMの間にいくつのルーター/ホップがあるかを確認してください。
No answer needed
Task5 Telnet
本タスクでは、本来はリモート管理用である telnet を、ターゲット上で動作するサービスの詳細情報を引き出す「偵察ツール」として活用する方法を学びます。
1. telnet の基本とセキュリティ
telnet(デフォルトポート:23)は、CLIを通じてリモートシステムと通信するための古いプロトコルです。
脆弱性: 通信が暗号化されず、ユーザー名やパスワードを含むすべてのデータがクリアテキスト(平文)で送信されるため、現在は安全な SSH に取って代わられています。
偵察への応用: TCPプロトコルをベースにしているため、特定のポートに接続し、サーバーが返す応答(バナー)を直接確認するのに適しています。
2. バナーグラビング(Banner Grabbing)の実施
暗号化されていないTCPサービスであれば、ポート番号を指定して接続し、そのプロトコルに応じたコマンドを送ることで情報を取得できます。
Webサーバー(ポート80)への接続例:
telnet [ターゲットIP] 80 を実行。GET / HTTP/1.1 および host: [任意の名前] と入力し、エンターを2回押す。サーバーから返ってくるHTTPレスポンスヘッダを確認。
3. 偵察における重要性
この手法の最大の目的は、サーバーの種類やバージョンを特定することです。
例えば、レスポンス内の Server: nginx/1.6.2 という記述から、特定の脆弱性が存在するバージョンかどうかを判断できます。
Webサーバー以外でも、SMTP(メール)やPOP3など、通信プロトコルに合わせたコマンドを用いることで、稼働しているサービスの素性を明らかにできます。シンプルながら、ペネトレーションテストの初期段階で非常に役立つ手法です。
Question
Start the attached VM from Task 3 if it is not already started. On the AttackBox, open the terminal and use the telnet client to connect to the VM on port 80. What is the name of the running server?
タスク3で添付されたVMがまだ起動していない場合は、起動してください。AttackBoxでターミナルを開き、telnetクライアントを使用してポート80でVMに接続してください。実行中のサーバーの名前は何ですか?
What is the version of the running server (on port 80 of the VM)?
(VMのポート80で)稼働中のサーバーのバージョンは何ですか?
TelnetでターゲットマシンのTCPポート80に接続して、GETメソッドを送信してください。
┌──(kali㉿kali)-[~]
└─$ telnet 10.48.171.175 80
Trying 10.48.171.175...
Connected to 10.48.171.175.
Escape character is '^]'.
GET / HTTP/1.1
host: telnet
HTTP/1.1 200 OK
Date: Mon, 13 Apr 2026 01:41:40 GMT
Server: Apache/2.4.61 (Debian)
Last-Modified: Mon, 30 Aug 2021 12:09:24 GMT
ETag: "15-5cac5b436ddfa"
Accept-Ranges: bytes
Content-Length: 21
Content-Type: text/html
Telnet to port 80...
Connection closed by foreign host.
Task6 Netcat
本タスクでは、ネットワーク界の「スイスアーミーナイフ」と称される多機能ツール Netcat(nc) について学習します。TCPおよびUDPの両プロトコルをサポートし、クライアントとしてもサーバとしても動作する汎用性が最大の特徴です。
1. クライアントとしての利用:バナーグラビング
telnetと同様に、特定のポートに接続してサービスの情報を取得(バナーグラビング)できます。
実行例: nc [ターゲットIP] 80
動作: 接続後、HTTPコマンド(GET / HTTP/1.1など)を手動で入力することで、Webサーバの種類やバージョン(例:Server: nginx/1.6.2)を確認できます。
2. サーバとしての利用:リスニングモード
Netcatは、特定のポートを開放して接続を待ち受ける「リスナー」として動作させることができます。
基本コマンド: nc -vnlp [ポート番号]
-v: 詳細情報を出力(Verbose)
-n: DNS解決を行わず数値IPのみを使用
-l: リスニングモード(サーバとして動作)
-p: ポート番号を指定
注意: 1024番未満の特権ポートで待ち受けるには、root権限(sudo)が必要です。
3. TCPトンネルによるデータ転送
一方がサーバとして待ち受け(nc -vnlp 1234)、もう一方がクライアントとして接続(nc [サーバIP] 1234)することで、双方向の通信チャネルが確立されます。この状態で一方のターミナルに入力した文字は、もう一方のターミナルにそのまま表示(エコー)されます。この仕組みは、ペネトレーションテストにおけるリバースシェルの構築や、単純なファイル転送の基礎となります。
Netcatを使いこなすことは、アクティブ偵察のみならず、その後のポストエクスプロイト(侵害後活動)においても極めて重要です。
Question
Start the VM and open the AttackBox. Once the AttackBox loads, use Netcat to connect to the VM port 21. What is the version of the running server?
VMを起動し、AttackBoxを開いてください。AttackBoxが読み込まれたら、Netcatを使用してVMのポート21に接続してください。実行中のサーバーのバージョンは何ですか?
Task3で起動したターゲットマシンを停止して、このタスク用のターゲットマシンを起動してください。Kali Linuxからncコマンドを実行します。
┌──(kali㉿kali)-[~]
└─$ nc 10.48.139.216 21
220 ip-10-48-139-216.ap-south-1.compute.internal FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
Task7 Putting It All Together
本タスクでは、これまで個別に学習してきた基本的なツールを組み合わせ、実際の偵察活動にどう統合するかを総括します。
1. ツールを組み合わせたスキャナーの構築
紹介されたツール(ping、traceroute、telnet、nc)は、それぞれ単独でも有用ですが、シェルスクリプトなどで組み合わせることで、原始的なネットワークスキャナーとして機能させることが可能です。
- traceroute でターゲットまでの経路をマッピングする。
- ping でターゲットの生存(ICMPへの応答)を確認する。
- telnet や nc で特定のポートへの接続を試み、開放状況を確認する。
これらは非常に基礎的な手法ですが、次章以降で学ぶ Nmap のような高度なスキャナーも、本質的にはこれらと同じ原理をより洗練されたレベルで実行しています。
2. 汎用ツールの重要性
特筆すべきは、これらのツールがほとんどのOSに標準搭載、あるいは容易に入手可能である点です。特にWebブラウザは、ほぼすべての端末にインストールされており、防御側に過度な警戒を抱かせることなく偵察を行える「最強の武器」の一つとなります。
3. コマンド・ショートカットのリファレンス
タスクの最後には、学習したツールの主要なコマンドと、ブラウザ開発者ツールのショートカットがまとめられています。
| 機能 | Linux / macOS | Windows |
| 生存確認 | ping -c 10 [IP] | ping -n 10 [IP] |
| 経路探索 | traceroute [IP] | tracert [IP] |
| バナー取得 | telnet [IP] [Port] | telnet [IP] [Port] |
| 接続/待機 | nc [IP] [Port] / nc -lvnp [Port] | – |
ブラウザ開発ツールショートカット
Linux/Windows
Ctrl+Shift+I
macOS
Option+Command+I
このルームで学んだ「直接接続による情報収集」の基礎は、より高度なペネトレーションテストのテクニックを習得するための重要な土台となります。
Question
No answer needed
TryHackMeでサイバーセキュリティ体験!
- Phishing Analysis Fundamentalsウォークスルー
- TryHackMe Blueウォークスルー
- TryHackMe C2 Detection – Command & Carol ウォークスルー
- TryHackMe Conti ウォークスルー
- TryHackMe Empire ウォークスルー
- TryHackMe Hydraウォークスルー
- TryHackMe Introduction to EDRウォークスルー
- TryHackMe Linux Backdoorsウォークスルー
- TryHackMe Metasploit: Introduction ウォークスルー
- TryHackMe Metasploit: The Basics ウォークスルー
- TryHackMe Phishing Basicsウォークスルー
- TryHackMe Registry Persistence Detectionウォークスルー
- TryHackMe Threat Hunting: Endgame
- TryHackMe Vulnerabilities 101 ウォークスルー
- TryHackMeとは
- TryHackMeを始めよう
- TryHackMe ローカル攻撃環境構築 ~Kali Linux VMのインストール~
- TryHackMe Passive Reconnaissance ウォークスルー
- TryHackMe Active Reconnaissance ウォークスルー
- TryHackMe NMAP the Baics ウォークスルー

