PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。

【ポートスキャン編】開いてる扉を数える偵察の作法|CTF思考フレームワーク R02

【ポートスキャン編】開いてる扉を数える偵察の作法|CTF思考フレームワーク R02 アイキャッチ画像
安全に生きたい編集部

ポートスキャンって、開いてる扉を数えるだけ?📡

それだけでも『どんなサービスが動いているか』『どのバージョンか』『OSは何か』が分かる、攻撃の最初の偵察。Nmap・Masscan・RustScan ――速度と網羅性のバランスで、現代の偵察ツールは進化しています。

ポートスキャンは、攻撃者の最初の偵察ステップ。Nmap がデファクト標準で、Masscan・RustScan・ZMap など高速ツールも普及。SYN scan、Full Connect scan、UDP scan、サービスバージョン検出、OS 検出――目的別に複数のスキャンを組み合わせ、攻撃面を絞り込みます。

広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

ポート開いてるだけで、いろんな情報が漏れるんだね…

この記事は、CTF思考フレームワーク Recon編 R02。ポートスキャンの基本(Nmap・Masscan・RustScan の使い分け、スキャン種別、検知回避)と、自社のポート公開状況の点検方法を整理します。

ポートスキャンは「サーバが外向きにどんな扉を開けてるか」を数える基礎工程。CTFでも実務でも、Nmapが帰ってくるのを待つ間にコーヒーを淹れる…そんな時間の積み重ねで攻撃面が見えてきます🚪

開いているポート=攻撃者の出発点。閉じている方が圧倒的に多いのに、たまにいる「うっかり開いてる」が致命傷になります。

この記事で出てくる言葉

先に意味を押さえておくと読みやすい用語です。

  • CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
  • ポートスキャン: サーバーで開いている入口を調べる作業です。許可された範囲だけで行います。
  • 認証: 本人かどうかを確認する仕組み。パスワード、SMS、アプリ承認などがあります。
この記事の難易度

難易度:★☆☆(初級) / この枝ルートの記事は、必要な回だけ選んで読めます。

👀 観察フェーズ:まず何を見る?

いきなり全ポート全速力でスキャンするのは下策。「目的=何を知りたいか」を先に決めると効率が桁違いです。

🤔 仮説フェーズ:攻撃者は何を考える?

攻撃者の頭にあるのは「Well-knownポート(22, 80, 443)の裏で、本来は外に出すべきでないサービスが必ず1つは生きている」という経験則です。クラウド移行時の暫定設定で残った 6379(Redis)、9200(Elasticsearch)、5601(Kibana)、8080(Jenkins)あたりは典型例。さらにUDPの 161(SNMP)が public コミュニティで開いていれば、コミュニティ名 public だけで機器の構成情報を吸い出せます。攻撃者はまずTCPトップ100を素早く確認し、次に「サービスとバージョンが分かれば既知CVEに直結する」ポートだけを精密にバージョン検出する、というメリハリのある作戦を立てます。

スキャンは「件数を増やす」より「意味のある情報を素早く取る」のが上手い人の動き方です。

🔬 検証フェーズ:どうやって確かめる?

検証はステージを分けて進めます。第1段は masscan か RustScan で広域に開放ポートを掃き出し、第2段で Nmap の -sV -sC(バージョン検出+NSEデフォルトスクリプト)を対象ポートだけにかけて精密化、第3段は testssl.sh で TLS、nmap –script snmp-* で SNMP、といった具合にサービス別の深掘りに進みます。Shodan や Censys の受動ソースも併用すれば、自分でパケットを撃つ前に「相手が外からどう見えているか」を確認可能。検知回避を意識する場合は -T2 や –max-rate でレートを絞り、IDSのしきい値以下に収める判断もあります(もちろん許可された対象に限ります)。

⚔️ 攻撃フェーズ:実際の手口

実戦シナリオでよくあるのは、ポートスキャン結果から認証なしの Redis 6379 を見つけ、CONFIG SET dir で SSH の authorized_keys を書き込んでサーバに乗り込むパターン。あるいは Jenkins 8080 の /script コンソールが匿名アクセス可能で Groovy 経由のRCEに繋がる、Elasticsearch 9200 が公開されていて全インデックスを吸い出される、というケースも定番です。攻撃者はスキャン結果を Nuclei のテンプレートと照合し、見つけたサービスとバージョンに紐づく既知CVEを一気に検証していく――この「ポート→サービス→CVE」の流れを学習者として理解しておくと、防御側の優先順位付けが見えやすくなります。

CTF{open_ports_are_just_the_appetizer}

ポートスキャンはあくまで入り口探し。本番は「見つけたサービスをどう深掘りするか」です。

🛡️ 防御フェーズ:どう守る?

守る側のスタートラインは「外に出ているポートを正確に把握する」ことです。クラウドであればセキュリティグループ・NetworkACL を IaC で管理し、PRレビューで 0.0.0.0/0 への開放を機械的に検知する仕組みを入れます。Prometheus・Grafana・Jenkins といった運用ツールは VPN や IP allowlist の裏に置き、必要ならクラウドネイティブの Identity-Aware Proxy で認証を強制。Shodan・Censys で自社IPレンジを定期検索する「外から見た自分」ビューも、四半期に一度は回したい習慣です。バナー隠しは応急処置に過ぎないので、根本は古いプロトコル無効化と最新パッチの徹底に置きます。

🧪 自分で検証ラボを作る

Reconコマンドを安全に試すには、自分専用の検証ラボが一番。🏗️ ConoHa VPSなら月額数百円からLinux環境を立てられ、nmapやgobusterなどのツールを「自分のサーバ」に打ち込んで安全に試せます。

PR / 広告

ConoHa VPS

※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。

⚠️ よくある落とし穴

よくあるミス。

  1. 「IDSで弾けるから安心」と思って外部からのポート可視性を放置。
  2. クラウド移行時、オンプレ時代のFWルールをコピペで「とりあえず開放」に。
  3. UDPポートを「ほとんど使わないから」と監査対象から外す。
  4. バナー隠しを「Server: nginx」だけ消して、エラーページや404で素のバージョン情報を出す。
  5. 社内監視ツール(Prometheus、Jenkins、Grafana等)を本番ネットワークに公開のまま放置。
  6. TLS設定で古いプロトコル・cipherを残し、組織の「セキュリティ姿勢の悪さ」を晒す。

🧰 ツール早見表

使う道具。

ツール用途ひと言
Nmap総合スキャナ何はなくともコレ、NSEも強力
masscan高速広域スキャンインターネット規模に対応
Shodan / Censys受動的IP検索スキャンせず情報取得
testssl.sh / sslyzeTLS診断HTTPS品質を一発診断
Naabu高速ポート列挙ProjectDiscovery製、CI向き

🎓 本気で学びたい人へ

Recon・OSINTを絵空事だけで終わらせず、セキュリティエンジニアをキャリアとして目指したい方に。🎓 ササエルは現場で使えるスキルを体系的に学べるスクールです。

PR / 広告

ササエル

📚 もっと深く学びたい人へ

体系的に攻撃と防御の両面を学びたいなら『ホワイトハッカー入門 第2版』が分かりやすい入口です📚

📚 次に読みたい

✍️ 学んだことを発信する

セキュリティブログを自分で始めたい方へ。🌐 ConoHa WINGなら初期費用無料でWordPressを起こせ、学んだことをアウトプットしていけます。

PR / 広告

ConoHa WING

⚖️ 大事なお約束

記事URLをコピーしました