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
云基础设施安全渗透测试框架漏洞利用框架持久化机制脚本与自动化无服务器安全后渗透利用云安全命令与控制红队Payload 开发
193176天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
stillbigjosh/adaptix-serverless-c2

adaptix-serverless-c2

用于 AdaptixC2 v1.2 的无服务器 C2 传输插件,使用 AWS Lambda + DynamoDB 作为中继基础设施。

查看仓库

Adaptix Serverless C2

Severless C2 topology

用于 AdaptixC2 v1.2 的无服务器 C2 传输插件,使用 AWS Lambda + DynamoDB 作为中继基础设施。Agent 流量表现为发往 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 agent 通过 HTTPS 向 Lambda Function URL 发送加密的 check-in 请求
  2. Lambda 将原始数据存储到 DynamoDB 的 inbound 表中
  3. Lambda 轮询 outbound 表最多 8 秒(弥合注册阶段的异步间隙)
  4. 如果存在响应,Lambda 返回该响应并将其标记为已投递
  5. AdaptixC2 监听器插件轮询 DynamoDB 的 inbound 表以获取未处理的记录
  6. 监听器解析 Kharon 线路协议(LokyCrypt 加密),注册/更新 agent
  7. 当操作员下发命令时,监听器将其加密为 Kharon 格式并存储到 outbound 表中
  8. 在下一次 check-in 时,Lambda 将响应返回给 agent

组件

组件路径用途
Kharon agentagent/捆绑的 Kharon 植入体(C++ 源码)
Terraformdeploy/aws/Lambda + DynamoDB + IAM + KMS 基础设施
Lambda relaydeploy/aws/lambda/无状态 HTTP 到 DynamoDB 代理,带出站轮询
Listener pluginlistener/AdaptixC2 插件、DynamoDB 轮询、Kharon 协议桥接
Kharon configskharon/用于 agent/listener 扩展器的 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(默认 5 秒)、TTL Hours(默认 24)
  6. 上传 profiles/lambda_default.json 中的 malleable 配置文件
  7. 启动监听器

步骤 4:生成并执行 Payload

  1. 在 GUI 中,选择 BeaconServerless 监听器生成 Kharon agent
  2. 选择格式(Exe、Dll、Svc)和架构(x64)
  3. 在目标上执行 payload
  4. Agent 应在数秒内 check-in

配置

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 输出中的 Function URL(必填)
Relay API Key必须与 Terraform 的 relay_api_key 匹配(可选)
Inbound Table用于 agent check-in 的 DynamoDB 表adaptix-inbound
Outbound Table用于服务器响应的 DynamoDB 表adaptix-outbound
Poll Interval检查 DynamoDB 的频率(秒)5
TTL HoursDynamoDB 记录过期时间24

关键技术细节

Kharon 线路协议

Kharon agent 使用基于 HTTP 的自定义二进制协议:

  • 新 agent(注册): [36-byte UUID][encrypted_checkin_data][16-byte LokyCrypt key]
  • 已连接 agent(GetTask): [36-byte UUID][encrypted_payload](无尾部密钥)
  • !Connected agent(密钥覆盖): 当 payload 较小时,位于 TotalLen-16 的 16 字节密钥会重叠到 UUID 区域。对于 44 字节的数据包,密钥从偏移 28 开始,覆盖 UUID 的第 28-35 字节以及所有加密数据。

监听器会检测所有三种格式并正确处理它们。

Lambda 出站轮询循环

Lambda + DynamoDB 的异步特性意味着当 Lambda 首次检查响应时,监听器尚未处理 inbound 记录。Lambda 在存储 inbound 记录后,会轮询 outbound 表最多 8 秒,给监听器时间来处理并排队响应。这对于注册至关重要(Checkin 响应必须在 Checkin 阶段到达,而不是在后续的 GetTask 阶段)。

密钥持久化

Agent 加密密钥通过 TsExtenderDataSave/TsExtenderDataLoad(基于 SQLite)持久化。这可以在服务重启后保留。重启后,当监听器遇到已知的 agent ID 时,会从持久化存储中恢复密钥。

GET/POST 处理

Kharon 在 GET 和 POST 请求之间随机交替(HTTP_METHOD_USE_BOTH)。GET 请求将数据放在 id 查询参数中(根据配置文件进行 base64 编码)。POST 请求将原始二进制数据放在 HTTP body 中。Lambda 透明地处理这两种情况。

OPSEC

  • 所有 agent 流量都是发往 *.lambda-url.*.on.aws 端点的出站 HTTPS
  • C2 服务器无需入站端口
  • DynamoDB 记录通过 TTL 自动过期
  • CloudWatch 日志使用 KMS 加密,保留 3 天
  • Lambda relay 通过 API key 请求头进行身份验证
  • 考虑使用 CloudFront 自定义域名进行域名前置
  • Lambda 轮询循环会给响应增加 0-8 秒延迟

卸载

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

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

项目结构

adaptix-serverless-c2/
  agent/
    src_beacon/              # Kharon implant (C++ source)
    src_loader/              # Loader wrappers (EXE, DLL, SVC)
  deploy/
    aws/
      main.tf                # Lambda + DynamoDB + IAM + KMS
      variables.tf           # Terraform variables
      outputs.tf             # Output Lambda URL and table ARNs
      lambda/
        main.go              # Lambda relay handler
  listener/
    pl_main.go               # AdaptixC2 plugin entry (Teamserver interface)
    pl_transport.go          # DynamoDB polling, Kharon protocol, LokyCrypt
    ax_config.axs            # Listener creation UI
    config.yaml              # Plugin metadata
  kharon/
    agent_kharon/            # AXS commands + config for Kharon agent extender
    listener_kharon_http/    # AXS + config for Kharon HTTP listener extender
  patches/                   # AdaptixC2 source patches
  profiles/
    lambda_default.json      # Malleable profile for Lambda URL
  scripts/
    install.sh               # Full install into AdaptixC2
    uninstall.sh             # Reverse patches + cleanup
    build_relay.sh           # Cross-compile Lambda binary
    build_agent.sh           # Build Kharon agent shellcode
    build_objects.sh         # Build beacon objects
    deploy_infra.sh          # Terraform init + apply
下载工具