docker compose一键搭建安全测试靶场

1.Docker快速安装

1.1.ubuntu系统

步骤一: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

步骤二: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

步骤三: 写入软件源信息
sudo echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" >> /etc/apt/sources.list.d/docker-ce.list

步骤四: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

步骤五: 配置Docker加速源
cat >> /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://registry.docker-cn.com"
    ]
}
EOF

步骤六: 启动Docker
systemctl start docker
systemctl enable docker

1.2.centos系统

步骤一: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

步骤二: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤三:
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

步骤四: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

步骤五: 配置Docker加速源
cat >> /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://registry.docker-cn.com"
    ]
}
EOF

步骤六: 开启Docker服务
sudo systemctl start docker
sudo systemctl enable docker

2.靶场compose文件

2.1.XSS靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'c0ny1/xss-challenge-tour:latest'
    # 容器运行名称
    container_name: xss-challenge-tour
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40001:80'
    # 使用的网络,使用默认Docker网口
    network_mode: bridge

2.2.上传靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'c0ny1/upload-labs:latest'
    # 容器运行名称
    container_name: upload-labs
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40002:80'
    # 使用的网络,使用默认Docker网口
    network_mode: bridge

2.3.SQL注入靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'c0ny1/sqli-labs:0.1'
    # 容器运行名称
    container_name: sqli-labs
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40003:80'
    # 使用的网络,使用默认Docker网口
    network_mode: bridge

2.4.DVWA综合靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'area39/dvwa-v1.10:latest'
    # 容器运行名称
    container_name: dvwa
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40004:80'
    #  使用的网络,使用默认Docker网口
    network_mode: bridge

2.5.Pikachu综合靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'area39/pikachu:latest'
    # 容器运行名称
    container_name: pikachu
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40005:80'
    #  使用的网络,使用默认Docker网口
    network_mode: bridge

2.6.Webug综合靶场

  • 需要把此文件命名为compose.yml
version: '3.9'
services:
  app:
    # 使用的镜像
    image: 'area39/webug:latest'
    # 容器运行名称
    container_name: webug
    # 重启策略
    restart: unless-stopped
    # 对外映射端口
    ports:
      - '40006:80'
    #  使用的网络,使用默认Docker网口
    network_mode: bridge

3.启动实验环境

3.1.系统版本

root@docker:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy
root@docker:~# 

root@docker:~# docker-compose -v
docker-compose version 1.29.2, build unknown
root@docker:~# 

3.2.启动靶场

  • 靶场文件
root@docker:~# tree
.
└── sec-labs
    ├── dvwa
    │   └── compose.yml
    ├── pikachu
    │   └── compose.yml
    ├── sqli-labs
    │   └── compose.yml
    ├── upload-labs
    │   └── compose.yml
    ├── webug
    │   └── compose.yml
    └── xss-challenge-tour
        └── compose.yml

7 directories, 6 files
root@docker:~# 
  • 靶场启动

compose文件启动的方式:

docker compose up -d # 以后台启动

docker compose ps # 查看服务状态

docker compose stop # 停止靶场

docker compose down -v # 停止并,删除靶场

root@docker:~# cd sec-labs/sqli-labs/
root@docker:~/sec-labs/sqli-labs# docker compose up -d
[+] Running 1/1
 ✔ Container sqli-labs  Started  
root@docker:~/sec-labs/sqli-labs# docker compose ps
NAME        IMAGE                 COMMAND     SERVICE   CREATED         STATUS         PORTS
sqli-labs   c0ny1/sqli-labs:0.1   "/run.sh"   app       5 minutes ago   Up 5 minutes   3306/tcp, 0.0.0.0:40003->80/tcp, :::40003->80/tcp
root@docker:~/sec-labs/sqli-labs# 
  • 查看靶场是否能够访问
root@docker:~/sec-labs/sqli-labs# curl -I http://127.0.0.1:40003/
HTTP/1.1 200 OK
Date: Fri, 08 Mar 2024 08:19:09 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Tue, 15 May 2018 12:01:03 GMT
ETag: "1efd-56c3d5b3bbdc0"
Accept-Ranges: bytes
Content-Length: 7933
Vary: Accept-Encoding
Content-Type: text/html

root@docker:~/sec-labs/sqli-labs# 
posted @ 2024-03-08 16:20  二乘八是十六  阅读(109)  评论(0编辑  收藏  举报