RustRedOpsは、Rustプログラミング言語で実装された攻撃的セキュリティのPoCやツールを厳選して集めたリポジトリです。本プロジェクトは、クラシックなレッドチーム技術をイディオマティックなRustに翻訳した多数の特化モジュールをまとめています。リポジトリのトピックには、プロセスインジェクション、メモリマッピングインジェクション、ペイロードステージング、APIフック、ETWおよびAMSIパッチ、UEFIの例、WebAssemblyシェルコードなどが含まれます。このリポジトリは、研究、ラボでの再現、Windowsプラットフォーム上での認可されたレッドチーム開発を目的としています。

特徴
- プロセスインジェクションの基本技術をカバーするマルチモジュールコレクション。非同期プロシージャコールインジェクション、スレッドハイジャック、ファンクションストンピング、モジュールストンピングなどを含みます。
- HTTPベースの取得やレジストリを利用したステージングのデモなど、ペイロードステージングおよびメモリ上での実行例。
- 低レベルのプリミティブや回避技術として、直接システムコール、CRT最小化、IAT難読化、NTDLLアンフックなどを含みます。
- ドライバー、UEFIイメージ、WebAssemblyベースのシェルコード実行を示すサポートプロジェクト。
- 特定のターゲットアーキテクチャ向けモジュールビルドのためのクロスコンパイルガイダンス。
インストール方法
このリポジトリにはRustおよびCargoが必要です。各モジュール固有の前提条件についてはリポジトリのREADMEを参照してください。READMEに記載されているビルド・コンパイルコマンドを以下に示します。
git clone https://github.com/joaoviictorti/RustRedOps.git cd RustRedOps
リリースモードでモジュールをビルドするには:
cargo build --release
利用可能なターゲットアーキテクチャを一覧表示するには:
rustup target list
ターゲットアーキテクチャを追加するには:
rustup target add <arch>
特定のアーキテクチャ向けにコンパイルするには:
cargo build --release --target <arch>
READMEでは、ビルド前に特定のモジュールディレクトリ(例: cd RustRedOps/Process_Injection)に移動し、Windows SDKコンポーネントなど追加依存関係がある場合はモジュールのREADMEを参照するよう指示しています。
使い方
RustRedOpsはマルチプロジェクトコレクションであり、単一のグローバルなコマンドラインインターフェースは提供していません。READMEでは、必要なモジュールを選択し、そのモジュールのREADMEで実行時オプションや使用例を確認し、隔離されたラボ環境でビルド・テストするよう指示しています。READMEからの指示:
cd RustRedOps/<name-project> # プロジェクト固有のREADMEに従い、使用方法や例を参照してください
特定のモジュールが--help出力付きのCLIを提供している場合は、そのモジュールのREADMEを参照するか、テストラボでビルド済みバイナリを実行してヘルプテキストを確認してください。リポジトリ全体で統合された--help出力はありません。
攻撃シナリオ
ポストエクスプロイトを模擬したラボ演習において、オペレーターは目立つアーティファクトを残さずにシェルコードをステージング・実行するためのコンパクトなネイティブバイナリを必要とします。オペレーターはリポジトリをクローンし、Payload_Stagingに移動、cargo build --releaseでモジュールをビルドし、モジュールREADMEに記載されたHTTP取得設定を構成します。オペレーターは隔離された仮想マシンでローダーを実行し、無害に見えるHTTPフェッチをトリガーして暗号化されたシェルコードを取得、ローダーはシェルコードをメモリにマッピングし、Payload_Execution_Fibers例で示されるファイバー実行で実行します。トークン操作で得た昇格コンテキストから、オペレーターはフォレンジックセーフな認証情報抽出やラテラルムーブメント計画を行います。これらのモジュールの利用は認可されたテスト環境に限定してください。
レッドチームでの意義とトレードオフ
Rustは高いパフォーマンス、小さな静的バイナリ、低レベル制御を提供します。これらの特性は、ステルス性・移植性・最小限のインタープリターアーティファクトが重要なレッドチームツールにとって魅力的です。RustRedOpsは、クラシックな攻撃技術がRustでどのように実装できるかを示します。トレードオフとして、ビルドの複雑さ増加や、運用時のコード署名・パッケージングの注意が必要です。オペレーターはビルドを検証し、必要に応じてバイナリに署名する必要があります。ディフェンダーは、従来スクリプトやマネージドコードで見られた挙動を持つRustネイティブ実行ファイルの増加に備えるべきです。
検知と対策
ディフェンダーは、Rustネイティブ攻撃ツールへの露出を検証する際、以下のコントロールを優先できます:
- エンドポイントテレメトリを活用し、メモリ上での不審な実行パターン、実行ファイルペイロードの異常なネットワーク取得、直接システムコールの予期せぬ使用を検知する。
- 実行パス上の新規または予期しないネイティブバイナリを監視し、一般的な開発者・管理者ツールをベースライン化して誤検知を減らす。
- ファイル整合性監視および署名済みバイナリの強制により、未署名アーティファクトの実行を制限する。
- プロセス・レジストリアクセス監査を適用し、レジストリベースのペイロード取得などのステージング挙動を検知する。
関連するDarknetのカバレッジ
防御の文脈や補完的ツールについては、darknet.org.ukの以下も参照してください:
- Windows_EndPoint_Audit – エンドポイントセキュリティ監査ツールキット — インストーラーやポストエクスプロイト問題の検知に関連する設定ミスや弱い権限の自動チェック。
- mitmproxy – HTTPプロキシインターセプトツール — ラボでのHTTPベースのペイロード取得・ステージングフローの検査やエミュレートに有用。
- BlockEDRTraffic – EDR回避型ラテラルムーブメントツール — EDR回避アプローチを示し、ネイティブバイナリの検知戦略が重要である理由を強調します。
まとめ
RustRedOpsは、プロセスインジェクション、ペイロードステージング、回避プリミティブのRustネイティブな例を求めるレッドチーム向けの実践的リポジトリです。研究やラボ再現を目的としたモジュラーコレクションです。オペレーターは隔離環境でモジュールをビルド・テストし、コード署名や運用リスクに関するエンゲージメントルールを遵守してください。使用方法やオプションは各モジュールのREADMEを正規の情報源として参照してください。
RustRedOpsの詳細やダウンロードはこちら: https://github.com/joaoviictorti/RustRedOps
読者とのやりとり