-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCS-FAQ
439 lines (285 loc) · 27.3 KB
/
CS-FAQ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
[TOC]
## Cobalt Strike 是什么?主要有什么功能?
**Cobalt Strike** 是一款商业化的渗透测试工具和红队攻击框架,广泛用于模拟先进的网络攻击(例如APT攻击)以及测试组织的网络防御能力。Cobalt Strike 提供了一整套用于模拟攻击者行为的功能,允许红队或渗透测试人员通过其工具模拟真实的攻击场景,以便测试和评估目标网络的安全性。
### Cobalt Strike的主要功能
1. **后渗透测试与持久化**:
- Cobalt Strike 允许攻击者在突破目标系统后进行进一步的渗透操作,如获取并维持对目标系统的访问。
- 通过其强大的持久化机制,攻击者可以在目标系统中隐藏自己,确保长时间访问。
- 支持利用系统漏洞、修改注册表或创建计划任务等方式实现持久化。
2. **命令与控制 (C2) 通信**:
- Cobalt Strike 提供了多种隐蔽的命令与控制(C2)通信方式,允许攻击者通过加密通道与目标主机保持联系。
- 支持**Beacon**(其主要代理)在各种协议(如HTTP、HTTPS、DNS等)中使用,具备加密的特性,使其难以被检测。
- 通过Cobalt Strike,攻击者可以与被攻击系统建立隐蔽且持久的通信通道,传输命令和获取数据。
3. **横向移动**:
- Cobalt Strike 可以模拟横向移动,帮助攻击者从一台主机转移到网络中的其他主机。
- 通过“Pass-the-Hash”、“Pass-the-Ticket”和其他技术,攻击者可以绕过身份验证,扩展其对目标网络的控制。
4. **社会工程学工具**:
- Cobalt Strike 提供了强大的社会工程学工具,如恶意文档(例如恶意Word或PDF文件)和钓鱼邮件模板,可以用来诱使目标用户打开并执行恶意代码。
- 它支持生成伪造的钓鱼页面(例如登录页面)以窃取凭证。
5. **信息收集与情报收集**:
- Cobalt Strike 能够在被攻陷的系统中执行信息收集操作,例如列出系统信息、网络连接、用户信息、文件目录等。
- 支持对网络环境的映射与分析,帮助攻击者在攻击过程中进一步发现目标环境中的潜在弱点。
6. **漏洞利用与权限提升**:
- Cobalt Strike 提供了多种漏洞利用工具,帮助攻击者通过已知漏洞(如CVE)进一步获得系统访问权限。
- 支持提权操作,如利用Windows系统中的漏洞或配置问题提升权限,以获得管理员权限。
7. **反检测与防御绕过**:
- Cobalt Strike 配备了一些反检测功能,能够规避常见的防病毒软件和安全工具的监测。
- 它能够通过加密、混淆技术以及替换攻击方式(如替换Payload或修改C2协议)避免被传统的安全防护系统发现。
8. **集成Metasploit**:
- Cobalt Strike 与 **Metasploit** 框架有很好的集成,Metasploit 的一些漏洞利用模块可以直接在 Cobalt Strike 中调用,增强攻击者的能力。
- Cobalt Strike 可以直接使用 Metasploit 的漏洞利用工具以及 Payload,进行攻击。
9. **报告与后期分析**:
- Cobalt Strike 允许生成详细的报告,记录攻击过程中的关键事件和所采取的行动,供渗透测试人员和安全团队进一步分析和改进防御策略。
10. **自动化攻击与模拟**:
- Cobalt Strike 可以进行一系列自动化攻击任务,包括密码爆破、凭证填充(credential stuffing)等,
[Something went wrong, please try again later.]
**Cobalt Strike** 是一种合法的商业化渗透测试工具,广泛用于网络安全领域,尤其是进行**红队(Red Team)** 演练和 **攻击模拟**。它模拟真实世界的高级持续威胁(APT)攻击,帮助安全团队识别和修复网络和系统中的漏洞。Cobalt Strike 的功能可以让渗透测试人员、红队成员以及安全研究人员模拟攻击者的行为,验证企业安全防御措施的有效性。
尽管Cobalt Strike原本的设计目的用于合法的安全测试和研究,它也被不法分子滥用作为攻击工具,成为了黑客和恶意攻击者的常用工具之一。
### Cobalt Strike的主要功能II
Cobalt Strike 的功能非常强大,能够模拟各类攻击和执行复杂的后渗透攻击任务。其功能主要可以分为以下几类:
#### 1. **社会工程学工具**
- **钓鱼攻击**:Cobalt Strike 提供了简单易用的钓鱼攻击框架,可以帮助用户生成恶意电子邮件、钓鱼网页、恶意附件等,模拟攻击者通过社会工程学手段获取初步访问权限。
- **恶意文档**:通过文档宏或其他方式执行恶意代码,模拟基于文档的攻击。
#### 2. **初步访问与命令控制(C2)**
- **恶意载荷生成**:Cobalt Strike 可以生成各种恶意载荷,如 Java、PowerShell、exe 文件等,用于通过漏洞、钓鱼等方式执行。
- **命令与控制(C2)**:Cobalt Strike 通过高度隐蔽的网络通信方式(如 HTTP、HTTPS、DNS、SMB、甚至隐蔽的通信协议)建立与受害机器的双向通信。
- **Beacon**:Cobalt Strike 的主要后渗透工具是“Beacon”,它是一种灵活的恶意载荷,用于维持命令和控制通道。Beacon 可以通过不同的通信协议(如 DNS、HTTP/HTTPS、SMB 等)与攻击者的 C2 服务器进行通信。
#### 3. **横向移动**
- **凭证收集与传递**:Cobalt Strike 可以收集存储在目标系统中的凭证(如 Windows 凭证、Kerberos票证等),并利用这些凭证在网络中横向移动,访问其他系统。
- **凭证爆破**:通过暴力破解或利用泄露的凭证尝试进入其他系统。
- **SMB 和 RDP 滥用**:利用 SMB 或 RDP 等协议进行横向渗透,突破网络中的隔离。
#### 4. **持久化与隐蔽性**
- **后门与持久化机制**:Cobalt Strike 可以在目标系统上安装后门程序,使攻击者在目标系统上长期维持控制权限。支持多种持久化手段,如利用计划任务、注册表键值、Windows 服务等。
- **反沙箱与反检测技术**:Cobalt Strike 支持反沙箱、反病毒软件和反虚拟机等检测技术,帮助攻击者避开安全防护工具的检测。
#### 5. **信息收集与侦察**
- **系统信息发现**:Cobalt Strike 提供了一系列信息收集功能,允许攻击者扫描目标网络,收集系统信息(如操作系统版本、已安装程序、网络配置等)。
- **目录服务枚举**:可以利用已获得的凭证进行 Active Directory 枚举,发现域控制器、共享资源、组成员等信息。
#### 6. **恶意行为模拟与攻击**
- **注入与绕过技术**:Cobalt Strike 支持内存注入、DLL 注入等技术,允许攻击者在目标系统上直接运行恶意代码而不触发反病毒软件。
- **资源耗尽攻击**:例如,通过发起大量的网络连接或执行计算密集型任务,模拟对目标系统的拒绝服务(DoS)攻击。
#### 7. **命令与控制通道的高级功能**
- **DNS隧道**:Cobalt Strike 支持通过 DNS 隧道来进行数据传输,这是绕过传统防火墙和网络检测系统的常见技术。
- **HTTPS 通信**:利用 HTTPS 隧道进行加密通信,使得网络流量难以被检测到。
- **逆向连接和反向Shell**:Cobalt Strike 可以利用反向Shell技术,在攻击者和受害者之间建立通信。
#### 8. **后渗透操作**
- **数据窃取**:Cobalt Strike 支持从目标计算机收集敏感数据,包括文件、密码、证书等。
- **数据导出**:将收集到的数据导出并发送回攻击者的服务器。
- **模拟破坏活动**:模拟勒索软件、数据销毁等恶意活动,以测试目标系统的应急响应能力。
#### 9. **报告与审计**
- **攻击演练报告**:Cobalt Strike 可以生成详细的攻击演练报告,记录攻击者的所有活动和执行的命令,便于后续的安全审计和分析。
### Cobalt Strike 的合法与非法用途
- **合法用途**:
- **渗透测试与红队演练**:Cobalt Strike 在安全行业中被广泛用于合法的渗透测试与红队活动。安全专家使用它来模拟高级持续威胁(APT)攻击,帮助企业评估其安全防御的有效性。
- **安全研究与培训**:一些安全研究机构和培训公司使用 Cobalt Strike 来模拟攻击场景,并为学员提供实践经验。
- **非法用途**:
- **黑客攻击**:由于其功能强大且灵活,Cobalt Strike 也被不法分子滥用,成为恶意攻击者的工具。攻击者可以使用它进行网络渗透、数据窃取、勒索软件攻击等。
- **供应链攻击**:Cobalt Strike 也被黑客用来在组织的供应链中进行攻击,感染多家企业,达到大规模渗透的目的。
### 总结
Cobalt Strike 是一款功能强大的渗透测试工具,能够模拟真实的网络攻击行为,并为安全专业人员提供丰富的攻击手段与攻击后渗透技术。尽管它最初是设计用于合法的渗透测试和红队活动,但由于其强大的功能,常被滥用为恶意攻击工具,因此被视为网络安全领域中的双刃剑。使用时必须遵循合法、道德的安全实践,避免滥用它进行非法活动。
## Cobalt Strike 的Malleable C2是什么?有什么功能?如何创建和使用?
### **Cobalt Strike 的 Malleable C2**
**Malleable C2** 是 Cobalt Strike 中的一项功能,它允许用户定制与命令与控制(C2)服务器之间的通信流量模式。这项功能非常强大,因为它可以帮助用户伪装 C2 流量,绕过安全设备的检测,从而提高攻击活动的隐蔽性和成功率。
**Malleable C2** 的核心目的是使攻击者能够控制 Beacon 和 C2 服务器之间的通讯格式。这包括可以修改 HTTP、HTTPS、DNS、SMB 等协议的请求和响应,甚至是加密数据的结构。通过这种方式,攻击者可以使 Cobalt Strike 的流量看起来像是正常的网络流量,从而绕过防火墙、入侵检测系统(IDS)和入侵防御系统(IPS)的监控。
### **Malleable C2 的功能**
1. **定制化协议头和数据格式**:
- 你可以自定义 C2 通信中的协议头(如 HTTP 请求头、DNS 查询头等),使得流量伪装成看起来像是合法的流量。
- 例如,HTTP 请求的 User-Agent 可以设置为某些常见的 Web 服务或浏览器字符串,使得流量难以被检测。
2. **自定义通信模式**:
- **Malleable C2** 允许你改变数据包的大小、内容、时延等,模拟常见的网络流量模式,减少被安全设备识别的风险。
- 可以设置 Beacon 的轮询行为(Beaconing),包括 Beacon 请求的频率、数据大小、以及从 C2 服务器接收到的数据大小。
3. **数据加密与编码**:
- 可以对数据进行加密或编码,确保即便攻击者的流量被捕获,也难以解析其中的敏感信息。
- 可以通过各种方法(如 Base64 编码、SSL/TLS 加密)对传输的数据进行处理,从而增加对安全防御系统的隐蔽性。
4. **伪装成合法流量**:
- 通过 **Malleable C2**,攻击者能够将 Cobalt Strike 的流量伪装成更常见的网络协议流量(如 HTTPS、DNS 查询等),以便于避开防火墙和 IDS。
- 比如,攻击者可以使 Cobalt Strike 使用特定的 DNS 查询来进行通信,使其看起来像是正常的 DNS 请求。
5. **简化反向代理设置**:
- **Malleable C2** 使得配置反向代理变得更加容易。攻击者可以通过设置和调整代理的行为,让 Cobalt Strike 的流量看起来像是来自合法的 Web 服务器,从而绕过防火墙的限制。
6. **攻击重定向与高级控制**:
- 允许攻击者通过 C2 指令控制 Beacon 的行为(如执行特定的操作、改变 Beacon 的存活时间、命令的输出格式等)。
### **如何创建和使用 Malleable C2**
1. **创建 Malleable C2 配置文件**
在 Cobalt Strike 中,Malleable C2 的配置是通过**Malleable C2 profiles** 实现的,这些配置文件允许你控制 Beacon 与 C2 服务器之间的流量。你可以使用自定义的 **profile** 来定制流量模式。
- 在 Cobalt Strike 中,打开 **Cobalt Strike** 窗口,点击 **"Cobalt Strike"** -> **"Malleable C2 Profiles"**,然后选择 **New**。
- 你可以选择一个已有的模板作为基础,或者创建一个全新的配置。
2. **编辑 Malleable C2 配置文件**
配置文件通常是以文本格式(YAML 或类似格式)编写的,内容包括如何修改数据的大小、频率、加密方式、伪装协议等。
例如,一个简单的 HTTP C2 配置可能包括如下部分:
```yaml
headers {
user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
referer "https://example.com"
}
beacon {
interval 30
jitter 15
retries 5
}
communication {
request {
method "GET"
path "/api/v1/command"
headers {
"Accept-Encoding" "gzip, deflate"
}
}
response {
method "POST"
body "encrypted_payload_here"
}
}
```
这个例子定义了 C2 通信的 HTTP 请求头和 Beacon 的请求频率(例如:每30秒请求一次,最多重试5次)。
3. **使用 Malleable C2 配置文件**
一旦你编写或选择了一个 Malleable C2 配置文件,你就可以将它应用到 Beacon 上:
- 在 **Cobalt Strike** 中,选择一个已创建的 **Beacon Payload**,并使用 Malleable C2 配置文件来修改其 C2 通信。
- 在加载 Beacon 时,选择使用这个配置文件,这样 Beacon 的 C2 通信就会按照你定义的方式进行。
4. **运行并测试 Cobalt Strike Beacon**
- 启动 Beacon 后,它将根据你定义的 Malleable C2 配置与 C2 服务器进行通信。
- 你可以通过监控网络流量来验证这些自定义配置是否生效,确保流量伪装成功,且没有被 IDS/IPS 检测到。
### **Malleable C2 的使用场景**
1. **红队渗透测试**:
- 在进行红队测试时,Malleable C2 允许渗透测试人员伪装 C2 流量,绕过企业防御系统(如防火墙、IDS、IPS)的监测,使测试更具隐蔽性。
2. **APT 模拟**:
- 高级持续性威胁(APT)攻击通常会利用高级的 C2 隐蔽技术来避免被检测。Malleable C2 提供了伪装成正常流量的能力,使得模拟的攻击更具真实性。
3. **避开防火墙和 IDS/IPS**:
- 在面对严格的网络防护(如高灵敏度的入侵检测系统)时,Malleable C2 可以帮助攻击者绕过这些防御,保持对目标系统的控制。
### **总结**
**Malleable C2** 是 Cobalt Strike 中一项非常强大的功能,旨在通过自定义 C2 流量的格式、头信息、加密和通信协议等,使攻击者的行为更加隐蔽,从而绕过各种安全监控和防御系统。通过灵活配置 **Malleable C2 profiles**,渗透测试人员和红队成员能够模拟更加高级的攻击手段,在进行安全评估时确保不被检测。
## Cobalt Strike 的Beacon是什么?有什么功能?如何创建和使用?
**Cobalt Strike 的 Beacon** 是该工具中的一个核心组件,负责在攻击者和被攻击目标之间建立并维持通信通道。它的主要作用是作为恶意载荷在受害者系统上运行,通过多种通信协议与攻击者的命令与控制(C2)服务器进行数据交换。Beacon 支持许多功能,能够帮助攻击者在受害主机上进行多种后渗透操作,并保持对目标的持久控制。
### **Beacon 的功能**
1. **命令与控制(C2)通信**:
- **Beacon** 主要功能是与攻击者的 C2 服务器建立连接,并定期轮询(也称为 "Beaconing")以接收命令。
- 它可以使用多种隐蔽的通信协议,如 **HTTP、HTTPS、DNS、SMB、TCP** 等,以绕过网络防火墙和IDS/IPS等安全监控系统。
2. **信息收集与侦察**:
- **Beacon** 可以收集目标机器的信息,如系统信息(操作系统版本、网络配置、用户信息等)。
- 它支持**本地凭证收集**,可以从目标系统提取 Windows 凭证、用户名和密码等敏感信息。
- 支持 **Active Directory** 的查询和枚举,包括枚举域信息、组成员等。
3. **横向移动与权限提升**:
- Beacon 支持 **横向渗透**,利用已收集的凭证在网络中其他系统间进行横向移动。
- 它还支持 **利用漏洞** 执行本地提权和远程提权攻击。
4. **后渗透操作**:
- **Beacon** 支持远程执行任意代码,可以执行 **Shellcode** 注入,执行 PowerShell 脚本等。
- 它能够上传/下载文件、执行本地命令、截图、录制键盘输入等。
- 可以通过反向 Shell、反向 TCP 连接等方式与攻击者建立连接。
5. **持久化与隐蔽性**:
- Beacon 允许在目标系统上设置 **持久化机制**,如创建新的计划任务、注册表键或 Windows 服务,以便在目标机器重启后保持控制。
- 它也具备 **反沙箱技术**,避免被虚拟机环境、调试工具或沙箱分析环境检测到。
6. **隐蔽性与抗检测**:
- 支持 **数据加密** 和 **流量伪装**,通过各种加密方式(如 SSL/TLS 加密)隐藏其通信内容。
- 支持 **DNS 隧道**,即利用 DNS 请求和响应通道进行数据传输,绕过防火墙。
### **如何创建和使用 Beacon**
创建和使用 Beacon 的步骤通常包含以下几个步骤:
#### 1. **生成 Beacon 载荷**
- 在 Cobalt Strike 中,攻击者首先需要生成 Beacon 载荷。具体步骤如下:
1. 打开 Cobalt Strike 工具。
2. 选择 **"Attacks"** -> **"Packages"** -> **"Payload Generator"**。
3. 选择载荷类型为 **Beacon**,并指定通信协议(如 HTTP、DNS、HTTPS 等)。
4. 设置相关参数,如 C2 服务器的 IP 地址和端口等信息。
5. 生成并下载载荷文件(通常是 `.exe`、`.dll` 或者 PowerShell 脚本)。
#### 2. **部署 Beacon 载荷到目标**
- **部署载荷** 通常有以下几种方式:
- **钓鱼攻击**:将恶意载荷嵌入钓鱼邮件或钓鱼网站,诱使受害者下载并运行载荷。
- **漏洞利用**:通过现有的漏洞(如 RDP、SMB 漏洞)将 Beacon 上传到目标系统并执行。
- **社会工程学攻击**:诱使目标通过社会工程学手段运行恶意载荷。
- **手动传输**:直接通过物理接入(如 USB 驱动器)或其他方式上传和执行载荷。
#### 3. **建立 C2 通信**
- 一旦 Beacon 成功部署并在目标机器上运行,它将开始与攻击者的 C2 服务器通信。具体的步骤如下:
1. 在 Cobalt Strike 中,配置 C2 服务器(可以是 HTTP、DNS、SMB 等协议)。
2. 让 Beacon 使用指定的协议与 C2 服务器建立通信,并等待来自攻击者的指令。
3. 一旦连接建立,攻击者可以通过 Cobalt Strike 控制 Beacon 执行各种命令和操作。
#### 4. **执行命令与操作**
- 当 Beacon 与 C2 服务器成功连接后,攻击者可以开始执行各种操作,例如:
- 在目标系统上执行 shell 命令。
- 执行 PowerShell 脚本或其他自定义代码。
- 收集目标主机信息。
- 进行横向渗透,利用凭证访问其他系统。
#### 5. **保持隐蔽性与持久化**
- 攻击者可以通过 **Beacon** 设置持久化机制,确保攻击在目标系统重启后仍能存活。
- 可以通过 **Beacon** 躲避检测,例如通过加密流量、DNS 隧道、或使用隐蔽的通信协议。
#### 6. **监控与调整**
- Beacon 在运行时,攻击者可以实时监控它的活动,并根据需要调整其行为。
- 攻击者可以使用 Cobalt Strike 的 **pivoting** 功能,在网络中进一步渗透。
- 攻击者还可以通过 **Beacon** 触发自定义的 **脚本和工具**,以便获得更深的控制。
### **Beacon 的典型使用场景**
- **红队演练**:模拟攻击者攻击真实环境,测试组织的防御能力。
- **渗透测试**:评估网络和系统的安全性,寻找潜在的漏洞。
- **APT 模拟**:通过高隐蔽性和多阶段攻击方式,模拟先进的持续性威胁(APT)攻击。
- **恶意攻击**:网络犯罪分子可能滥用 Beacon 进行数据窃取、勒索软件攻击或其他非法活动。
### 总结
**Beacon** 是 Cobalt Strike 中的一个强大功能模块,旨在帮助安全专家模拟攻击者的行为,执行复杂的渗透测试与后渗透操作。它不仅支持多种隐蔽的通信方式,还提供了大量的攻击手段和持久化机制,使攻击者能够在目标网络中维持长时间的控制。正确使用时,它是渗透测试和红队演练的重要工具,但同样也被恶意攻击者滥用,因此需要在合法和道德框架内使用。
## Malleable Profile
### 修改完 template.profile 文件之后,需要使用 c2lint 验证一下 profile 文件是否可用,命令:
```
chmod 777 c2lint
./c2lint template.profile
```
start teamserver
```
./teamserver 192.168.100.11 template.profile
```
# External C2
### Cobalt Strike 的ExternalC2是什么?
**ExternalC2** 是 Cobalt Strike 中的一项功能,旨在提供与外部命令与控制(C2)服务器的集成,使得攻击者能够使用自己选择的协议和服务来实现与 Beacon 的通信。与 **Malleable C2** 相比,**ExternalC2** 更为灵活,因为它允许攻击者将自己的命令与控制基础设施完全自定义,而不依赖于 Cobalt Strike 内置的协议和工具。
这项功能特别适用于需要避免 Cobalt Strike 默认通信协议的检测,或者希望通过自己的外部工具(例如使用 WebSocket、FTP、IRC 等协议)来建立 C2 通道的情况。
ExternalC2 是 Cobalt Strike 推出的一项规范/框架,允许黑客扩展所提供的默认 HTTP(S)/DNS/SMB C2 通信通道。完整规范可[在此处](https://translate.google.com/website?sl=auto&tl=zh-CN&hl=en-US&client=webapp&u=https://www.cobaltstrike.com/downloads/externalc2spec.pdf)下载。
本质上,这是通过允许用户开发多个组件来实现的:
1. 第三方控制器 - 负责创建与 Cobalt Strike TeamServer 的连接,并使用自定义 C2 通道与目标主机上的第三方客户端通信。
2. 第三方客户端 - 负责使用自定义 C2 通道与第三方控制器通信,并将命令传递到 SMB Beacon。
3. SMB Beacon——将在受害主机上执行的标准信标。
### **ExternalC2 的有什么功能?**
1. **自定义通信协议**:
- **ExternalC2** 使攻击者能够定义自己的 C2 通信协议。你可以选择与 Cobalt Strike Beacon 进行通信的协议(如 HTTP、HTTPS、DNS、WebSocket、FTP、甚至是自定义的协议)。
2. **支持外部 C2 服务**:
- 通过 **ExternalC2**,你可以配置 Cobalt Strike 使用外部服务器进行数据交换。这使得攻击者可以绕过常见的检测系统,因为它们可以使用不易被防火墙、IDS、IPS 或安全监控工具识别的协议或端口。
3. **分离 Cobalt Strike 与 C2 基础设施**:
- 这项功能允许你将 Cobalt Strike 与实际的命令与控制基础设施分离,即 Cobalt Strike 本身不需要处理 C2 的通信,而是交由外部服务器(可能是自定义的或者第三方工具)处理。这增加了攻击的灵活性和隐蔽性。
4. **支持多种外部工具**:
- 攻击者可以与各种外部工具或框架(如 **Empire**、**Metasploit**、**Pupy**)集成,提供跨平台的控制和通信。
5. **绕过检测**:
- 通过使用 **ExternalC2**,攻击者可以将通信流量伪装成正常的业务流量,避免被入侵检测系统或防火墙发现。例如,可以通过使用已知且常用的端口或协议来隐藏恶意流量。
6. **定制 Beacon 行为**:
- **ExternalC2** 还允许你定制 Beacon 的行为,如轮询频率、数据包大小、数据加密等,增加隐蔽性并避免流量分析。
### **如何创建和使用 ExternalC2**
#### 1. **配置 ExternalC2 服务器**
为了使用 **ExternalC2**,你需要准备一个外部的 C2 服务器。这通常涉及到以下几个步骤:
- **选择通信协议**:首先,你需要决定与 Cobalt Strike Beacon 通信的协议。例如,HTTP、WebSocket、DNS 等。
- **部署 C2 服务**:你需要部署一个支持所选协议的服务器,并且配置它来与 Cobalt Strike 的 Beacon 进行通信。这些服务器可以是你自己搭建的,也可以是现成的第三方服务。
- **外部服务的配置**:配置你的外部 C2 服务器与 Cobalt Strike 之间的交互。例如,如果你选择 HTTP 或 HTTPS 作为协议,确保该服务器能够正确解析 Cobalt Strike Beacon 发送的 HTTP 请求,并做出适当的响应。
#### 2. **配置 Cobalt Strike 使用 ExternalC2**
- 在 Cobalt Strike 中,点击菜单 **Cobalt Strike** -> **C2 Profile** -> **ExternalC2**。
- 创建一个新的 **ExternalC2 Profile**,并配置你的外部 C2 服务的相关设置,例如协议、端口、路径等。
**示例配置文件:**
```yaml
listeners:
- host: "attacker.com"
port: 8080
protocol: "http"
url: "/custom_beacon"
method: "POST"
content_type: "application/json"
beacons:
- interval: 60
jitter: 30
retries: 5
path: "/beacon"
```
这个配置文件的示例说明了攻击者与 Beacon 之间通过 HTTP 协议进行通信,并且定义了请求的路径、方法、头信息等。
#### 3. **运行并测试 Beacon**
- 在 Cobalt Strike 中,使用创建的 **ExternalC2 Profile**,生成与外部 C2 服务器通信的 Beacon。
- 启动 Beacon 后,它将通过你配置的外部 C2 服务进行通信。
#### 4. **监控通信**
- 一旦 Beacon 启动并连接到外部 C2 服务器,攻击者可以在 Cobalt Strike 中看到 Beacon 的活动,并可以向它发送命令。
- 可以通过外部服务器的日志或调试工具来监控 Beacon 和 C2 服务器之间的通信,确保配置无误。
### **ExternalC2 的使用场景**
1. **绕过防火墙和 IDS/IPS**:
- 外部 C2 通道允许攻击者绕过企业级防火墙或 IDS/IPS 系统。攻击者可以使用常见的端口(如 80 或 443)或不易被检测的协议来伪装流量。
2. **跨平台 C2 集成**:
- 由于 **ExternalC2** 支持自定义协议,攻击者可以将 Cobalt Strike 与其他跨平台的 C2 工具或框架进行集成,如 **Empire** 或 **Metasploit**。这使得跨平台的渗透测试和攻击更加灵活。
3. **高隐蔽性与灵活性**:
- 外部 C2 服务提供了极高的灵活性,可以根据需求随时调整通信协议,端口和其他设置,从而使攻击者的操作更加隐蔽,不易被网络安全设备察觉。
4. **利用第三方 C2 服务**:
- 在某些情况下,攻击者可能选择使用第三方的 C2 服务,而不直接使用 Cobalt Strike 的内置通信。这样做可以减少被追踪的风险。
### **总结**
**ExternalC2** 是 Cobalt Strike 提供的一项非常强大的功能,它允许攻击者自定义与 Cobalt Strike Beacon 之间的通信协议,使用外部的 C2 服务来增强隐蔽性和灵活性。这项功能尤其适用于需要绕过安全检测、使用自定义协议或外部工具进行渗透测试的场景。通过配置 ExternalC2,攻击者可以精确控制与目标系统的通信方式,从而提升攻击的成功率和隐蔽性。