はじめに
先に結論:
アクティブ・リコネは “触って確かめる” 情報収集。 ブラウザ/DevTools、ping、traceroute、telnet、nc を使って、合法な許可の範囲でターゲットに直接アクセスし、ネットワーク経路・到達性・公開サービスの手がかりを得ます。
(法務のOKが出ていないなら、やらない勇気が最大の防御。これは鉄則!)
なにが「アクティブ」なの?
- パッシブ:公開情報の観察(WHOIS、DNS、サブドメイン、Shodan、求人、広報…)。
- アクティブ:ターゲットに接続する(Webアクセス、ping 送信、ポート接続、電話や物理訪問のソーシャルエンジニアリング等)。
判断に迷ったら「パケットを相手に送ったか?」で決めよう。送ったら A(アクティブ)。
ブラウザ × DevTools:最強の“偽装一般ユーザ”ツール
狙い:普通のユーザ行動に見える形で、サイト構造・静的資産・Cookie・ストレージ・HTTPヘッダ・JSの挙動を観察し、技術スタックや潜在的エンドポイントを把握。
- 既定ポート
- HTTP:
80/tcp - HTTPS:
443/tcp - カスタム例:
https://127.0.0.1:8834/→ 8834/TLS
- HTTP:
-
DevTools 起動
- Win/Linux:
Ctrl + Shift + I - macOS:
⌥ + ⌘ + I
- Win/Linux:
-
拡張の鉄板三種
- FoxyProxy:Burpなどへのプロキシ切替をワンクリック。
- User-Agent Switcher:UA偽装で挙動差を観察。
- Wappalyzer:CMS/JSフレームワーク/サーバ等の自動検出。
ひとことオピニオン:ブラウザは“最初のスキャナ”。DevToolsのNetworkタブとApplicationタブ(Cookie/LocalStorage/SessionStorage)を舐めるだけで、雑なスキャンより**役立つ「実戦的手がかり」**が拾えること、ガチで多いです。
ping:到達性と“まずは生きてる?”チェック
目的:ICMP Echo(type 8)を投げ、Echo Reply(type 0)が返るか確認。
使い所:オンラインかどうか、ICMPが通るかをざっくり判定して、次の段階(ポート調査など)に進むかを決める。
# Linux/macOS
ping -c 5 x.x.x.x
# Windows
ping -n 5 x.x.x.x
観点
- 成功:ホスト稼働・経路上のICMPブロックなし。RTTの最小/平均/最大も見れる。
-
失敗(100% loss / Destination Host Unreachable 等):
- 電源断・ブート中・OSクラッシュ
- ケーブル/機器不良
- FWによるICMP遮断(Windows標準FWは既定でICMP拒否)
- こちら側のネット未接続
RTT(往復時間)は経路混雑や近接性のヒント。だが測定用に設計されたプロトコルではないので、“傾向”を見るのがコツ。
traceroute / tracert:経路の見取り図
目的:TTL(Time To Live)を段階的に上げ、経路上のルータから ICMP “Time Exceeded” を引き出してホップ列挙。
# Linux/macOS
traceroute tryhackme.com
# Windows
tracert tryhackme.com
読み方・コツ
- 行番号=ホップ順。各行に最大3試行の応答時間。
*は応答なし。 - 経路は変動する:ダイナミックルーティングで時刻や負荷により変わる。
- 公開IPの中間機器は、スコープ内ならOSINTや脆弱性管理の観点でメモ。
実務豆知識:
mtr(My Traceroute)で継続観測すると、不安定なホップが浮かびやすい。SLA議論のタネにも。
telnet:超原始的だが“話が早い”バナーチェック
要点:Telnet(既定23/tcp)は平文ゆえ管理用途はNG。だが「任意TCPへ素手で繋ぐ」簡易クライアントとして優秀。
Webの素振り:
telnet x.x.x.x 80
# 入力(空行で送信)
GET / HTTP/1.1
host: telnet
狙い:Server: nginx/1.6.2 のようなバナーをもぎ取る。
他プロトコル:SMTP/POP3/IMAP などテキスト系なら初手応答でだいたいバージョン露出。
セキュリティ的には “バナー抑制” が望ましい。プロダクションで
Apache/2.4.57 (Debian)とか丸出しは燃料投下。
nc(Netcat):TCP/UDPのスイスアーミーナイフ
できること
-
クライアント:
nc HOST PORT(telnet代替) -
サーバ:
nc -lvnp 1234(エコーテストや簡易受付)
# Webバナーを手掴み
nc x.x.x.x 80
GET / HTTP/1.1
host: netcat
# サーバとしてLISTEN(-l=listen, -v=verbose, -n=数値解決, -p=ポート)
nc -lvnp 1234
# クライアントから接続
nc 10.201.78.152 1234
オプション覚え方
-
-llisten,-pport(直後に番号),-nno-DNS,-vverbose,-kkeep-alive
余談:
ncat(Nmap版)やsocatはTLSやポートフォワード等も柔軟。現代なら ncat/socat 派も多いです。
ミニワークフロー(手製スキャナ感覚)
目的:重スキャナ(nmap)に入る前の“下見”。
- ブラウズ(DevToolsで静的資産・API・Cookie・ヘッダ)
- ping(到達性)
- traceroute(経路と増減)
- telnet / nc(ピンポイントでポート挙動・バナー確認)
- (次回)nmap でホスト検出→基本→高度→ポストスキャン
早すぎる“全ポートnmap”より、ブラウザ→軽量確認→要点深掘りの順でノイズとログを最小化。赤チームの作法としてもスマート。
コマンド早見表
| 目的 | コマンド例 |
|---|---|
| Ping(Linux/macOS) | ping -c 10 MACHINE_IP |
| Ping(Windows) | ping -n 10 MACHINE_IP |
| Traceroute |
traceroute MACHINE_IP(Windowsはtracert) |
| Telnetでポート確認 | telnet MACHINE_IP PORT |
| Netcatクライアント | nc MACHINE_IP PORT |
| Netcatサーバ | nc -lvnp PORT |
ありがちな落とし穴と回避策
- 許可なしの接続:範囲外はアウト。覚書(LoA)とスコープを紙で残す。
- ログに痕跡:User-Agentやリクエストパターンが不自然だと即バレ。人間っぽさを大切に。
- バナー鵜呑み:リバースプロキシで偽装されてることも。複数経路で相互補完。
- ICMP盲信:ping通らなくてもホストは生きていることがある(FWでICMP遮断)。TCP/UDPで補助確認。
-
DevToolsの見落とし:Source/Networkを全部眺める。
/api/、/admin/、/graphql、/static/versioned/は金鉱脈。
ミニチートリスト(現場で即使う)
- Networkタブ:Fetch/XHR を全部開く → 隠れAPI/プリフライト/エラーを観察
- Response/Preview でJSON構造と内部キー名を覚える
-
Headers → Set-Cookie/Security(
HttpOnly,Secure,SameSite) -
dig +traceで権威まで辿る(DNSねじれ検出) -
nc -zv host 80-90(到達性だけ触る“ゼロI/O”スキャン)※ログ方針要確認 -
curl -Iでヘッダだけ(リーンに攻める)
参考フロー図(Mermaid)
まとめ
アクティブ・リコネは “軽やかな下見力”が命。
DevToolsで仮説を立て、ping/tracerouteで道筋を掴み、telnet/ncで点を確かめる。
そのあとにnmapで線を塗る——この順番が、ノイズを抑え、発見の質を上げます。
(そして、法務OKは必ず先に。ここ、テストに出ます)