cobaltstrike的使用
本文最后更新于 2024-07-26,文章内容可能已经过时。
CobaltStrike
一、CS功能介绍
Cobalt Strike是一款美国Red Team开发的神器,常被业界人称为CS。以Metasploit为基础的GUI框架式工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等,与MSF框架的诸多功能是上完全一致或类似的。主要用于团队作战,可谓是团队必备神器,能让多个测试人员同时连接到团体服务器上,共享测试资源与目标信息和sessions。
Cobalt Strike分为客户端和服务器组件。该服务器称为团队服务器,是Beacon Payload 的控制器,也是Cobalt Strike社交工程功能的主机。团队服务器还存储Cobalt Strike收集的数据,并管理日志记录。
Cobalt Strike团队服务器必须在受支持的Linux系统上运行。要启动Cobalt Strike团队服务器,请使用Cobalt Strike Linux软件包附带的teamserver脚本。
4.0版本至少需要JDK1.8及以上版本,4.4版本至少需要JDK11及以上版本。
4.7版本至少需要JDK11及以上版本。
CS功能点:
Kali Java 17 上直接运行服务器端和客户端
服务器端 运行时 需要指定IP和访问密码
连接时间设定,默认为1分钟一次,可以用 sleep 3 修改为3秒
Windows和Linux客户端,只要安装了Java,均可以运行
截图:与MSF相同
bind_tcp正向连接木马, 用 connect ip port 命令连接 (与MSF相同)
http的payload,用Wireshark抓包理解期规律 (与MSF相同)
Python shell code -> Python加载器:与MSF相同
文件浏览:(MeterPreter中的ls命令或dir命令)
键盘监听:与MSF相同
内网代理:与MSF相同
站点克隆:复制一个一模一样的网页,MSF无此功能
Script Web Delivery:发布一个网站页面
交互式命令:与Meterpreter中执行命令类似
插件加载:可以加载第三方插件,如Ladon等
木马生成:主要专注于Windows内网环境,MSF更广泛
其他更多功能,请探索
只能用于操作windows
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
二、安装
前置环境的安装:
windows安装JDK
jdk-17_windows-x64_bin.exe
-
双击安装程序
-
下一步
-
下一步
-
环境变量配置
-
安装完成后,右击【我的电脑】,点击【属性】;
-
选择【高级系统设置】选项卡,点击【环境变量】;
-
在【系统变量】中,设置3项属性:(1)JAVA_HOME,(2)PATH,(3)CLASSPATH
注:是系统变量,而不是用户变量
-
【JAVA_HOME 】指明JDK安装路径就是刚才安装时所选择的路径,比如我的是:D:\Program Files\Java\jdk-17,此路径下包括lib,bin,jre等文件夹
-
【PATH 】使得系统可以在任何路径下识别java命令,选中系统变量中的 Path点击编辑,然后点击新建,输入 %JAVA_HOME%\bin 即可,全部点击确定。
-
【CLASSPATH】 为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar ,%JAVA_HOME%就是引用前面指定的JAVA_HOME;
-
-
-
验证配置
打开cmd命令行 :
Linux安装JDK17
1)上传JDK17到Linux
2)jdk解压缩
#解压命令:
tar -zxvf jdk-17_linux-x64_bin.tar.gz
3)配置jdk环境变量
使用vi打开/etc/profile
在末尾行添加
#set java environment
JAVA_HOME=/opt/jdk-17.0.10
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
重新加载环境变量
source /etc/profile
查看jdk版本
java -version
Linux运行CobaltStrike服务端
1)上传CobaltStrike到Linux
2)解压缩
unzip cobalt_strike_4.7.zip
3)修改权限
修改cobalt_strike_4.7中如下文件的权限为777
启动服务器时 ,需要给两个文件设置执行权限
TeamServerImage 、teamserver
4)启动
./teamserver 服务器端ip 密码
#1.teamserver 启动服务器的程序
#2. IP : 当前服务主机的IP 客户端链接的时候 需要设置这个IP
#3. 密码 在客户端链接链接的时候 需要设置这个密码
#4. 56a06a233bd30f693de25ef12cc19e8b2c92d3eb97dd969a2578df084c376478 发给客户端 ,客户端在连接时 需要验证一下这码
kali运行CobaltStrike客户端
1)上传CobaltStrike到kali并解压缩
2)启动kali客户端
./start.sh
会打开一个界面,输入服务器ip和密码
windows上启动CobaltStrike客户端
启动客户端 ,双击 ddosi.org.bat
:
要求当前主机上必须安装JDK ,并且配置JAVA_HOME=jdk的根目录
安装CobaltStrike客户端插件
插件是额外开发的功能,为CS框架提供的一些功能 。
1)把插件上传到kali并解压缩
2)安装插件
等主机上线后,右击就可以看到插件的功能列表了
第一次加载的时候 右键点击会出现乱码 ,解决乱码问题 。
修改CS的启动文件 在启动文件里加上 编码 。
ddosi.org.bat
:
-Dfile.encoding=UTF-8
java -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -jar cobaltstrike-client.jar
三、基本工作流程
1、名词解释
(1)C2:Command & Control Server 的简称,也就是命令与控制服务器;
(2)Beacon:植入到受感染系统中的恶意程序,可以请求C2服务器并在受感染系统中执行命令;
(3)Listener:攻击者在C2上运行的服务,可以监听Beacon的请求;
(4)Team Server:Cobalt Strike的服务器组件;
(5)Stager:stager其实是一段很简单的加载器,是socketedi协议请求的一段shellcode,它的作用是向teamserver(C2)请求一段数据,这些数据前是个字节是shellcode的长度,后面是shellcode。接收到数据后跳转到shellcode所在的内存处开始运行。
(6)Stage:stage是无阶段的stager,可以直接理解成,stage是stager与它所请求的数据的集合体。stage比stager更安全,但是体积更大。上述概念与MSF均有一一对应的关系;
(7)Check in:指的是 Beacon 回连主机,回传受害系统的元数据,准 备好进行任务数据通讯的状态。
2、创建监听器
打开“Cobalt Strike” -> "Listeners",在下部窗口中点击“Add”添加一个新的监听器(类似于MSF中的 exploit/multi/handler 模块功能)。内部监听器主要是CS自行使用,外部监听器则是为了与MSF进行配合(以),所以可以暂时不用关心外部监听器。
先创建一个HTTP的Beacon,为HTTP Host和TTP Stager配置相同的IP地址:192.168.112.188,端口和其他选项保持默认即可完成Beacon的创建。(HTTP Port(Bind)这一项是用于C2服务器的端口重定向),另外HTTPS的创建与HTTP除了加密之外,没有其他区别。
2、生成木马
创建好HTTP Beacon后,在菜单“Payloads”下选择一个木马类型,比如“Windows Stager Payload”等,在弹窗中选择对应的Listener。
创建木马
点击菜单(Payloads)
点击“Generate”生成木马程序,直接保存木马:artifact.exe
将上述木马程序复制到目标主机中,双击执行,完成木马上线。
设置一下木马的链接频率 测试实验 设置成 1s
右键选择 -->Sleep 设置 1 就可以 默认单位就是 秒
-
连接上之后,所有的功能操作,都是在右键上 ,选择功能 ,但是 功能有限 。
-
可以进如命令行操作 右键 -->interact
使用命令行的时候,需要再命令前 加
shell
3、木马上线后操作
默认情况下,Beacon上线后,每60秒执行一次指令,如果要进行更快的操作,建议进入Interact命令行交互界面,运行命令“sleep 1"调整为每1秒钟执行一次指令连接。
Beacon Commands
===============
Command Description
------- -----------
help 帮助,不跟参数则查看所有命令,help command则查看该命令的用法
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 转储密码哈希值
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录,这是一个后台任务,在View菜单的KeyStrokes中查看
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 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu 在另一个PID下执行程序
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令,如shell ipconfig
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4a/5代理
socks stop 停止SOCKS4a/5代理
spawn 生成一个会话
spawnas 以其他用户身份生成会话
spawnto 将可执行程序注入进程
spawnu 在另一个PID下生成会话
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink 断开与Beacon的连接
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
4、探索右键功能
木马在线后,右键点击目标主机,可以看到很多与Armitage和MSF类似的快捷功能。
四、Attacks菜单功能
1、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) # 生成无状态的可执行exe木马
2、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版本,浏览器版本等
3、Spear Phish 鱼叉钓鱼邮件
五、特色功能
1、IE进程注入
在上线主机上右键,选择“”->通过注入IE进程,并设置浏览器代理,可以直接获取浏览器的Cookie权限。
(1)先利用Process List进程列表,获取到IE的进程,并设置为PPID。
(2)在上线主机上右键选择“Browser Pivot“,并在弹窗中设置代理端口号(保持默认也可以)。
(3)确认输出的代理地址和端口。
(4)在Kali的浏览器上设置代理,并使用Kali浏览器访问目标主机同一个网站,获取网站登录后的权限。
(5)在任意能够访问Kali的主机上,将浏览器代理设置为 192.168.0.148:4133,均可以同步目标主机上的用户权限。
2、站点克隆
并可以记录站点输入的内容,在Web Log中查看即可。
3、内网穿透
在CS上为Windows2016开启Socks5代理,并在Kali浏览器在配置代理地址CS-Server-IP:XXX,类型为Socks V5
完成代理后,直接在Kali上访问:http://10.10.10.129/dashboard/phpinfo.php,如果是非HTTP服务,则直接编辑/etc/proxychains4.conf文件,配置为系统代理即可。
4、插件管理
在CS菜单中选择Script Manager,然后点击Load,加载插件主目录下的cna文件, 即可正常加载插件。(以下展示的是TaoWu插件的功能界面)。
5、键盘监听
先进入交互式命令行,运行keylogger,这是一个后台任务,可以使用jobs命令查看。然后在视图中打开KeyStrokes查看。
6、删除数据
在CS服务器目录下删除data目录即可删除所有数据。
其他用法:
Cobalt Strike|发送钓鱼邮件:https://www.secpulse.com/archives/124891.html
https://blog.csdn.net/weixin_39527911/article/details/111223494
基础用法介绍:https://cloud.tencent.com/developer/article/1759944
巨龙拉冬:http://k8gege.org/
下载4.4版本:https://www.cnblogs.com/mantou0/p/16061147.html
yunzhongzhuan.com/#sharefile=cZ5voWkm_9644
解压密码: www.ddosi.org汉化下载CSAgent.zip
github地址https://github.com/Twi1ight/CSAgent.zip
知乎的较全的教程:https://zhuanlan.zhihu.com/p/359251293
CS加载插件,Script Manager中Load .cna文件
https://github.com/harleyQu1nn/AggressorScripts
https://github.com/bluscreenofjeff/AggressorScripts
https://github.com/michalkoczwara/aggressor_scripts_collection
https://github.com/vysecurity/Aggressor-VYSEC
https://github.com/killswitch-GUI/CobaltStrike-ToolKit
https://github.com/ramen0x3f/AggressorScripts
https://github.com/FortyNorthSecurity/AggressorAssessor
https://github.com/threatexpress/persistence-aggressor-script
https://github.com/threatexpress/aggressor-scripts
https://github.com/branthale/CobaltStrikeCNA
https://github.com/gaudard/scripts/tree/master/red-team/aggressor
https://github.com/001SPARTaN/aggressor_scripts
https://github.com/Und3rf10w/Aggressor-scripts
https://github.com/rasta-mouse/Aggressor-Script
https://github.com/vysec/Aggressor-VYSEC
https://github.com/threatexpress/aggressor-scripts
https://github.com/threatexpress/red-team-scripts
https://github.com/rsmudge/ElevateKit
https://github.com/vysec/CVE-2018-4878
https://github.com/harleyQu1nn/AggressorScripts
https://github.com/bluscreenofjeff/AggressorScripts
https://github.com/360-A-Team/CobaltStrike-Toolset
https://github.com/ars3n11/Aggressor-Scripts
https://github.com/michalkoczwara/aggressor_scripts_collection
https://github.com/killswitch-GUI/CobaltStrike-ToolKit
https://github.com/ZonkSec/persistence-aggressor-script
https://github.com/rasta-mouse/Aggressor-Script
https://github.com/RhinoSecurityLabs/Aggressor-Scripts
https://github.com/Kevin-Robertson/Inveigh
https://github.com/Genetic-Malware/Ebowla
https://github.com/001SPARTaN/aggressor_scripts
https://github.com/gaudard/scripts/tree/master/red-team/aggressor
https://github.com/branthale/CobaltStrikeCNA
https://github.com/oldb00t/AggressorScripts
https://github.com/p292/Phant0m_cobaltstrike
https://github.com/p292/DDEAutoCS
https://github.com/secgroundzero/CS-Aggressor-Scripts
https://github.com/skyleronken/Aggressor-Scripts
https://github.com/tevora-threat/aggressor-powerview
https://github.com/tevora-threat/PowerView3-Aggressor
https://github.com/threatexpress/persistence-aggressor-script
https://github.com/FortyNorthSecurity/AggressorAssessor
https://github.com/mdsecactivebreach/CACTUSTORCH
https://github.com/C0axx/AggressorScripts
https://github.com/offsecginger/AggressorScripts
https://github.com/tomsteele/cs-magik
https://github.com/bitsadmin/nopowershell
https://github.com/SpiderLabs/SharpCompile
https://github.com/realoriginal/reflectivepotato
- 感谢你赐予我前进的力量