Docker搭建CFS三层内网靶场
2022/2/24 23:52:30
本文主要是介绍Docker搭建CFS三层内网靶场,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目前发现网上的CFS 三层内网靶场基本都是利用VM 虚拟机来搭建,想试试能不能利用Docker 把现有的漏洞环境组合,直接通过docker-compose 来构建起来,使用的 docker 环境 都来自 vulnhub
首先尝试着构建能互相通信的容器,这里涉及到 docker network 的创建使用,环境是 Windows for Docker
首先我们启动两个容器 Tomcat 和Shiro ,docker network ls 查看,docker-compose 生成了两个独立的虚拟网桥设备
Shiro 的容器
Tomcat 的容器
现在两个docker 容器是在不同网段,无法互相通信,我们需要新建一个docker network ,让两个容器都连上这个network
通过 docker network create 设置好自己想要的网段,创建网络,还可以指定 指定subnet和ip范围
docker network create --driver bridge --subnet 192.168.12.0/16 --gateway 192.168.12.1 --ip-range 192.168.12.0/24 ****CFS
之后docker network connect 将容器 连上这个网卡设备,并指定ip
docker network connect --ip 192.168.12.10 CFS 07c6f6b5c207 docker network connect --ip 192.168.12.100 CFS 4456375e7f25
这样两个容器就可以互相通信了
我再查阅了docker-compose 文档的中 对networks 的描述,可以compose中创建网络,并在一个容器服务添加多个网络,这样就可以创建内网环境了
文档中 compose 的networks 配置:
https://deepzz.com/post/docker-compose-file.html#toc_31
ipv4_address
在加入网络时为此服务的容器指定静态IP地址。
顶级网络部分中的相应网络配置必须具有包含每个静态地址的子网和网关配置的ipam块。
ipam
指定自定义IPAM配置。 这是一个具有多个属性的对象,每个属性都是可选的:
- driver:自定义IPAM驱动程序,而不是默认值。
- config:具有零个或多个配置块的列表,每个配置块包含以下任意键:
subnet
: 表示网段的CIDR格式的子网ip_range
: 从中分配容器IPs的IP范围gateway
: 主子网的IPv4或IPv6网关aux_addresses
:网络驱动程序使用的辅助IPv4或IPv6地址,作为从主机名到IP地址的映射
options
: 作为键值映射的驱动特定选项。
结合官方示例,我们就在可以docker-compose.yml,直接创建不同网段服务,并且不添加端口映射,可以实现是能内网访问的环境了
docker-compose.yml
version: '3' services: shiro: image: vulhub/shiro:1.2.4 container_name: "shiro-CVE-2016-4437" ports: - "8001:8080" environment: - FLAG=${flag1} restart: always networks: net1: ipv4_address: 172.16.238.10 tomcat: image: vulhub/tomcat:8.0 container_name: "tomcat8-weakpassword" volumes: - ./tomcat8/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml - ./tomcat8/context.xml:/usr/local/tomcat/webapps/manager/META-INF/context.xml - ./tomcat8/context.xml:/usr/local/tomcat/webapps/host-manager/META-INF/context.xml #不做端口映射就只能在内网访问了 expose: - "8080" environment: - FLAG=${flag2} restart: always networks: net1: ipv4_address: 172.16.238.81 net2: ipv4_address: 10.10.5.6 weblogic: image: vulhub/weblogic:10.3.6.0-2017 container_name: "weblogic-weakpassword" volumes: - ./weblogic/web:/root/Oracle/Middleware/user_projects/domains/base_domain/autodeploy expose: - "7001" - "5556" environment: - FLAG=${flag3} restart: always networks: net2: ipv4_address: 10.10.5.88 net3: ipv4_address: 172.42.66.10 jboss: image: vulhub/jboss:as-6.1.0 container_name: "jboss-CVE-2017-12149" expose: - "9990" - "8080" environment: - FLAG=${flag4} restart: always networks: net3: ipv4_address: 172.42.66.77 networks: net1: ipam: config: - subnet: "172.16.0.0/16" #ip_range: "172.16.238.0/24" net2: ipam: config: - subnet: "10.10.5.0/24" net3: ipam: config: - subnet: "172.42.66.0/24"
完整Docker配置文件链接如下:
https://github.com/yanshu-smile/CFS-Docker
设置 flag
由于使用的是 vulnhub 搭好的镜像,不方便修改入口执行的命令来生成flag
所以编写 .env 文件
把flag写入容器环境变量中
这篇关于Docker搭建CFS三层内网靶场的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27docker容器内没有bash,怎么通过docker exec -it进入容器内部?-icode9专业技术文章分享
- 2024-12-26alpine构建的镜像无法使用docker exec -it 进入内部怎么办?-icode9专业技术文章分享
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解