使用Digital Ocean构建C2基础设施 - 第一部分

本文详细介绍了如何利用Digital Ocean搭建Cobalt Strike团队服务器的C2基础设施,涵盖SSH配置、防火墙规则设置、Let's Encrypt证书部署及自动化脚本使用,适合红队和渗透测试人员参考。

如何使用Digital Ocean构建C2基础设施 - 第一部分

作者:Lee Kagan
注意:本文中提到的技术和工具可能已过时,不适用于当前情况。但本文仍可作为学习机会,并可能更新或集成到现代工具和技术中。

为红队和渗透测试部署攻击性基础设施可能既重复又复杂。作为团队基础设施负责人,我经常重复相同的基线部署。在红蓝对抗中,双方都面临成功发起攻击和成功防御的挑战。

对于红队,我的关注点包括:

  • 稳定性:系统性能和可靠的通信通道
  • 安全性:操作安全(OPSEC)和防御调查者/蓝队
  • 功能性:根据团队需求添加/删除/修改功能

Red Team Infrastructure wiki(https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki)是这一概念的优秀示例和资源。

本文将介绍如何使用Digital Ocean和Cobalt Strike团队服务器以半自动化方式构建基础设施,这是更复杂自动化流程和工具的开始。第二部分将发布更多内容。

构建内容

  • 3个Digital Ocean droplets(用于Cobalt Strike团队服务器的不同角色)
  • 自定义SSH配置
  • 服务器健康监控
  • 团队服务器的防火墙访问
  • 使用Let’s Encrypt实现HTTPS信标

所需准备

  • Cobalt Strike许可证或试用版(可替换为MSF或Empire等)
  • Digital Ocean账户
  • C2K文件(https://github.com/invokethreatguy/C2K)
  • 域名的DNS配置访问(需设置DNS A记录)

基础设施设置步骤(大部分脚本化)

  1. 通过Digital Ocean Web UI部署droplets
  2. SSH到每个droplet,添加新的sudo用户、SSH密钥并传输C2K文件
  3. 限制SSH访问仅限新用户和密钥
  4. 运行C2K构建脚本,包括:
    • 更新系统
    • 安装lterm(用于控制台日志记录,感谢KillswitchGUI的工具:https://github.com/killswitch-GUI)
    • 安装Cobalt Strike的Java依赖
    • 激活Cobalt Strike
    • 替换当前SSH配置为自定义文件
    • 创建防火墙规则
    • 运行HTTPsC2DoneRight.sh(感谢KillswitchGUI的工具:https://github.com/killswitch-GUI)

开始步骤

  1. 登录Digital Ocean控制面板,创建三个droplets。推荐使用Ubuntu 14.04 OS和每月$40的定价。选择地理位置时,从OPSEC角度建议将团队服务器分散到不同地区,甚至不同VPS提供商。
  2. 启用监控功能并附加SSH密钥。
  3. 创建名为“cnc1”、“cnc2”和“cnc3”的droplets。
  4. 创建防火墙规则(通过控制面板或脚本),包括:
    • HTTP和HTTPS(用于HTTP/S信标)
    • DNS UDP和TCP(用于DNS信标)
    • Cobalt Strike团队服务器端口(50050)
    • 自定义SSH端口(7654)
  5. SSH到droplet,手动配置:
    • 为root账户添加密码
    • 添加新用户“demouser”并加入sudoers组
    • 编辑SSHD配置文件(/etc/ssh/sshd_config):
      • 端口改为7654
      • PermitRootLogin设为no
      • 暂时允许密码认证(后改为no)
      • 添加AllowUsers demouser
  6. 传输SSH公钥到demouser账户,禁用密码认证。
  7. 传输C2K文件(通过SCP或wget)并解压。
  8. 运行安装脚本C2Ubuntu.sh:
    • 安装lterm
    • 准备Cobalt Strike依赖
    • 提示输入许可证密钥
    • 复制自定义SSHD配置文件(可选)
    • 设置防火墙规则
    • 重启SSH服务
    • 运行HTTPsC2DoneRight.sh(需提前配置DNS A记录)
  9. 验证SSL访问,停止apache2服务,启动Cobalt Strike团队服务器并加载Amazon配置文件。
  10. 设置HTTPS监听器并测试。

监控设置

在Digital Ocean控制面板中启用监控,创建CPU性能警报策略,可通过电子邮件或Slack通道接收警报。

结论

本脚本处于早期阶段,未来将开发更多自动化功能。第二部分将添加:

  • 自动化本文所有步骤
  • 使用Digital Ocean cloud_config功能
  • 为防御和OPSEC目的添加更多监控(如logwatch、AIDE)
  • 扩展C2以包括每个团队服务器的重定向器

感谢BHIS允许我贡献这篇博客。


Lee Kagan是RedBlack Security的客座博主,拥有近十年的IT和信息安全经验,专注于渗透测试、红队操作和威胁模拟。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计