CobaltStrike是一款基于java编写的,以Metasploit为基础的GUI全平台团队协作后渗透攻击框架。集成了端口转发、端口扫描、socket代理、提权、钓鱼、远控木马等功能。几乎覆盖了APT攻击链中所需要用到的各个技术环节。是一个用于对手模拟和红队行动的软件,有助于进行安全评估。通常将其称为CS。

本文章仅用于安全学习研究用,严禁用于非法用途,若因此产生的后果,均由读者自行承担!

官网地址 https://www.cobaltstrike.com/

服务端安装:
首先下载好CobaltStrike。
我这里是再linux系统上搭建的,所有我们将下载好的文件上传到linux系统中。
因为是基于java的,所以我们需要有java的运行环境,如果你已经安装过jre了,此处可以略过。
Ubuntu下进行jre的安装,root权限下执行下面命令。

1
apt-get install default-jre

然后我们进入CobaltStrike的文件夹,执行下面的启动命令

1
./teamserver 192.168.30.132 passwd123

参数解释 ./teamserver CS的服务器ip 连接密码
出现下图则是连接启动成功。

windows下同理,只不过teamserver需要用teamserver_win.bat来进行启动,此处不做演示。

客户端连接:
在下载好的CobaltStrike文件家中还能发现名为CobaltStrike.exe的文件,这个就是我们客户端的启动程序,将其放在windows上,然后双击运行。


这里需要填写的几个信息
Host:CobaltStrike服务器,就是上面配置的服务端的地址
Port:端口,和配置服务端的时候端口一直,默认50050
User:登录CS团队的昵称,可随意写。
Password:启动CS服务端的时候设置的密码,我设置的是passwd123
完成后点击Connect即可。
加入成功会显示如下图:

客户端参数释义:
参考文章:https://www.jianshu.com/p/8d823adbc6b5
十分感谢大佬能做出这么细致的解释。

1
2
3
4
5
6
7
New Connection #新的连接(支持连接多个服务器端)
Preferences #偏好设置(设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录等)
Visualization #窗口视图模式(展示输出结果的形式)
VPN Interfaces #VPN接入
Listenrs #监听器(创建Listener)
Script Manager #脚本管理
Close #关闭

1
2
3
4
5
6
7
8
9
10
Applications #应用(显示受害者机器的应用信息)
Credentials #凭证(通过hashdump或Mimikatz抓取过的密码都会储存在这里)
Downloads #下载文件
Event Log #事件日志(主机上线记录以及团队协作聊天记录)
Keystrokes #键盘记录
Proxy Pivots #代理模块
Screenshots #截图
Script Console #脚本控制台(可以加载各种脚本,增强功能https://github.com/rsmudge/cortana-scripts)
Targets #显示目标主机
Web Log #Web日志 

1
2
3
4
5
6
7
HTML Application #生成恶意的HTA木马文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各种语言版本的payload
USB/CD AutoPlay #生成利用自动播放运行的木马文件
Windows Dropper #捆绑器,能够对文档类进行捆绑
Windows Executable #生成可执行Payload
Windows Executable(S) #把包含payload,Stageless生成可执行文件(包含多数功能) 

1
2
3
4
5
6
7
Manage #对开启的web服务进行管理
Clone Site #克隆网站(可记录受害者提交的数据)
Host File #提供Web以供下载某文件
Scripted Web Delivery #提供Web服务,便于下载和执行PowerShell Payload,类似于Metasploit的web_delivery
Signed Applet Attack #启动一个Web服务以提供自签名Java Applet的运行环境
Smart Applet Attack #自动检测Java版本并利用已知的exploits绕过security
System Profiler #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等 

1
2
3
4
5
6
7
8
0. Activity report #活动报告
1. Hosts report #主机报告
2. Indicators of Compromise #威胁报告
3. Sessions report #会话报告
4. Social engineering report #社会工程学报告
5. Tactics, Techniques, and Procedures #策略、技巧和程序
Reset Data #重置数据
Export Data #导出数据 

1
2
3
4
5
Homepage #官方主页
Support #技术支持
Arsenal #开发者
System information #版本信息
About #关于 

还有一些右键的菜单,我们需要先上线一下机器。

1
2
Interact #打开beacon,具体beacon相关指令往后看。
Spawn #外部监听器(如指派给MSF,获取meterpreter权限) 

鼠标右键被控制的机器

1
2
3
4
5
6
Dump Hashes #获取hash
Elevate #提权
Golden Ticket #生成黄金票据注入当前会话
Make token #凭证转换
Run Mimikatz #运行 Mimikatz
Spawn As #用其他用户生成Cobalt Strike侦听器 

1
2
3
4
5
6
7
Browser Pivot #劫持目标浏览器进程
Desktop(VNC) #桌面交互
File Browser #文件浏览器
Net View #命令Net View
Port Scan #端口扫描
Process List #进程列表
Screenshot #截图 

1
2
3
SOCKS Server #代理服务
Listener #反向端口转发
Deploy VPN #部署VPN 

1
2
3
4
Note #备注
Remove #删除
Sleep #指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务。实际中频率不宜过快,容易被发现。
Exit #退出 

beacon相关命令:

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

beacon> help
Beacon Commands
===============
Command Description
——- ———–
argue 进程参数欺骗
blockdlls 阻止子进程加载非Microsoft DLL
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC提升权限
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程桌面(VNC)
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 使用exp
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 终止beacon会话
getprivs Enable system privileges on current token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在注入进程生成会话
jobkill 结束一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use Apply 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peer over a named pipe
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 Set parent PID for spawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以其他用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell 执行cmd命令
shinject 将shellcode注入进程
shspawn 启动一个进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件的时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM横向渗透
wmi 使用WMI横向渗透

至此CobaltStrike的基本功能介绍完毕。