从流量中检测C2通信
1. C2的基础
什么是C2?
C2, Command and Control, 命令与控制。主要是指攻击者通过与恶意软件的交互,对被害者进行控制,从而实施恶意活动的含义。从语义上来讲,C2即可用作为名词(基础设施)也可以作为动词(交互的行为),例如C2服务器(名词做定语)、攻击者进行C2。
什么阶段会有C2?
对于我这种新手来说,在面试的时候被问到一个问题,就是C2是在什么阶段进行的。当时脑子一下子有点懵,觉得C2不是就在中马后进行嘛。后在才想明白,这个问题其实背后考察的是对基本的攻击链路熟悉情况。我们先从杀伤链上来讲,主要分为以下的步骤:
- 侦查(Reconnaissance)
- 武器化(Weaponization)
- 散布/载荷投递(Delivery)
- 恶用/漏洞利用(Exploitation)
- 设置/驻留(Installation)
- 命令与控制(Command & Control)
- 目标达成/恶意活动(Action on Objectives)
C2的作用是什么?
以上的这种杀伤链是适用于普遍的网络入侵的,但在APT攻击中,APT攻击的目的往往不是为了破坏,而是为了窃密、监听[1]。
因此,在APT攻击中,C2通信常会有以下的用处:
- 用于攻击者的指令下发
- 用于资源下发和数据上传
因此C2架构的总体作用可以理解为:
C2 架构也就可以理解为,恶意软件通过什么样的方式获取资源和命令,以及通过什么样的方式将数据回传给攻击者。[1]
2. C2的技术
从使用的协议上进行分类
- HTTP/HTTPS
- FTP
- DNS
- SMTP
References
[1] 小议 APT 攻击中的C2架构, PI4net, https://zhuanlan.zhihu.com/p/54810155