freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

实战分享:构建高效平台型C2的经验总结
2024-12-12 21:39:09
所属地 北京

在红队演习中,C2(指挥与控制,Command & Control)系统作为关键的基础设施,对行动的成功起着至关重要的作用。随着攻防技术的不断进化,一些C2工具因其卓越性能和适应性而获得了广泛的认可。然而,面对日益先进的防御机制,红队成员通常需要对这些工具进行定制化开发和优化,以满足特定任务的需求。

本文将深入探讨一种基于在线平台的C2架构设计,该架构旨在通过实践构建一个具有更强隐蔽性和持久性的自研C2系统。我们将介绍如何利用在线服务的特点,来创建一个既能在复杂网络环境中保持低调运行,又能有效支持红队操作的指挥控制系统。

常见C2架构介绍

在国内,商用化的C2(指挥与控制,Command & Control)解决方案相对稀缺,因此红队和安全研究人员更多依赖于开源的C2框架,如Havoc、Sliver、Mythic等,或是对商业化的C2工具(例如Cobalt Strike、BRC4、Nighthawk C2等)进行破解或二次开发。这些工具虽然来源不同,但它们在通信原理上却有着相似之处,普遍采用HTTP、HTTPS、DNS等标准互联网协议来实现攻击者与受控目标之间的通信。
典型的C2操作流程包括:首先,在一台VPS(虚拟专用服务器)上部署TeamServer作为中央控制节点;然后,攻击者通过本地客户端连接到该TeamServer;最后,生成并部署恶意软件,使其回连至TeamServer,从而建立命令与控制通道。这种架构允许攻击者远程执行命令、管理植入物,并接收从受控系统中提取的数据。
image

我们来分析implant(植入体)在整个过程中到底做了什么

  1. Implant首先需要与部署在VPS上的TeamServer建立一个安全、可靠的通信通道。这通常通过HTTP、HTTPS或DNS等标准协议实现,以确保数据传输的隐蔽性和稳定性。

  2. Implant启动后,会立即收集目标主机的基础信息,如操作系统版本、网络配置、用户名等,这些信息统称为元数据(Metadata)。收集完成后,Implant会将这些元数据发送回TeamServer,标志着该主机已成功上线,可供进一步操作。

  3. 为了减少被检测的风险,Implant通常会在完成初始通信后进入休眠状态。这种设计使得Implant在非活跃状态下几乎不产生任何网络流量,从而降低了被发现的可能性。

  4. 命令控制的方式一般分为会话模式(Session Mode)和信标模式(Beacon Mode),在会话模式下,Implant与TeamServer之间保持持续的连接,允许攻击者即时下发指令并接收响应。这种方式虽然提供了无延迟的交互体验,但由于其持续的网络活动,更容易被防御系统识别。信标模式是更为隐蔽且常用的方式。Implant在休眠一段时间后,定期向TeamServer发起请求,检查是否有新的命令。信标模式通过间歇性的通信减少了连续的网络流量,显著降低了被检测的风险。

  5. implant在休眠结束后,需要从TeamServer接收到命令(例如,shell whoami),它会解析并执行该命令(这里实际上不是接收命令,而是去请求获取命令,implant的所有操作和执行结果都是通过请求的方式进行单向访问)。执行完毕后,Implant会将结果封装并通过相同的通信通道发送回TeamServer。随后,再次进入休眠状态,等待下一次唤醒周期的到来。

  6. 这一过程是循环进行的,Implant根据设定的时间间隔或特定条件不断重复上述步骤,确保能够及时响应来自TeamServer的新指令,并将执行结果反馈给攻击者。

深入了解植入体的工作流程后,我们可以认识到它在C2架构中占据着至关重要的位置。因此,在进行C2系统的武器开发时,必须将更多资源和精力投入到植入体的设计与优化中。开发过程中,应尽量避免使用第三方库和直接调用Windows API,转而采用自研代码和内置功能,以减少攻击面并提高隐蔽性。同时,持续优化植入体的核心逻辑,确保其轻量化、高效运行,从而在复杂的网络环境中具备更强的对抗能力。这种策略不仅提升了植入体的稳定性和隐蔽性,还增强了整个C2系统的实战效能。

现存痛点问题

在实战场景中,攻击者通常会使用海外注册的域名加云函数等方式来隐藏自己的C2通信地址,这种方法很容易受到威胁情报和恶意域名巡查等SOC手法的针对。当我们使用同一个C2上线控制了多台主机,蓝队成员一旦排查到一个C2回连地址,就会从DNS侧封禁域名解析,从而导致我们同时失去了多台主机权限。
常见的C2工具特征过于明显,如CS生成的shellcode/implant过于固定,导致杀毒软件很容易查杀其特征,所以通常不得不去构建复杂的loader,或者二开implant去对抗杀毒软件的查杀。

平台型C2-披着羊皮的狼

平台型C2的核心在于充分利用在线平台的现有功能,将其作为接收和下发命令、传输执行结果的服务端。这样一来,植入体(implant)的所有通信均通过这些在线平台进行,不仅极大地提升了通信的隐蔽性,还增强了系统的对抗能力。借助在线平台的广泛使用和正常流量掩护,C2通信可以更好地规避检测,确保长期稳定的控制通道。这种设计使得攻击活动更加难以被发现和追踪,为红队行动提供了强大的支持。

平台型C2实践-Redeemer C2

仓库地址:https://github.com/Cherno-x/Redeemer-C2

Redeemer C2是一款使用Rust编写的平台型C2,旨在滥用可信域名的API平台进行命令控制,用来对抗恶意域名巡查,是一款专注于权限维持的C2工具。

  • 目前已经支持的平台:Github

Github模块利用了github仓库自身的功能,巧妙的利用其功能特性,利用GitHub的Issue标签(labels)来区分上线主机,利用GitHub的Issue和Comment功能来下发命令和接收结果,implant通过调用GitHub API与私密仓库进行通信,攻击者利用Client可以直接对上线主机进行命令控制。
image

运行截图:
主机上线
image
命令控制
image
兼容cobaltstrike bof
image

除了Github外,大量云存储服务、AI应用、开发者平台等都可以作为命令控制的服务节点,需要大家开放想象,根据实战场景,寻找最优通信节点。

万物皆可C2,在当今的网络攻防环境中,红队攻击者必须充分考虑到目标的应用场景,将命令与控制(C2)通信巧妙地隐藏在正常的通信流量中可以有效地混淆攻击流量,使其与合法用户的活动难以区分,攻击流量变得更加难以检测、封禁或转化为有效的威胁情报。

注:由于笔者水平有限,文中可能存在疏漏或不准确之处,恳请读者多多指正。如有任何建议或反馈,欢迎通过微信(vx:lxlxaiaiai)联系笔者。感谢您的支持与帮助!

# C2 # 红队攻防
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录