ペネトレーションテストの段階:偵察から報告まで
偵察、スキャン、エクスプロイト、侵入後活動、そして是正措置を導く最終報告というペネトレーションテストのライフサイクルを学びます。
「ペネトレーションテストの段階:偵察から報告まで」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
ペネトレーションテストのライフサイクル
体系化されたペネトレーションテストでは、網羅性を確保し、本番システムへのリスクを最小限に抑え、実行可能な結果を生み出すために、定められたライフサイクルに従います。最も広く採用されているフレームワークはPTES(Penetration Testing Execution Standard)に基づくもので、NISTのアプローチにも沿っています。フェーズは、計画/スコープ定義、偵察、スキャン、エクスプロイト、侵害後、報告です。各フェーズは前のフェーズを基盤とします。発見していないものを悪用することはできず、記録していないことを報告することもできません。フェーズを省略したり急いだりすると、評価が不完全になり、調査結果の信頼性も低下します。
# Penetration testing phases:
# 1. Planning & Scoping (Rules of Engagement)
# 2. Reconnaissance (OSINT + passive recon)
# 3. Scanning/Enumeration (active discovery)
# 4. Exploitation (attacking vulnerabilities)
# 5. Post-Exploitation (lateral movement, persistence)
# 6. Reporting (findings + recommendations)フェーズ1:計画とスコープ定義
計画フェーズでは、業務の法的および運用上の基盤を確立します。主な成果物には、目的と料金を定めた署名済みのStatement of Work(SOW)、許可された対象、実施時間帯、禁止された手法、緊急連絡先、データ取り扱い要件を明記したRules of Engagement(RoE)文書、そして成功基準(目的を達成したとみなす条件)の明確な定義が含まれます。スコープは、スコープクリープ(誤って許可されていないシステムまでテストしてしまうこと)を防ぎ、最も重要な資産を確実に評価対象に含めるため、正確に定義する必要があります。技術的な作業を開始する前に、すべての通信チャネルとエスカレーション手順を確立します。
# Scoping questions to answer:
# - Which IP ranges/domains are in scope?
# - Are cloud environments (AWS/Azure/GCP) in scope?
# - Are physical attacks in scope?
# - Are employees fair game for phishing?
# - Are denial-of-service techniques permitted?
# - What notification procedures exist?
# - Who is the authorized point of contact?
# - What is the test window (dates/times)?
# - How will data be protected and destroyed after?フェーズ2:パッシブ偵察(OSINT)
パッシブ偵察では、対象のシステムと直接やり取りせず、対象側にログを生成しない公開情報源を利用して対象に関する情報を収集します。情報源には、WHOISレコード(ドメイン登録情報、登録者の連絡先)、DNSレコード、Certificate Transparencyログ(サブドメインの把握に利用)、LinkedIn(従業員名、役職、使用技術)、求人情報(技術スタックやツールの把握に利用)、Shodan/Censys(インターネットに公開されたサービスやオープンポート)、GitHubリポジトリ(ソースコード、誤ってコミットされた認証情報)、Google dorking(機密ファイルや公開インターフェースを対象にしたサイト固有の検索)などがあります。
# OSINT techniques (no target contact):
# WHOIS:
whois targetcompany.com
# DNS enumeration via public resolvers:
dig @8.8.8.8 targetcompany.com ANY
dnsx -d targetcompany.com -a -aaaa -cname -mx -ns
# Certificate transparency (subdomains):
curl 'https://crt.sh/?q=%.targetcompany.com&output=json'
# Google dorks:
# site:targetcompany.com filetype:pdf confidential
# site:targetcompany.com inurl:admin
# site:github.com targetcompany password OR apikeyフェーズ2:アクティブ偵察
アクティブ偵察では、情報を収集するために対象システムと直接やり取りします。そのため対象側にログが生成され、パッシブ偵察よりも本質的にノイズが大きくなります。手法には、ポートスキャン(Nmap)、サービス列挙、DNSゾーン転送の試行、バナーグラビングなどがあります。偵察とスキャンの境界は曖昧です。偵察の目的は情報収集であるのに対し、スキャンは通常、脆弱性の特定を意味します。ただし、アクティブ偵察はIDS/IPSのアラートを発生させる可能性があり、セキュリティを意識している対象に検知されることもあります。そのためテスターは、業務の目的(検知のテストか、ステルスな侵害か)に応じて、網羅性と隠密性のバランスを取ります。
# Active reconnaissance techniques:
# Host discovery:
nmap -sn 192.168.1.0/24 -oG alive_hosts.txt
# DNS zone transfer (if misconfigured):
dig axfr @ns1.targetcompany.com targetcompany.com
# Banner grabbing:
nc -v 192.168.1.10 22 # SSH version
curl -I https://targetcompany.com # web server header
# SMTP enumeration:
nmap --script smtp-enum-users 192.168.1.25
# Web crawler:
whatweb targetcompany.comフェーズ3:スキャンと脆弱性分析
スキャンフェーズでは、スコープ内の対象について、開いているポート、サービス、ソフトウェアのバージョン、既知の脆弱性を体系的に発見します。このフェーズでは、サービス列挙にNmap、脆弱性スキャンにNessus/OpenVASなどのツールを使用します。ペネトレーションテスターはスキャナーの出力を手作業で確認し、調査結果を関連付けます。たとえば、Nmapで特定されたApacheのバージョンが、CVEデータベースにある既知のエクスプロイトと一致する場合があります。このフェーズには、Webアプリケーションへの手動プロービング(Burp Suiteを使用)や、認証メカニズムのテストも含まれます。出力は、エクスプロイトフェーズで追究する潜在的な攻撃経路を優先順位付けしたリストです。
# Scanning phase workflow:
# 1. Port and service scan:
nmap -sV -sC -O 192.168.1.0/24 -oX services.xml
# 2. Vulnerability scan (Nessus/OpenVAS):
# Import Nmap results -> credentialed scan -> export report
# 3. Web application scanning:
burpsuite # manual + scanner
niklto -h https://192.168.1.10
wpscan --url https://targetsite.com # WordPress-specific
# 4. Correlate version with CVEs:
# searchsploit apache 2.4.41
# Check NVD: https://nvd.nist.gov/vuln/searchフェーズ4:エクスプロイト
エクスプロイトフェーズでは、特定された脆弱性を悪用して、不正アクセス、権限昇格、その他の定義済みの目的の達成を試みます。エクスプロイトは、スコープとRules of Engagementの範囲内で厳格に実施しなければなりません。手法には、未適用の脆弱性の悪用(Metasploitまたは手動のエクスプロイトを使用)、認証情報への攻撃(パスワードスプレー、デフォルト認証情報、ブルートフォース)、Webアプリケーションへの攻撃(SQLインジェクション、XSSの悪用)、許可を得た場合のソーシャルエンジニアリングなどがあります。すべての行動はタイムスタンプ付きで記録しなければなりません。何を、いつ、どのように実施し、どのような結果になったか、またどのツールを使用したかを記録します。この記録が最終報告書の証拠基盤になります。
# Documentation during exploitation:
# Use a testing journal (OneNote, CherryTree, Obsidian)
# For each finding, record:
# - Date/time: 2026-06-15 14:32 UTC
# - Target: 192.168.1.25 (web-prod-01)
# - Finding: SQL injection in /login.php username parameter
# - Command: sqlmap -u 'http://target/login.php' --data 'user=*&pass=x'
# - Screenshot: login_sqli_01.png
# - Impact: retrieved admin credentials from users table
# - CVSS: 9.8 (Critical)フェーズ5:侵害後
侵害後は、初期アクセスの確立後に始まり、攻撃者がどこまで影響範囲を広げられるかを調査します。活動には、権限昇格(制限されたユーザーのアクセス権から管理者/root権限を取得すること)、認証情報の収集(ハッシュ、チケット、平文パスワードの抽出)、ラテラルムーブメント(収集した認証情報を使って他のシステムにアクセスすること)、データ探索(侵害した位置からアクセス可能な機密データの特定)、永続化(APTによる長期的なアクセスをシミュレートするため)などがあります。目的は、最初の侵害による現実的な影響を示すことです。1台のシステムが侵害されたという事実だけでなく、攻撃者が最終的にどこまで到達できるかを明らかにします。
# Post-exploitation with Meterpreter (Metasploit):
meterpreter> sysinfo # OS/hostname
meterpreter> getuid # current user
meterpreter> getsystem # attempt privilege escalation
meterpreter> hashdump # dump local NTLM hashes
meterpreter> run post/multi/gather/credentials
meterpreter> run post/windows/manage/migrate # migrate to stable process
# Lateral movement (CrackMapExec with dumped hash):
crackmapexec smb 192.168.1.0/24 -u admin -H <NTLM_hash> --sharesピボッティングと内部ネットワークへのアクセス
ピボッティングでは、侵害したホストを中継点として使用し、ペネトレーションテスターからは通常アクセスできないネットワークセグメントに到達します(例:アプリケーションサーバーからのみ到達できる内部データベースVLAN)。Metasploitのroute addコマンドや、SSHトンネリング(ローカルフォワーディングにはssh -L、SOCKSプロキシにはssh -D)が一般的なピボッティング手法です。ピボッティングによって、ネットワークセグメンテーションが実際に有効かどうかを確認できます。適切に分割されたネットワークでは、侵害されたDMZサーバーから内部データベースに到達できないはずですが、フラットなネットワークでは自由なラテラルムーブメントが可能です。報告書に記録したピボット経路によって、セグメンテーションの欠陥がどこにあるかを正確に示せます。
# SSH local port forward (pivot):
# Access MySQL on internal server through compromised host:
ssh -L 3306:10.30.30.5:3306 user@compromised_host
# Now connect to MySQL locally:
mysql -h 127.0.0.1 -P 3306 -u root
# SOCKS proxy for full network pivot:
ssh -D 1080 user@compromised_host
# Use proxychains to route tools through SOCKS proxy:
proxychains nmap -sT 10.30.30.0/24
# Metasploit route add:
route add 10.30.30.0/24 <session_id>クリーンアップと証拠保全
テストが完了したら、ペネトレーションテスターはクリーンアップを行い、インストールしたバックドア、アカウント、ツールを削除しなければなりません。実際の攻撃者とは異なり、ペネトレーションテスターにはRules of Engagementに基づき、システムをテスト前の状態に戻す義務があります。クリーンアップの対象には、作成したユーザーアカウントの削除、配置したファイル(ペイロードやツール)の削除、永続化メカニズム(WMIサブスクリプション、スケジュールされたタスク、レジストリのrunキー)の削除、すべてのテスト成果物がなくなったことのクライアントとの確認などがあります。証拠保全も並行して行います。報告書の作成や将来的な法的参照に備え、すべてのスクリーンショット、ツールの出力、ログ、メモを安全な形式で保持します。
# Post-test cleanup checklist:
# Windows:
# - Delete created accounts: net user testuser /delete
# - Remove scheduled tasks: schtasks /delete /tn 'TestTask'
# - Remove registry persistence: reg delete HKLM\...
# - Delete dropped files: del C:\Windows\Temp\payload.exe
# - Clear event logs (if authorized): wevtutil cl Security
# Linux:
# - Remove cron jobs: crontab -r
# - Remove added SSH keys: edit ~/.ssh/authorized_keys
# - Delete dropped files: rm /tmp/payload.shフェーズ6:報告
報告書は、業務の正当性を示し、是正措置を促す最終成果物です。適切に構成された報告書には、エグゼクティブサマリー(リスク評価、業務への影響、経営層向けの上位3件の調査結果)、技術的な調査結果のセクション(各調査結果の深刻度、説明、証拠、再現手順、業務への影響、具体的な是正ガイダンス)、そしてツールの生出力と詳細なタイムラインを収録した付録が含まれます。報告書は機密情報として扱われます。攻撃を再現できるほど詳細な情報が含まれているためです。通常はデブリーフィングミーティングで納品し、ペネトレーションテストチームが調査結果を説明し、クライアントの質問に回答します。優れた報告書こそが、プロフェッショナルな業務と、スキャン結果をそのまま出力しただけの未熟な成果物を分けるものです。
試験に向けたパッシブ偵察とアクティブ偵察の比較
Security+では、パッシブ偵察とアクティブ偵察の違いが頻繁に出題されます。パッシブ偵察では、対象システムに直接接触せず、公開情報源から情報を収集します。そのため対象側にログは作成されません。例として、WHOISレコードの確認、LinkedInの調査、Certificate Transparencyログへの問い合わせ、Shodan検索の実行などがあります。アクティブ偵察では、対象システムと直接やり取りします。ポートスキャン、バナーグラビング、DNSゾーン転送の試行などがその例です。アクティブ偵察ではログが生成され、IDSアラートが発生する可能性があります。実際の業務では、対象ネットワークに検知可能な接触を行う前に地図を作成するため、通常はパッシブ偵察をアクティブ偵察に先行させます。
クイックチェック
このレッスンで学んだCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、ペネトレーションテストが計画、偵察、スキャン、エクスプロイト、侵害後、報告という体系化されたライフサイクルに従うこと、パッシブ偵察が対象側にログを作成せず公開OSINT情報源を利用する一方で、アクティブ偵察はシステムと直接やり取りすること、そしてエグゼクティブサマリー、技術的な調査結果、具体的な是正ガイダンスを含む最終報告書がセキュリティ改善を推進する重要な成果物であることを学びました。次は、CVSSスコアリングと、脆弱性の是正に優先順位を付ける方法について学びます。
よくある質問
「ペネトレーションテストの段階:偵察から報告まで」レッスンは無料ですか?
はい。「ペネトレーションテストの段階:偵察から報告まで」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「ペネトレーションテストの段階:偵察から報告まで」で何を学びますか?
偵察、スキャン、エクスプロイト、侵入後活動、そして是正措置を導く最終報告というペネトレーションテストのライフサイクルを学びます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ペネトレーションテストの段階:偵察から報告まで」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 脆弱性スキャンとペネトレーションテスト
- 一般的なスキャンツール:Nessus、OpenVAS、Nmap
- ペネトレーションテストの段階:偵察から報告まで
- CVSSスコアリングと脆弱性の優先順位付け