「お申し込み」を押すと、NRIセキュアのお申し込みサイトに遷移します。
Red Teaming Tools - Developing Windows Implants, Shellcode, Command and Control
2026年11月9日(月)~2026年11月14日(土)
1日目:9:00-19:30
2日目~5日目:9:30-19:30
6日目:9:00-17:30
◆LiveOnline形式
オンライン
演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。
重要:次の手順に従って構成したノートPCをご準備ください。
本コースの実習に参加するには、適切に設定されたシステムが必要です。指示をよく読み、その通りに設定を行わない場合、実習に十分に参加できない可能性があります。そのため、指定された要件をすべて満たすシステムをご用意の上、ご参加ください。
受講前にシステムのバックアップを取っておいてください。機密データや重要なデータが含まれていないシステムを使用することを強く推奨します。SANSは、受講者のシステムやデータについて一切の責任を負いません。
コースで使用するメディアは、ダウンロード形式で提供されます。メディアファイルは容量が大きく、中には40~50GBに及ぶものもあります。そのため、ダウンロードには十分な時間を確保する必要があります。インターネット接続環境や通信速度は、様々な要因によって大きく異なります。したがって、教材のダウンロードにかかる所要時間を正確に見積もることはできません。リンクを入手したら、すぐにコースメディアのダウンロードを開始してください。コースメディアは、受講初日から必要となります。受講開始の前夜になってからダウンロードを開始すると、失敗する可能性が高くなります。
SANSでは、印刷物として提供していた教材をPDF形式で提供するようになりました。さらに、一部のクラスではPDFに加え、電子ワークブック(eWorkbook)も使用されています。電子ワークブックを使用するクラスは今後急速に増えていく見込みです。こうした新しい環境においては、講師による講義中やラボ演習中に教材を表示させておくために、2台目のモニターやタブレット端末を活用することが有効です。
ノートPCの仕様についてご質問がある場合は、カスタマーサービスまでお問い合わせください。
SEC670は、Windows環境向けの専用攻撃ツールを開発・構築するスキルをサイバーセキュリティの専門家向けに提供します。現代のツール開発に求められる高度かつ複雑な要件に従来の教育機関が対応できていないため、この専門分野では深刻な人材不足が生じています。受講者は集中的なハンズオン演習に取り組み、現代の防御策を回避・突破できるカスタムコンパイル・プログラムを作成します。演習では、高度な脅威アクターが用いる手法を学び、Windows APIの活用、プロセスインジェクション、永続化メカニズムに関する専門知識を深めます。C++プログラミングを戦略的に活用することで、受講者は、目的に合わせたインプラントの作成、シェルコードの操作、秘密のコマンド通信チャネルの確立といった能力を習得し、組織のセキュリティ体制を根本的に強化できるようになります。
Windows向け攻撃ツール開発:高度なレッドチーム・アーセナル
Windows向けのカスタムコンパイル・ツールを開発するために不可欠なスキルセットは、大学やその他の教育機関では教えられていません。その結果、サイバーセキュリティ業界では深刻なスキル不足が生じ、レッドチーム・オペレーションの全体的な能力が制限されています。Windowsツール開発者を求める防衛関連企業や一般企業は、深刻な人材不足に直面しており、防御能力をさらに向上させることが困難な状況にあります。
「SEC670: Red Team Operations - Developing Custom Tools for Windows」は、この種のコースとしては初めてのものであり、C/C++言語を使用してWindows専用のカスタムコンパイル・プログラムを作成するハンズオン演習を提供します。受講者は、Windows APIを使用して独自のツールを作成することで、権限昇格、永続化、情報収集などの機能を持つ既存の攻撃ツールの内部動作を学びます。Windowsの防御機能は強化されており、クラウド連携型のウイルス対策(AV)ソリューションの普及により、検知を回避して活動することはますます困難になっています。これに対応するため、本コースでは、国家レベルの攻撃者が開発するマルウェアのインプラントに実際に実装されている手法を紹介します。
コースは、Windowsにおけるコンピュータ・ネットワーク・オペレーションツールの開発に関する導入から始まります。悪意ある動作を検知するために設計されたMonetaやPE-Sieveといった、現在の攻撃・防御ツールについて学びます。その後、受講者は迅速にステップアップし、最初のコンパイル済みプログラムを作成します。コースを進める中で、ターゲット情報の取得方法、その情報を利用して実行可能な操作(インジェクションや権限昇格など)、そして永続化によってシステムへのアクセスを維持・活用する方法を学びます。さらに、C言語とコンパイラのテクニックを駆使し、シェルコード(暗号化されたものを含む)をプロセス内で実行する方法も習得します。最後に、受講者はアンチウイルス製品の機能フックエンジンを回避したり、`AmsiScanBuffer` などの主要関数やコード・ケイブをパッチしたりすることで、AVソリューションを回避する手法を学びます。さらに、独自のカスタムローダーを作成し、それを最終的なインプラントに組み込みます。仕上げとして、HTTPライブラリを活用し、カスタムPython C2サーバーへビーコンを送信して適切にコマンド&コントロールを行う方法を習得します。
SEC670の締めくくりとして、これまでにないほど受講者に挑戦を強いる、没入型のCTFイベントが実施されます。受講者は、コース期間中に構築したツールや機能を駆使し、リモートプロセスのメモリからの情報取得といった複雑な課題に挑みます。コース終了時には、Windowsレジストリ、ファイル、フォルダ、ネットワーク接続、ユーザー、プロセスの列挙、UACやアンチウイルス製品の回避、権限昇格、再起動後も持続する永続化、他プロセスへのインジェクション、そしてユーザーや他のツールからの隠蔽といった機能を備えた、軽量なWindowsインプラントを完成させていることになります。
SEC670のトレーニングは、以下を含む幅広い方々にお勧めします。
セクション1では、攻撃用ツールの開発に向けたWindowsの内部構造(Windows Internals)とプログラミングの基礎を学びます。受講者は、LinuxとWindowsの主な違い、Windowsのデータ型、呼び出し規約(Calling Conventions)、そしてWindows APIプログラミングの主要なテクニックについて学習します。
本コースは、Windowsの内部構造(Windows Internals)の概要を学ぶことから始まり、OSを機能させている中核的なメカニズムについて段階的に理解を深めていきます。攻撃用ツールと防御用ツールの主な違いや、それらの必要性についても解説します。Windowsプログラミングに関する確かな知識を身につけた上で、受講者はWindows向けの攻撃用ツールまたは防御用ツールのいずれかを作成することを選択できます。ただし、本コースではC/C++言語を用いた攻撃用サイバー機能の作成に焦点を当てます。
inuxとWindowsの主な違いを理解することは重要であり、LinuxからWindowsへの移行を円滑にする助けとなります。C言語には基本的なデータ型が存在しますが、Windowsでは独自のデータ型が導入されており、本セクションでそれらについて解説します。またcalling conventionsや、Windowsがプログラミングの世界に導入した独自の規約についても紹介します。セクションの締めくくりとして、主要なWindows APIを実際に使用する演習を行い、これまでの学習内容を統合しながら、Windows APIについてより本格的に学びます。
セクション2では、ターゲット環境を包括的にマッピングするためのプログラムによる偵察手法について解説します。具体的には、システム情報の収集、プロセスの列挙、ファイルシステムの調査、およびネットワークに関する情報の収集を取り上げます。
本コースのセクションでは、標的を対象とした偵察の技術について学びます。レッドチームのオペレーターが初期アクセスを確立した直後に行う最初の行動の一つに、標的環境に対する詳細な列挙があります。この工程は時間がかかるうえ、ゼロデイ脆弱性を利用した攻撃のような派手さがないため、見落とされがちです。しかし、自身がどのような環境に置かれているのか、そして次に何ができるのかを把握することは極めて重要です。受講者は、詳細なアプローチを用いてプログラム的に環境を調査する方法を学び、OSのバージョン・ビルド、パッチ、プロセス、インストール済みアプリケーション、ファイルシステム、ユーザーとグループ、ネットワーク、サービス、タスク、レジストリなどの情報を収集・整理する手順を習得します。
セクション3では、高度なシステム操作を行うための手法に焦点を当てます。具体的には、プロセスインジェクション、PEヘッダーの解析、スレッド操作、特権昇格の手法などが含まれます。
このセクションでは、初期アクセスの段階に続くアクションに焦点を当てます。レッドチームのオペレーターは、目的のアクションを実行するために、一般的にプロセスインジェクションの手法を活用します。受講者は、Portable Executable (PE) ヘッダーの構造に関する詳細な学習を皮切りに、これらの機能をプログラムで実装する方法を学びます。また、PEヘッダーの重要なセクションを解析する方法も習得します。これは、GetProcAddressのようなWindows APIの独自実装を作成する際に役立つ重要なスキルです。PEフォーマットを理解した後は、スレッドの内部構造や生成の仕組みについて学習します。さらに、プロセスインジェクションを支援するために、非同期プロシージャコール(APC)をスレッドのキューに追加する方法についても探求します。ここでは、標的プロセス内のスレッドに悪意のあるDLLを強制的に読み込ませる「クラシックなDLLインジェクション」を含む、いくつかのプロセスインジェクション手法を取り上げます。アクセス後の別のアクションとして、標的システム上での活動をより効果的に行うための権限昇格があります。そのため、受講者は自身のインプラント向けの権限昇格モジュールをプログラムで作成し、標的システムでテストを行います。
セクション4では、Windowsの様々なシステムメカニズムを利用し、再起動や予期せぬ中断が発生してもシステムへのアクセスを維持するための、複数の永続化手法について解説します。
本セクションでは、再起動後もアクセスを維持する「永続化(Persistence)」を実現するための様々な手法に焦点を当てます。初期アクセスの確立は重要な第一歩ですが、電源喪失、予期せぬ再起動、初期アクセスプロセスの停止といった不測の事態が発生してもそのアクセスを維持できるよう、適切な措置を講じる必要があります。通常、オペレーターは既存のツールやフレームワークに組み込まれた永続化機能を利用しますが、それらのツールも何らかの形で開発されたものです。本セクションのブートキャンプ・チャレンジでは、受講生がプログラムによって永続化ツールを実装し、コンパイルされたツールをWindows 10のテスト用仮想マシン(VM)上でテストして、再起動後もアクセスが維持されるかを確認します。
トピックの詳細
本セクションでは、シェルコードの実行、アンチウイルス(AV)回避、およびC2(コマンド&コントロール)通信に関する高度な手法を習得し、洗練された攻撃用ツールの開発を可能にします。
本セクションでは、ツール開発者が成功を収めるために習得すべき、より高度なテクニックを扱います。インプラントの重要な機能の一つに、位置独立(position-independent)なシェルコードを実行する能力があります。このシェルコードは、msfvenom、donut、shelterといった既存のツールで生成することも、C言語を用いて手動で作成することも可能です。受講者は、自身のプロセス内でローカルにシェルコードを実行する方法に加え、プロセスのアドレス空間の境界を越えてリモートで実行する方法についても詳細に学びます。シェルコードは難読化や暗号化が施されていないと即座に検知されてしまうため、実行直前に復号する手法を習得します。インプラントのもう一つの機能として、AV製品の回避が挙げられます。回避には様々な手法がありますが、本セクションでは特に、関数のフック解除、システムコールの復元、そして独自のフックの実装に焦点を当てます。シェルコードの実行やAV検知率の低減は重要ですが、標的マシンから情報を収集する手段がなければ意味がありません。そこで、インプラントがオフライン分析用にオペレーターへ情報を送信し、次のタスク(指示)を受け取る仕組みについても学習します。
セクション6は、没入型の「Capture the Flag」形式の課題です。ここでは、学習したスキルを複雑な現実世界のシナリオ・シミュレーションに適用し、独自のツールを開発する能力が試されます。
このCapture the Flagイベントでは、現実世界の事象を模した一連のハンズオン課題に取り組みます。受講者は国家レベルのチームに所属するシニア開発者という役割を担い、標的を攻撃するためのサイバー能力を構築します。課題を解決するには、その週に学んだすべての知識とスキルを駆使する必要があります。しかし、学んだスキルはあくまで出発点に過ぎません。標的ごとに状況が異なるため、受講者は標的への初期アクセスを足掛かりにし、その特定の標的に合わせて独自に開発したツールのみを使用してアクセスを拡大していく必要があります。