-
-
实战分享:构建高效平台型C2的经验总结
-
发表于: 5天前 1171
-
作者@一份布丁
在红队演习中,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,从而建立命令与控制通道。这种架构允许攻击者远程执行命令、管理植入物,并接收从受控系统中提取的数据。
我们来分析implant(植入体)在整个过程中到底做了什么
- Implant首先需要与部署在VPS上的TeamServer建立一个安全、可靠的通信通道。这通常通过HTTP、HTTPS或DNS等标准协议实现,以确保数据传输的隐蔽性和稳定性。
- Implant启动后,会立即收集目标主机的基础信息,如操作系统版本、网络配置、用户名等,这些信息统称为元数据(Metadata)。收集完成后,Implant会将这些元数据发送回TeamServer,标志着该主机已成功上线,可供进一步操作。
- 为了减少被检测的风险,Implant通常会在完成初始通信后进入休眠状态。这种设计使得Implant在非活跃状态下几乎不产生任何网络流量,从而降低了被发现的可能性。
- 命令控制的方式一般分为会话模式(Session Mode)和信标模式(Beacon Mode),在会话模式下,Implant与TeamServer之间保持持续的连接,允许攻击者即时下发指令并接收响应。这种方式虽然提供了无延迟的交互体验,但由于其持续的网络活动,更容易被防御系统识别。信标模式是更为隐蔽且常用的方式。Implant在休眠一段时间后,定期向TeamServer发起请求,检查是否有新的命令。信标模式通过间歇性的通信减少了连续的网络流量,显著降低了被检测的风险。
- implant在休眠结束后,需要从TeamServer接收到命令(例如,shell whoami),它会解析并执行该命令(这里实际上不是接收命令,而是去请求获取命令,implant的所有操作和执行结果都是通过请求的方式进行单向访问)。执行完毕后,Implant会将结果封装并通过相同的通信通道发送回TeamServer。随后,再次进入休眠状态,等待下一次唤醒周期的到来。
- 这一过程是循环进行的,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可以直接对上线主机进行命令控制。
运行截图:
主机上线
命令控制
兼容cobaltstrike bof
除了Github外,大量云存储服务、AI应用、开发者平台等都可以作为命令控制的服务节点,需要大家开放想象,根据实战场景,寻找最优通信节点。
万物皆可C2,在当今的网络攻防环境中,红队攻击者必须充分考虑到目标的应用场景,将命令与控制(C2)通信巧妙地隐藏在正常的通信流量中可以有效地混淆攻击流量,使其与合法用户的活动难以区分,攻击流量变得更加难以检测、封禁或转化为有效的威胁情报。
注: 由于笔者水平有限,文中可能存在疏漏或不准确之处,恳请读者多多指正。如有任何建议或反馈,欢迎通过微信(vx:lxlxaiaiai)联系笔者。感谢您的支持与帮助!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- 实战分享:构建高效平台型C2的经验总结 1172
- [原创]浅谈目录权限导致的文件劫持 1589
- [原创]混淆还原的几种方式实践 1976
- [原创]指针分析与Java反序列化利用链挖掘实践(一) 1643
- [原创]什么?IL2CPP APP分析这一篇就够啦! 3504