手把手教你使用红队工具——caldera
注:本文出自Gcow绝影小组的Ze.Yuan 获取更多知识可关注作者公众号 Seraph安全加油站
封面-pic1
0x00.简介
CALDERA
是一个网络安全框架,旨在轻松运行自主的漏洞和模拟演习。它还可以用于运行手动的红队约定或自动的事件响应。
它建立在MITRE ATT&CK
框架上,是MITRE
的一个活跃的研究项目。
0x01.caldera安装
Caldera
在Github的项目主页:
我们需要先从Github上克隆代码,使用以下命令可下载最新版的caldera
git clone https://github.com/mitre/caldera.git --recursive --branch 2.6.3
下载Caldera-pic2
进入caldera
目录运行安装命令进行安装
./install.sh --darwin./install.sh --centos./install.sh --ubuntu./install.sh --kali
各个系统使用不同的命令,我这里使用的是kali
,所以是./install.sh --kali
(注意:各位表哥根据自己的情况进行相应的安装,这里就不一一举例了)
在kali环境下安装Caldera-pic3
安装好之后会弹出启动方式python server.py
启动Caldera方式-pic4
此外,更重要的一点需要把caldera
所依赖的库全部装完,因为是基于python3
的,所以我们需要用pip3
来进行安装
Python3 -m pip install -r requirements.txt
安装python依赖库-pic5
至此,Caldera
的所有安装已经完成,下面就是开干了!
0x02.caldera配置和使用
caldera
的配置文件在/conf/default.yml,大家可以根据实际情况自行修改,我这里就使用默认配置
caldera的配置文件(默认配置)-pic6
运行指令python3 server.py启动
启动caldera-pic7
我们打开http://{你的ip地址}:8888,使用我们配置文件里默认的账号密码进行登录
admin/admin --> 红队 red/admin --> 红队 blue/admin --> 蓝队
登入caldera-pic8
0x03.Campaigns配置和行动
1.Sandcat
由于caldera
的使用方法原因,就不单独分开演示了,就直接按照实际操作过程演示吧
首先我们需要去插件里使用sandcat
生成一个Payload
Sandcat生成payload-pic9
选择对应的操作系统即可显示出对应的Payload
对应系统生成payload-pic10
我们现在去一台windows
靶机去执行以下Payload
(注意:这里需要将0.0.0.0替换为caldera的ip地址)
Windows靶机执行payload-pic11
2.Agents
在Campaigns
里点击Agents
即可看到我们的靶机已上线
Agents中已经有靶机上线-pic12
点击绿色的PID
即可查看到详细信息
靶机详细信息-pic13
3.Adversaries
Campaigns
里的adversaries
配置文件是ATT&CK TTP
的集合,旨在主机或网络上创建特定效果。配置文件可用于攻击性或防御性用例
adversaries-pic14
大家可以选择一个适合自己目前需求的配置,右侧会列出当前配置的一些功能
配置的详细信息-pic15
如果需要将别的配置里的功能添加进来的话可以点击add pack
来进行添加
add pack-pic16
如果需要添加ATT&CK
里的某种策略和技术可以点击add ability
进行添加,选择某个能力之后会弹出描述和相应的这个能力所执行的命令。
add ability-pic17
ability的详细信息-pic18
4.Operations
配置好上述策略,我们可以进入Campaigns
的Operations
里发起行动
Operations-pic19
我们需要先将BASIC OPTIONS
基本配置,将行动名称,组,策略,是否开放配置好
配置行动名称,组,策略,是否开放-pic20
其它几项大家需根据实际情况进行配置,我这里选择默认。
配置其他信息-pic21
点击Start
即可开始行动,运行之后会看见任务时间轴和进度条
开始行动-pic22
绿色表示成功,红色表示失败,点击每个时间轴右边的小星星可查看运行结果
绿色代表成功,红色代表失败,小星星查看结果-pic23
运行的结果-pic24
点击左侧Download
即可下载json
格式的运行报告
下载json运行报告-pic25
0x04.插件等其它相关配置
1.Stockpile
Plugins
中的stockpile
为能力数据库,库存中包含一组TTP
,对手概况,数据源和计划者。这些可用于针对目标主机构建动态操作
Stockpile-pic26
2.Terminal
Plugins
中的Terminal
终端插件附带Manx
代理,它通过一个原始的TCP
套接字与服务器通信。除了作为一个正常的代理运行之外,Manx
还可以作为一个反向shell。当您部署它时,您将看到会话在下面弹出,允许您手动与受影响的主机进行交互。
Terminal-pic27
我们新建一个Payload
来测试一下与主机进行交互
测试交互-pic28
通过测试,发现需要将Advanced
配置里的IP地址改为caldera
的ip地址就可与主机直接进行交互(具体配置方法见Advanced/configuration一节)
修改后即可进行shell交互-pic29
在Terminal
里我们还可以使用ATT&CK框架里的方法来进行攻击。当我们选择之后,就会在终端上产生所选模块执行的命令,我们直接运行即可
利用ATT&CK方法进行攻击-pic30
3.Compass
在Plugins
的compass
中可以为任何对手生成一个层文件,你可以覆盖下面的矩阵或在矩阵中创建一个对手,然后上传该图层文件以生成要在操作中使用的对手
这个操作,大家就根据自身情况进行生成把
Compass-pic31
4.GameBoard
Plugins
中的GameBoard
作用为在演习中监视红队和蓝队的行动,看看蓝队是否能够探测、响应并关闭红队的对手。
我们选择红队的攻击情况则会发现红队已获得了5分。
GameBoard-pic32
5.Configuration
Advanced
中的configuration
可以对通讯地址及插件进行配置。
在这里我们需要将0.0.0.0
改为caldera
的ip地址,方便通讯。
Configuration-pic33
6.Obfuscators
Advanced
中的obfuscators
为红队行动前混淆模式的介绍,方便红队快速理该功能,用于逃避检测
Obfuscators-pic34
7.Contacts
Advanced
中的contacts
则为记录caldera
通过所有协议发出的命令。
Contacts-pic35
8.Planners
Advanced
中的planners
则是一个策略器,它包含一个逻辑,用于一个正在运行的操作应该如何决定使用哪些功能以及以何种顺序。具体地说,策略器的逻辑包含执行操作的单个阶段的决策
Planners-pic36
9.Sources
Advanced
中的sources
为red
收集的数据片段,事实是可识别的数据片段,由代理收集或在服务器启动时加载。来源是事实的集合。规则是确保不能使用特定特性的边界。
Sources-pic37