レッドチーム演習|偵察から目的達成までの一気通貫
ついに最終回。これまでの9話で学んだ技術を総動員し、1つの組織への模擬侵入を最初から最後まで通しで体験します。偵察・初期侵入・権限昇格・横展開・目的達成——レッドチーム演習の5つのフェーズを順にたどり、最後は最高機密の暗号を自分の手で解いてミッションを完了させます。新しい技術は登場しません。これまでの集大成です。
📋 目次
🎯 レッドチーム演習とは|攻撃を「一連の流れ」で捉える
単発の技術ではなく、目的達成までの全工程を訓練する
「侵入できるか」ではなく「目的を達成できるか」
レッドチーム演習とは、許可を得た上で、実際の攻撃者になりきって組織のセキュリティを通しで試す訓練です。ペネトレーションテストが「個々の穴を見つける」ことに重点を置くのに対し、レッドチーム演習は「最終的な目的(機密データの奪取など)まで到達できるか」という一連の流れ全体を検証します。第9話で体験した攻撃チェーンを、組織全体を相手にもっと大きなスケールで実行するもの、と考えてください。
攻撃者の動きは、しばしば「キルチェーン」や「攻撃ライフサイクル」と呼ばれる段階で整理されます。大まかには、①偵察(標的を調べる)②初期侵入(最初の足がかりを得る)③権限昇格(より強い権限を奪う)④横展開(内部を動き回る)⑤目的達成(最終的な目標を実行する)という流れです。本話では、これまでの9話で学んだ技術を、この5つのフェーズに1つずつ当てはめながら、1本の侵入シナリオとして完遂します。
この話の前提知識(これまでの全話が土台です)
最終回は総まとめです。特に次の回の技術を各フェーズで再利用します。不安な箇所は読み返してから挑むとスムーズです。
- 第2話 SSRF(初期侵入で使用)/第6話 IAM権限昇格(権限昇格で使用)
- 第8話 XXE(横展開で使用)/第4話 暗号の復号(目的達成で使用)
舞台は、これまでの回にも登場した架空企業グループのサービス「Vela Corp」です。あなたは許可を得たレッドチームの一員として、最高機密「クラウンジュエル」の奪取をゴールに、偵察から順に侵入を進めます。すべては学習用に安全に再現された環境で、実際の通信・ファイルアクセスは一切発生しません。
🗺️ 今回のミッション|Vela Corpへの模擬侵入
5つのフェーズを順にたどり、最高機密に到達する
今回のミッションは、次の5フェーズで構成されます。第9話の3ステップ連鎖をさらに長くした、5連鎖の侵入経路です。各フェーズの成果が、次のフェーズの前提になります。1つでも欠ければ先には進めません。
レッドチームのゴールは「クラウンジュエル」
「クラウンジュエル(王冠の宝石)」とは、組織にとって最も価値が高く、奪われたら致命的となる中核資産のことです。顧客データベース、暗号鍵、知的財産などがこれにあたります。レッドチーム演習では、このクラウンジュエルに到達できるかどうかが、組織の防御力を測る究極の指標になります。今回のあなたのゴールも、暗号化されたクラウンジュエルを復号して中身を取り出すことです。
🔭 各フェーズで守る側は何を見るか
攻撃の各段階には、必ず検知のチャンスがある
攻撃が複数フェーズに分かれているということは、防御側にとっては「検知の機会が複数ある」ということでもあります。攻撃者が偵察から目的達成まで進む間、各フェーズはそれぞれ異なる痕跡を残します。ブルーチーム(防御側)は、これらの痕跡を各段階で捉えることで、攻撃が最終目的に到達する前に止めようとします。
| フェーズ | 攻撃者の行動 | 守る側が見る痕跡の例 |
|---|---|---|
| ① 偵察 | 資産の列挙・露出した資産の探索 | 不審な大量アクセス、存在しないURLへの総当たり |
| ② 初期侵入 | SSRFで内部へリクエスト | サーバーから内部アドレスへの不自然な通信ログ |
| ③ 権限昇格 | IAM権限の組み合わせで昇格 | 自分自身への権限付与という異常な操作の監査ログ |
| ④ 横展開 | XXEで内部ファイルを読む | XML処理時の予期しないファイルアクセス |
| ⑤ 目的達成 | 機密データの復号・持ち出し | 機密資産への異常なアクセスと大量データの外部送信 |
「侵入されない」より「侵入されても気づいて止める」
完璧に侵入を防ぐことは現実には困難です。だからこそ現代の防御は、「入口を固める」だけでなく「入られた後の各フェーズで素早く検知し、目的達成の前に止める」という考え方を重視します。レッドチーム演習の最大の価値は、自分たちの組織が攻撃のどのフェーズで気づけるのか(あるいは気づけないのか)を、実際に試して明らかにできる点にあります。
では、実際にあなた自身が攻撃者となって、5つのフェーズを通しでたどってみましょう。各フェーズでこれまで学んだ技術を思い出しながら、クラウンジュエルへの道を切り開いてください。
💻 実践チャレンジ:5フェーズの侵入を完遂せよ
偵察から目的達成まで、一連の流れでクラウンジュエルに到達する
架空企業「Vela Corp」への模擬侵入を、5つのフェーズで実行します。各フェーズをクリアすると次が解放され、最後のフェーズで暗号化されたクラウンジュエルを復号すると、ミッション完了です。これまでの集大成として、5つの技術を1本の線に繋いでください。
5つのフェーズを順に攻略します。すべて完了するとシリーズ完走バッジが表示されます。
🎯 レッドチーム演習:5フェーズ中 0 完了
Vela Corpの公開資産を列挙し、本番ではなく誤って外部公開されてしまった検証サーバーを特定します。下のボタンで資産を列挙し、露出している1台を見つけてください。その行に表示される合言葉を入力します(例: RECON-STAGING-FOUND)。
$ velacorp-recon –enumerate-assets
列挙された資産のうち、ほとんどは本番(production)ですが、1台だけ「EXPOSED(露出)」と印が付いた検証サーバーがあります。その行に合言葉が書かれています。
見つけた検証サーバーにはURLプレビュー機能があります。第2話のSSRFの要領で、WAFがブロックするhttp://169.254.169.254/を別表記で回避し、内部メタデータに到達してください。応答の中の合言葉を入力します(例: SSRF-FOOTHOLD-OK)。
$ staging-api – URLプレビュー機能(サーバーが代理GET)
169.254.169.254の10進数表記は2852039166です。http://2852039166/でWAFをすり抜けられます。
奪った認証情報には、いくつかのIAM権限が付いていました。第6話の要領で、組み合わせると自分自身に管理者権限を付与できる2つの権限を選んでください。正しい組み合わせで合言葉が表示されます(例: IAM-PRIVESC-DONE)。
$ velacorp-iam describe-grants –identity stolen-creds
付与されている権限: 1: storage:Read(読み取り) 2: grant:CreateVersion(自分の許可文書の新版を作成) 3: compute:List(一覧表示) 4: grant:ActivateVersion(自分の許可文書の新版を有効化) 5: billing:View(請求閲覧)
「自分の許可文書の新版を作成する」権限と「その新版を有効化する」権限が揃うと、自分の権限を書き換えて管理者を付与できます。2番と4番です。
管理者になったので、管理者専用のXML取込が使えます。第8話の要領で、外部エンティティを使って保管庫の設定ファイルfile:///vault/velacorp/unlock.confを読み出してください。中に合言葉と、フェーズ⑤で使うaes_keyが書かれています。
$ velacorp-admin – XML設定インポート(認証済み: admin)
エンティティのSYSTEM "file://..."をfile:///vault/velacorp/unlock.confに書き換えてパースしてください。結果にpassphraseとaes_keyが表示されます。aes_keyは次のフェーズでコピーして使います。
最後のフェーズです。フェーズ④で入手したaes_keyを下に貼り付けて、暗号化されたクラウンジュエル(AES-256-GCM)を復号してください。これは本物の暗号処理(Web Crypto API)で、架空のローカルデータに対してのみ実行されます。復号に成功するとフラグが表示されるので、それを入力してミッション完了です。
$ decrypt crownjewel.enc (AES-256-GCM)
暗号文(ページ内・架空データ): iv = 9f1c2e4a6b8d0f2143658799 ct = 2e1df51ad426ea94360c7ed2b00839a5…(省略)
フェーズ④で読み出したunlock.confの中のaes_key=の右側(16進数64文字)を、そのまま上の欄に貼り付けて復号ボタンを押してください。表示されたCTF{...}がフラグです。
侵入チェーン完成!ミッション達成
偵察から目的達成まで、レッドチーム演習の全5フェーズをやり遂げ、クラウンジュエルの奪取に成功しました。そしてこれは、CTF上級編・全10話の完走でもあります。
🎖️ CTF上級編 完走バッジ を獲得しました
シリーズ合計スコア: – / 1000
初級「はじめてのCTF」から実践編、そして上級編まで——本当にお疲れさまでした。ここで身につけた「攻撃を一連の流れで捉え、各段で断ち切る」視点は、現場の防御でそのまま生きます。
🛡️ 防御側の視点|キルチェーンを各段で断つ
5つのフェーズ、それぞれに「止める」手立てがある
レッドチーム演習で5フェーズの侵入を体験したからこそ、防御の全体像が見えてきます。第9話で「チェーンはどこか1箇所で断てる」と学びましたが、フェーズが5つに増えた今回は、断ち切るチャンスも5つあるということです。各フェーズの対策を振り返ります。
- ① 偵察を妨げる:本番と検証環境を明確に分離し、検証サーバーを誤って外部公開しない。公開資産を定期的に棚卸しする
- ② 初期侵入(SSRF)を防ぐ:URL取得機能で、宛先IPを正規化したうえで内部アドレスを拒否する。第2話の対策をそのまま適用する
- ③ 権限昇格(IAM)を防ぐ:自分自身の権限を書き換えられる組み合わせを一般利用者に与えない。権限の組み合わせを自動分析する。第6話の対策が効く
- ④ 横展開(XXE)を防ぐ:XMLパーサーで外部エンティティとDTDを無効化する。第8話の対策で、管理者権限を奪われても保管庫は守れる
- ⑤ 目的達成を防ぐ・遅らせる:最高機密は暗号化し、鍵を厳重に分離保管する。機密への異常アクセスと大量データ送信を検知して即座に遮断する
多層防御=「鎖を断つチャンスを増やす」こと
1つの対策が破られても、次のフェーズでまた検知・遮断のチャンスがある——これが多層防御の本質です。今回のミッションも、5つのフェーズのどこか1つでも対策が機能していれば、クラウンジュエルへの到達は防げました。攻撃を5段階の鎖として捉えれば、防御側には5回のチャンスがあるのです。完璧を目指すより、各段に確実な「断ち切りどころ」を用意することが、現実的で強い守りになります。
攻撃を「点」で見るのではなく「線」で——いや、今回は「鎖」で捉える視点。これがCTF上級編を通じて最も伝えたかったことです。最後に、全10話を振り返ってまとめます。
🎖️ 総まとめ|CTF上級編・全10話の振り返り
「CTFの問題」から「現場の脆弱性」へ、そして「攻撃チェーン」へ
CTF上級編・全10話、完走おめでとうございます。このシリーズでは、実際の侵害事例やCVEで繰り返し登場する脆弱性クラスを、自分の手で安全に体験してきました。最後に、たどってきた道のりを振り返ります。
①上級編へのレベルアップ(IDOR→JWT)/②SSRFでクラウド内部に侵入/③SSTIでテンプレートエンジン乗っ取り/④パディングオラクル攻撃/⑤レースコンディション/⑥クラウドIAM権限昇格/⑦OAuth/SSOの落とし穴/⑧XXEで内部ファイル読み取り/⑨複合チャレンジ(SSRF×OAuth×XXE)/⑩レッドチーム演習(総まとめ)
序盤で「CTFのフラグ探し」から「現場の脆弱性クラスの構造理解」へと視点を移し、中盤でWeb・暗号・クラウド・認証の各ドメインを掘り下げ、終盤で複数の脆弱性を1本の攻撃チェーンに繋ぎました。そして最終回で、偵察から目的達成までの全工程を通しで体験しました。一貫して流れていたのは、「攻撃は単発ではなく連鎖である」「だから防御も各段で断ち切れる」という視点です。
Q. このシリーズで学んだことを、実際の業務でどう活かせますか?
脆弱性診断レポートやCVEの解説を、単体の指摘としてではなく「他のどの弱点と繋がりうるか」という連鎖の視点で読めるようになります。開発者なら自分のコードの信頼境界を意識でき、防御担当なら多層防御の各層をどこに置くかを設計できます。攻撃の流れを理解していることは、守る側にとって大きな武器です。
Q. ⑤の暗号復号は本物の暗号処理ですか?危険はありませんか?
はい、ブラウザのWeb Crypto APIによる本物のAES-256-GCM復号です。ただし対象はページ内に埋め込まれた架空のローカルデータのみで、あなたの端末や他者には一切影響しません。実在のサービスやデータは対象にしていません。
Q. 次は何を学べばいいですか?
このシリーズで「攻撃チェーンの視点」を得たら、次は防御側の実務(DFIR、ログ分析、検知ルール作成など)に進むのがおすすめです。当サイトにはフォレンジックやログ解析の記事も揃っています。攻撃を理解した目で防御を学ぶと、両者が繋がって理解が一段深まります。
Q. 進捗やスコアの情報はどこかに送信されますか?
送信されません。すべてブラウザのlocalStorage(あなたの端末内)だけに保存され、外部のサーバーには一切送信されません。全10話を通じて、入力したデータがページの外に出ることはありません。
📚 参考情報
- MITRE ATT&CK(攻撃の各段階を体系化したフレームワーク)
- Lockheed Martin Cyber Kill Chain(攻撃ライフサイクルのモデル)
- OWASP Top 10(本シリーズで扱った脆弱性クラスの多くを収録)


コメント