Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/stillbigjosh/adaptix-serverless-c2
クラウドインフラストラクチャセキュリティペネトレーションテストフレームワークエクスプロイトフレームワーク永続化メカニズムスクリプトと自動化サーバーレスセキュリティポストエクスプロイトクラウドセキュリティコマンド&コントロール

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
レッドチーミング
ペイロード開発
GitHubstillbigjosh/adaptix-serverless-c2

adaptix-serverless-c2

AdaptixC2 v1.2 向けのサーバーレス C2 トランスポートプラグイン。AWS Lambda + DynamoDB をリレーインフラストラクチャとして使用します。

リポジトリを見る
193176日前未レビュー
共有

Adaptix Serverless C2

Severless C2 topology

AWS Lambda + DynamoDB をリレーインフラとして使用する、AdaptixC2 v1.2 向けのサーバーレス C2 トランスポートプラグイン。エージェントのトラフィックは AWS エンドポイントへのアウトバウンド HTTPS として見えるため、C2 サーバー上にインバウンドポートやパブリック IP は不要です。

アーキテクチャ

Kharon Agent (target)
    |
    | HTTPS GET/POST (outbound only, randomly alternated)
    v
AWS Lambda Function URL (stateless relay)
    |
    | Store inbound / Poll outbound (up to 8s)
    v
DynamoDB (inbound + outbound tables)
    ^
    | Poll every 5 seconds
    |
Listener Plugin (inside AdaptixC2)
    |
    | TsAgent API + TsExtenderData (key persistence)
    v
AdaptixC2 Teamserver + UI

データフロー:

  1. Kharon エージェントが暗号化されたチェックインを HTTPS 経由で Lambda Function URL に送信
  2. Lambda が生データを DynamoDB の inbound テーブルに保存
  3. Lambda が最大 8 秒間 outbound テーブルをポーリング(登録時の非同期ギャップを橋渡し)
  4. レスポンスが存在する場合、Lambda がそれを返し、配信済みとしてマーク
  5. AdaptixC2 リスナープラグインが未処理レコードを DynamoDB の inbound テーブルからポーリング
  6. リスナーが Kharon ワイヤプロトコル(LokyCrypt 暗号化)を解析し、エージェントを登録/更新
  7. オペレーターがコマンドを発行すると、リスナーが Kharon 形式で暗号化し、outbound に保存
  8. 次回のチェックイン時に、Lambda がレスポンスをエージェントに返す

コンポーネント

ComponentPathPurpose
Kharon agentagent/同梱の Kharon インプラント(C++ ソース)
Terraformdeploy/aws/Lambda + DynamoDB + IAM + KMS インフラ
Lambda relaydeploy/aws/lambda/アウトバウンドポーリング付きのステートレス HTTP-to-DynamoDB プロキシ
Listener pluginlistener/AdaptixC2 プラグイン、DynamoDB ポーリング、Kharon プロトコルブリッジ
Kharon configskharon/エージェント/リスナーエクステンダー用の AXS コマンド登録と設定
Patchespatches/BeaconServerless サポート用の AdaptixC2 ソースパッチ
Profilesprofiles/Lambda URL 用の Malleable HTTP プロファイル
Scriptsscripts/インストール、ビルド、デプロイ、アンインストール

前提条件

  • 認証情報が設定された AWS アカウント(aws configure)
  • Terraform >= 1.5.0
  • Go >= 1.23(リスナープラグインはサーバーバイナリと一致する GOEXPERIMENT が必要)
  • AdaptixC2 v1.2 がインストール済み
  • mingw ターゲット対応の clang++: apt install clang lld
  • NASM アセンブラ: apt install nasm
  • objcopy: apt install binutils-mingw-w64-x86-64

AWS アカウントのセットアップ

1. デプロイ用の IAM ユーザーを作成

