首页 > 技术文章 > cobaltstrike 框架简述

lcxblogs 2020-11-25 21:59 原文

 关于cobalt strike,火起来也有好几年了,首先感谢大佬们慷慨相助愿意在网上分享和翻译相关资料,让这么好的渗透测试框架工具被更多人知道

那就来整理一下在使用这个框架的过程中我认为需要了解的小知识点

 

 

 

cobalt strike简称CS,是一款GUI框架式的渗透测试工具,集成了很多功能

最大的特点是可以团战,有一个服务器,多个客户端,每个客户端就是一个攻击者,攻击者通过连接到服务端来共享攻击资源和目标信息甚至session,服务器必须是Linux系统的

使用的大致流程是:创建团队服务器->客户端连接团队服务器->创建监听器->生成payload对应监听器->靶机运行后门上线->后渗透

运行cs需要先有Java环境

 

演示环境  team server  kali  192.168.1.16    (有VPS最好)

客户端   win10  192.168.1.17

cs4.1 汉化版  (仅做功能演示和知识点小结,至于版本特征和后门不做讨论)

 

 0x00前言

在演示一些基本操作之前,先把说明和常用命令写出来供参考,混个眼熟,后面演示会用到部分功能

 

选项卡说明(本例中汉化了,实际上是英文的,注意对应关系):

 

cobalt strike模块

 

 

New Connection   # 新建连接,支持连接多个服务器端
Preferences   # 偏好设置,设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization   # 主要展示输出结果的视图,将主机以不同权限展示出来
VPN Interfaces   # 设置VPN接口
Listenrs   # 创建监听器
Script Manager   # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
Close   # 退出连接,关闭于teamserver的连接

view模块

 

 

 Applications   # 显示受害主机的应用信息
Credentials   # 显示所有以获取的受害主机的凭证,如hashdump、Mimikatz
Downloads   # 查看已从受害主机中下载的文件
Event Log   # 主机上线记录以及团队协作聊天记录操作记录
Keystrokes   # 查看键盘记录结果
Proxy Pivots   # 查看代理模块
Screenshots   # 查看所有屏幕截图
Script Console   #控制台,加载第三方脚本以增强功能
Targets   # 显示所有受害主机
Web Log    # 所有Web服务的日志

 

attack模块

packages模块

 

 

HTML Application   # 基于HTML应用的payload模块,生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件
MS Office Macro   # 生成office宏病毒文件
Payload Generator   # 生成各种语言版本的payload,如C ,C#,COM Scriptlet,Java,Perl,Python,PowerShell,Ruby,VBA.......
Windows Executable   # 生成可执行exe木马
Windows Executable(Stageless)   # 生成无状态的可执行exe木马
(有的版本packages模块还有USB/CD AutoPlay功能,用于生成利用自动播放运行的后门文件)

 

Web Drive-by模块

 

 

 Manage   # 对开启的web服务进行管理
Clone Site   # 克隆网站,可以记录受害者提交的数据
Host File   # 提供文件下载,可以选择Mime类型
Scripted Web Delivery   #为payload提供web服务以便下载和执行,类似于Metasploit的web_delivery
Signed Applet Attack   #使用java自签名的程序进行钓鱼攻击(该方法已过时)
Smart Applet Attack   #自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本(该方法已过时)
System Profiler  #用来获取系统信息,如系统版本,Flash版本,浏览器版本等

Spear Phish   # 鱼叉钓鱼邮件

 

 

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文件格式

 

help模块

 

 

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

 

工具栏说明:

 

 

 

1.新建连接
2.断开当前连接
3.监听器
4.改变视图为Pivot Graph(视图列表)
5.改变视图为Session Table(会话列表)
6.改变视图为Target Table(目标列表)
7.显示所有以获取的受害主机的凭证
8.查看已下载文件
9.查看键盘记录结果
10.查看屏幕截图
11.生成无状态的可执行exe木马
12.使用java自签名的程序进行钓鱼攻击
13.生成office宏病毒文件
14.为payload提供web服务以便下载和执行
15.提供文件下载,可以选择Mime类型
16.管理Cobalt Strike上运行的web服务
17.帮助
18.关于

 

beacon指令大全:

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 获取当前beacon包含的所有权限
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脚本
ps 显示进程列表
psexec 使用服务在主机上生成会话
psexec_psh 用powershell在主机上生成会话
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu 在另一个PID下执行程序
screenshot 屏幕截图
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在主机上生成会话
argue 进程参数欺骗

0x01一个与目标主机交互的流程

1.部署teamserver

(前提是有Java环境啊,进入文件目录看看要用的文件有没有执行权限)

cs中有很多文件和文件夹:

agscript:拓展应用脚本

c2lient:用于检查profile的错误和异常

cobaltstrike&cobaltstrike.jar:客户端程序

logs:日志,包括很多内容比如web日志、beacon日志、截图日志、下载日志、键盘记录等等

update & update.jar :用于更新

data:用于保存当前CS的一些数据

 

启动服务器(正常是要把CS服务器部署到公网上的,穷啊,就部署在本地演示了)

连接密码  lcx123

 

2.客户端启动cobaltstrike.jar,这里用了bat脚本启动

 主界面

 

 3.建立listener

点耳机

推荐阅读