1 介绍
Cobalt Strike是一款渗透测试工具,常被称为CS神器,从3.0开始不在使用Metaspoit的漏洞库,称为一个独立平台,它分为
- 客户端(可以是多个)
- 服务端(一个)
Java语言编写,特别适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和session,可以模拟ATP做模拟对抗,进行内网渗透。
其继承了端口转发、服务扫描、自动化溢出、多模式端口监听、win exe铁马生成、win dll铁马生成、java铁马生成、office宏病毒生成、铁马捆绑
钓鱼攻击:站点克隆、目标信息获取、java执行、浏览器自动攻击等
2 安装
首先需要安装java环境
Cobalt Strike目录结构
agscript
:拓展应用的脚本
c1lint
:用于检查profile的错误异常
teamserver
:服务端程序
cobaltstrike,cobaltstrike.jar
:客户端程序(java)
license.pdf
:许可证文件
logs
:目录记录与目标主机的相关信息
update,update.jar
:用于更新cs
third-party
:第三方工具
2.1 安装团队服务器
服务器ip:192.168.56.22
kali:192.168.56.13
win7目标主机:192.168.56.10
这个最好安装到Linux平台上,服务端的关键文件是teamserver和cobaltstrike.jar,将这这两个文件放在同一目录下运行:
./teamserver <host> <password> [/path/to/c2.profile] [yyyy-mm-dd]
<host>
:必须参数 团队服务器ip
<password>
:必须参数 链接服务器密码
</path/to/c2.profile>
:可选参数 指定c2通信配置文件,体现其强大的扩展性
[yyyy-mm-dd]
:可选参数 所有payload的终止时间
启动 Team Server(这里设置强制密码,否则容易被爆破)
./teamserver 192.168.56.22 root
ps:团队服务器默认端口为 50050,如需修改请到 teamserver文件
2.2 启动客户端
这里是kali:192.168.56.13
2.2.1 linux
./cobalstrike
或
java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
这里用Linux桌面版打开
第一次连接会出现hash校验,这里的hash等于前面的启动teamserver时的hash,直接点击‘是’即可连接到团队服务器上
2.2.2 windows
windows 双击:cobalitstrike.exe
3 菜单栏介绍
3.1 Cobalt Strike
New Connection
:新建连接,支持连接多个服务端
Preferences
:设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization
:主要展示输出结果的视图
VPN Interfaces
:设置VPN接口
Listeners
:创建监听器
Script Manager
:脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
Colse
:退出连接
3.2 View
Application
:显示受害主机的应用信息
Credentials
:显示所有获取的受害主机的凭证,如hashdump、Mimikatz
Downloads
:查看已下载文件
Event Log
:主机上线记录以及团队协作聊天记录
Keystrokes
:查看键盘记录结果
Proxy pivots
:查看代理模块
Screeshots
:查看所有屏幕截图
Script Console
:加载第三方脚本增强功能
Target
:显示所有受害主机
Web Log
:所有Web服务的日志
3.3 Attacks
Packages
HTML Application
:生成(executable/VBA/powershell)这三种原理实现的恶意HTA铁马文件
MS office Macro
:生成office宏病毒文件
Payload Generator
:生成各种语言版本的payload
USB/CD AutoPlay
:生成利用自动播放运行的铁马文件
Windows Dropper
:捆绑能够对任意的正常文件进行捆绑(免杀效果差)
Windows Executable
:生成可执行exe铁马
Windows Executable(Stageless)
:生成无状态的可执行铁马
Web Drive-by
Manage
:对开启的Web服务进行管理
Clone
:克隆网站,可以记录受害者提交的数据
Host File
:提供文件下载,可以选择Mine类型
Scripted Web Delivery
:为payload提供web服务以便下载和执行,类似于Metasploit的web_delivery
Signed Applet Attack
:使用java自签名的程序进行钓鱼攻击(该方法已过时)
Smart Applet Attack
:自动检测jav版本并进行攻击,针对java 1.6.0_45以下及java 1.7.0.21以下版本(该方法已过时)
System Profiler
:用来获取系统信息,如系统版本、Flash版本、浏览器版本等
Sper Phish
:鱼叉钓鱼邮件
Reporing
Activity
:活动报告
Hosts Report
:主机报告
Indicatiors of Compromise
:IOC报告:包括c2配置文件的流量分析、域名、IP和上传文件的MD5 hashes
Sessions Report
:会话报告
Social Engineering Report
:社会工程报告:包括鱼叉钓鱼邮件及点击记录
Tactics,Techniques,and Procedures
:战术技术及相关程序报告:包括行动对应的每种战术的检测策略和缓解策略
Reset Data
:重置数据
Export Data
:导出数据,导出.tsv
文件格式
Help
Homepage
:官方主页
Support
:技术支出
Arsenal
:开发者
System infomation
:版本信息
About
:关于
4 工具栏
1
:新建连接
2
:断开当前连接
3
:监听器
4
:改变视图为Pivot Graph(视图列表)
5
:改变视图为Session Tbale(会话列表)
6
:改变视图为Target Table(目标列表)
7
:显示所有已获取的受害主机的凭证
8
:查看已下载文件
9
:查看键盘记录结果
10
:查看屏幕截图
11
:生成无状态的可执行铁马
12
:使用java自签名的程序进行钓鱼攻击
13
:生成office宏病毒文件
14
:为payload提供web服务以便下载和执行
15
:提供文件下载,可以选择Mime类型
16
:管理Cobalt Strike上运行web服务
17
:帮助
18
:关于
5 基本流程
5.1 创建监听器
点击 Cobalt -> Listeners -> Add, 其中内置了九个Listener
每种监听器只能创建一个
indows/beacon_dns/reverse_dns_txtwindows/beacon_dns/reverse_http
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/foreign/reverse_dns_txt
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp
其中 windows/beacom为内置监听器,包括:dns、http、https、smb
windows/foreign为外部监听器,配合Metaspoit后者Armitage的监听器
Name
:随意设置
Payload
:选择所需
Host
:这里ip地址是团队服务器ip - > 192.168.56.22
Port
:没有占用的任意端口
5.2 生成铁马
Attacks -> Paackages -> Windows Executable
然后将生成的铁马,放到目标主机上运行
肉鸡上限,这里会显示
鼠标右键,会看到有很多功能,这些都是beacon提供的各种命令
6 Beacon命令介绍
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC提升权限
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除Beacon内部的任务队列
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码Hash
desktop 远程桌面服务
dllinject 反射DLL注入进程
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 使用exp
execute 在目标机上执行程序
exit 结束beacon会话
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码Hash值
inject 在注入进程生成会话
jobkill 结束一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从cache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入的票据应用于此会话
keylogger 键盘记录
kill 结束进程
link 通过命名管道连接到Beacon对等点
logonpasswords 使用Mimikatz转储密码hash和凭证
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行Mimikatz命令
mkdir 创建目录
mode dns 使用DNS A作为通信通道
mode dns-txt 使用DNS TXT作为通信通道
mode dns6 使用DNS AAAA作为通信通道
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 显示出当前目录
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
runas 以其他用户权限执行程序
runu 以其他进程ID执行程序1
screenshot 屏幕截图
shell 执行cmd命令
shinject 将shellcode注入进程
shspawn 启动一个进程并将shellcode注入
sleep 设置休眠时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn 生成会话
spawnas 以另一用户身份生成会话
spawnu 以另一进程ID生成会话
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件的时间戳应用到另一个文件
unlink 断开连接
upload 上传文件
wdigest 使用Mimikatz转储明文凭据
winrm 使用WinRM横向渗透
wmi 使用WMI横向渗透
参考文章:
https://www.yinxiang.com/everhub/note/de918f37-0b42-4466-9a62-a0932fd4ccff
https://www.cnblogs.com/ta1zi/p/14677758.html