AWS コンソールにて:

  1. IAM > Users > Create user に移動
  2. adaptix-deployer と命名
  3. Attach policies directly を選択
  4. 以下の AWS マネージドポリシーをアタッチ:
    • AmazonDynamoDBFullAccess
    • AWSLambda_FullAccess
    • IAMFullAccess
    • CloudWatchLogsFullAccess
  5. KMS 用のインラインポリシーを追加:
    • Add permissions > Create inline policy > JSON をクリック
    • 以下を貼り付け: {"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"kms:*","Resource":"*"}]}
    • KMSFullAccess と命名
  6. ユーザーを作成し、Security credentials > Create access key に移動
  7. Command Line Interface (CLI) を選択
  8. Access Key ID と Secret Access Key を保存

2. AWS CLI の設定

aws configure
# AWS Access Key ID: <paste access key>
# AWS Secret Access Key: <paste secret key>
# Default region: us-east-1
# Default output format: json

確認:

aws sts get-caller-identity

インストール

ステップ 1: AWS インフラのデプロイ

# Build the Lambda relay binary (cross-compiled for Amazon Linux)
./scripts/build_relay.sh

# Deploy Lambda + DynamoDB + IAM with Terraform
./scripts/deploy_infra.sh

# Note the Lambda Function URL from the output, e.g.:
# lambda_function_url = "https://xxxxx.lambda-url.us-east-1.on.aws"

ステップ 2: AdaptixC2 へのプラグインインストール

./scripts/install.sh /path/to/AdaptixC2

このスクリプトは以下を実行します:

  1. dist/ ディレクトリ(証明書、データベース、プロファイル)をバックアップ
  2. BeaconServerless コネクタサポート用のソースパッチを適用
  3. サーバーバイナリから GOEXPERIMENT フラグを検出
  4. 一致するフラグでリスナープラグイン(.so)をビルド
  5. AdaptixC2 サーバーとエクステンダーを再ビルド
  6. バックアップしたファイル(証明書、データベース、プロファイル)を復元
  7. サーバーレスリスナープラグイン + Kharon エクステンダー設定をインストール
  8. systemd サービスを作成/更新
  9. AdaptixC2 を再起動

ステップ 3: GUI でのリスナー設定

  1. AdaptixC2 Web UI にログイン
  2. Listeners に移動し、新しい BeaconServerless リスナーを作成
  3. Lambda URL をステップ 1 の Function URL に設定
  4. Relay API Key を設定(terraform.tfvars の relay_api_key と一致させる必要あり)
  5. 必要に応じて調整: AWS Region、Poll Interval(デフォルト 5s)、TTL Hours(デフォルト 24)
  6. profiles/lambda_default.json から Malleable プロファイルをアップロード
  7. リスナーを起動

ステップ 4: ペイロードの生成と実行

  1. GUI で BeaconServerless リスナーを選択して Kharon エージェントを生成
  2. フォーマット(Exe、Dll、Svc)とアーキテクチャ(x64)を選択
  3. ターゲット上でペイロードを実行
  4. エージェントは数秒以内にチェックインするはず

設定

Terraform 変数 (deploy/aws/terraform.tfvars)

region        = "us-east-1"
function_name = "adaptix-relay"
relay_api_key = "your-secret-key-here"
tags = {
  Project = "adaptix-serverless"
}

リスナー設定 (AdaptixC2 GUI)

FieldDescriptionDefault
AWS Regionインフラがデプロイされているリージョンus-east-1
Lambda URLTerraform 出力の Function URL(required)
Relay API KeyTerraform の relay_api_key と一致させる必要あり(optional)
Inbound Tableエージェントチェックイン用の DynamoDB テーブルadaptix-inbound
Outbound Tableサーバーレスポンス用の DynamoDB テーブルadaptix-outbound
Poll IntervalDynamoDB をチェックする頻度(秒)5
TTL HoursDynamoDB レコードの有効期限24

主要な技術的詳細

Kharon ワイヤプロトコル

Kharon エージェントは HTTP 上でカスタムバイナリプロトコルを使用します:

  • 新規エージェント(登録): [36-byte UUID][encrypted_checkin_data][16-byte LokyCrypt key]
  • 接続済みエージェント(GetTask): [36-byte UUID][encrypted_payload](末尾キーなし)
  • !接続済みエージェント(キー上書き): ペイロードが小さい場合、TotalLen-16 の 16 バイトキーが UUID 領域に重なります。44 バイトのパケットでは、キーはオフセット 28 から始まり、UUID バイト 28-35 とすべての暗号化データを上書きします。

リスナーはこれら 3 つのフォーマットすべてを検出し、正しく処理します。

Lambda アウトバウンドポーリングループ

Lambda + DynamoDB の非同期性により、Lambda が最初にレスポンスをチェックした時点では、リスナーがインバウンドレコードを処理していない可能性があります。Lambda はインバウンドレコードを保存した後、最大 8 秒間 outbound テーブルをポーリングし、リスナーがレスポンスを処理してキューに入れる時間を確保します。これは登録にとって重要です(Checkin レスポンスは、後の GetTask ではなく、Checkin フェーズ中に到着する必要があります)。

キーの永続化

エージェントの暗号化キーは TsExtenderDataSave/TsExtenderDataLoad(SQLite ベース)を介して永続化されます。これによりサービス再起動後も保持されます。再起動時、リスナーは既知のエージェント ID に遭遇すると、永続ストアからキーを復元します。

GET/POST の処理

Kharon は GET リクエストと POST リクエストをランダムに交互に使用します(HTTP_METHOD_USE_BOTH)。GET リクエストはデータを id クエリパラメータに配置します(プロファイルに従って base64 エンコード)。POST リクエストは生のバイナリを HTTP ボディに配置します。Lambda は両方を透過的に処理します。

OPSEC

  • すべてのエージェントトラフィックは *.lambda-url.*.on.aws エンドポイントへのアウトバウンド HTTPS
  • C2 サーバー上にインバウンドポートは不要
  • DynamoDB レコードは TTL により自動失効
  • CloudWatch ログは KMS で暗号化され、保持期間は 3 日
  • Lambda リレーは API キーヘッダーで認証
  • ドメインフロンティングには CloudFront とカスタムドメインの使用を検討
  • Lambda ポーリングループにより、レスポンスに 0~8 秒のレイテンシが追加される

アンインストール

# Remove plugin from AdaptixC2
./scripts/uninstall.sh /path/to/AdaptixC2

# Destroy AWS infrastructure
cd deploy/aws && terraform destroy

プロジェクト構造

ツールをダウンロード