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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
adaptix-serverless-c2 — AdaptixC2 v1.2 向けのサーバーレス C2 トランスポートプラグイン。AWS Lambda + DynamoDB をリレーインフラストラクチャとして使用します。 | Kitploit
ツール/GitHubGitHub/stillbigjosh/adaptix-serverless-c2
クラウドインフラストラクチャセキュリティペネトレーションテストフレームワークエクスプロイトフレームワーク永続化メカニズムスクリプトと自動化サーバーレスセキュリティポストエクスプロイトクラウドセキュリティコマンド&コントロール

人気

すべて見る →

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

すべてのツールを探索

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

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

adaptix-serverless-c2

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

リポジトリを見る
3041027日前Kitploit レビュー済み

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 がレスポンスをエージェントに返す

コンポーネント

コンポーネントパス目的
Kharon エージェントagent/同梱の Kharon インプラント(C++ ソース)
Terraformdeploy/aws/Lambda + DynamoDB + IAM + KMS インフラストラクチャ
Lambda リレーdeploy/aws/lambda/アウトバウンドポーリングを備えたステートレスな HTTP-to-DynamoDB プロキシ
リスナープラグインlistener/AdaptixC2 プラグイン、DynamoDB ポーリング、Kharon プロトコルブリッジ
Kharon 設定kharon/エージェント/リスナーエクステンダー用の AXS コマンド登録と設定
パッチpatches/BeaconServerless サポート用の AdaptixC2 ソースパッチ
プロファイルprofiles/Lambda URL 用の Malleable HTTP プロファイル
スクリプトscripts/インストール、ビルド、デプロイ、アンインストール

前提条件

  • 認証情報が設定済みの 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. アクセスキー ID とシークレットアクセスキーを保存する

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)

フィールド説明デフォルト
AWS Regionインフラがデプロイされるリージョンus-east-1
Lambda URLTerraform出力からの関数URL(必須)
Relay API KeyTerraformのrelay_api_keyと一致する必要あり(任意)
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秒間アウトバウンドテーブルをポーリングし、リスナーがレスポンスを処理してキューに入れる時間を確保します。これは登録にとって重要です (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
ツールをダウンロード