マシンの中のゴースト:Orsted C2フレームワークでステルスを極める

Image

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-clientgrumbleのGoパッケージで作られています。どのコマンドでも末尾に--helpを付けるとヘルプを表示できます。

Tabが有効で、自動補完が利用できます。

  • そのほか多数

アーキテクチャ

Orstedのコンポーネントは非常に分かりやすい構成です。

  • orsted-serverはフレームワークの中央サーバーです
  • orsted-dbは、実行内容を保存・追跡するデータベース(ファイル)です
  • orsted-clientは、オペレーターがorsted-serverと対話するためのCLIです
  • orsted-beaconは、被害者に配布されるソフトウェアです

以下は、各コンポーネント同士の通信を示す簡単な図です。

Image

プロジェクトおよびディレクトリ構成

  • beaconにはビーコンのコードが含まれます。ビーコン生成のたびにオンザフライでコンパイルされます。
  • clientにはorsted-clientのコードが含まれます。
  • dataはクライアント用データを格納するためのディレクトリです。clientconf.tomlが含まれます。
  • modulesには、実行時にorsted-beaconへロードされるDLLおよびSOの全コードが含まれます
  • profilesには、コンパイル時にサーバーへ埋め込まれるデフォルトプロファイルが含まれるべきです(この部分は今後の作業)

headersHttpはまだ使用されていません。現在パースされるのはendpointsdomain(HTTPのHostヘッダーのこと。実際に接続するIPではありません)のみです。

  • protobufはOrsted C2のProtocol Buffers定義です
  • serverorsted-serverのコードです
  • testには将来的にテストが含まれる予定です
  • toolsにはあなたの全アーセナルが含まれます(./data/clientconf.tomlで参照されます)

インストール&使用方法

翻訳元: https://meterpreter.org/the-ghost-in-the-machine-master-stealth-with-the-orsted-c2-framework/

ソース: meterpreter.org