Orsted C2はコマンド&コントロールのフレームワークです。多数のorsted-beaconで構成され、相互に、そしてメインのorsted-serverと通信します。オペレーターはorsted-clientを使用してorsted-beaconと対話できます。
機能
- 設計上、自動サンドボックス欺瞞
オペレーターがビーコンと対話しない限り、悪意のあるDLL/SOはセッションに送信されません。自動サンドボックスの観点では、orsted-beaconは単にサーバーへ問い合わせを行うクライアントに過ぎません。
- Windows回避モジュール
間接syscallを用いてAMSIとETWを回避する複数の方法があります。
- ピボットおよびLigolo-ngのネイティブサポート
トランスポートプロトコルや配備先OSに関係なく、orsted-beaconをピボットさせたりチェーン接続したりできます。
Ligolo-ngはネイティブにサポートされています。autoroute (ligolo-ng)セクションを参照してください。
- きめ細かなInline-clrとインメモリPowerShell実行
go-clrパッケージを基に、プロセス内で.NETアセンブリをインライン実行できます。
orsted-clientのタブ補完とヘルプ
orsted-clientはgrumbleのGoパッケージで作られています。どのコマンドでも末尾に--helpを付けるとヘルプを表示できます。
Tabが有効で、自動補完が利用できます。
- そのほか多数
アーキテクチャ
Orstedのコンポーネントは非常に分かりやすい構成です。
orsted-serverはフレームワークの中央サーバーですorsted-dbは、実行内容を保存・追跡するデータベース(ファイル)ですorsted-clientは、オペレーターがorsted-serverと対話するためのCLIですorsted-beaconは、被害者に配布されるソフトウェアです
以下は、各コンポーネント同士の通信を示す簡単な図です。

プロジェクトおよびディレクトリ構成
beaconにはビーコンのコードが含まれます。ビーコン生成のたびにオンザフライでコンパイルされます。clientにはorsted-clientのコードが含まれます。dataはクライアント用データを格納するためのディレクトリです。clientconf.tomlが含まれます。modulesには、実行時にorsted-beaconへロードされるDLLおよびSOの全コードが含まれますprofilesには、コンパイル時にサーバーへ埋め込まれるデフォルトプロファイルが含まれるべきです(この部分は今後の作業)
headersHttpはまだ使用されていません。現在パースされるのはendpointsとdomain(HTTPのHostヘッダーのこと。実際に接続するIPではありません)のみです。
protobufはOrsted C2のProtocol Buffers定義ですserverはorsted-serverのコードですtestには将来的にテストが含まれる予定ですtoolsにはあなたの全アーセナルが含まれます(./data/clientconf.tomlで参照されます)
インストール&使用方法
翻訳元: https://meterpreter.org/the-ghost-in-the-machine-master-stealth-with-the-orsted-c2-framework/