ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker搭建CFS三层内网靶场

2022-02-24 23:30:14  阅读:465  来源: 互联网

标签:容器 compose network networks CFS address 靶场 Docker docker


目前发现网上的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写入容器环境变量中
请添加图片描述

标签:容器,compose,network,networks,CFS,address,靶场,Docker,docker
来源: https://blog.csdn.net/weixin_45887311/article/details/123123180

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有