搭建漏洞练习靶场

搭建漏洞练习靶场

1. Docker 安装

$ sudo apt-get update

$ sudo apt-get install \

    apt-transport-https \

    ca-certificates \

    curl \

    gnupg-agent \

    software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo add-apt-repository \

   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

   $(lsb_release -cs) \

   stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

如果是 Windows 或 macOS 系统,可以直接从官网下载安装包安装,它会自动识别你当前的操作系统,并提供相应平台的下载地址

2. 安装 sqli-labs 靶场

sqli-labs 是一款用于学习 SQL 注入的靶场平台,覆盖了各种类型的 SQL 注入,题目共 75 道,按难度划分为 4 页。sqli-labs 靶场的难度循序渐进,对于提高 SQL 注入实战能力有很好的帮助。sqli-labs 靶场的项目开源地址为https://github.com/Audi-1/sqli-labs。

那如何使用 Docker 快速安装 sqli-labs 呢?首先,搜索 sqli-labs 镜像,挑战 STARS 星标最多的镜像,这里选择“acgpiano/sqli-labs”镜像:

$ sudo docker search sqli-labs

NAME                       DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED

acgpiano/sqli-labs         sql injection labs                              12

c0ny1/sqli-labs            sqli-labs 是一个 sql 注入的练习靶机,项目地址为…                   2

sari3l/sqli-labs-safedog   Base: sqli-labs & safedog(version Linux64_2.…   1

promiseit/sqli-labs                                                        1

0bajie0/sqli-labs                                                          1

tinmin/sqli-labs                                                           0

area39/sqli-labs           sql inject                                      0

hl0rey/sqli-labs                                                           0

sari3l/sqli-labs           Base: Debian-Wheey + MySQL 5.5 + PHP 5          0

sari3l/sqli-labs-yunsuo    Base: sqli-labs & yunsuo(version Linux_3.0.6…   0

aqyoung/sqli-labs                                                          0

xuanxuan3000/sqli-labs                                                     0

fengbj/sqli-labs           lamp+sqli-labs please down 2.0                  0

jylsec/sqli-labs                                                           0

baohs/sqli-labs-cenos                                                      0

mendickxiao/sqli-labs      sqli-labs based on ubuntu                       0

r0ulier/sqli-labs          sqlInjection                                    0

拉去镜像:

$ sudo docker pull acgpiano/sqli-labs

Using default tag: latest

latest: Pulling from acgpiano/sqli-labs

10e38e0bc63a: Pull complete 

0ae7230b55bc: Pull complete 

fd1884d29eba: Pull complete 

4f4fb700ef54: Pull complete 

2a1b74a434c3: Pull complete 

fb846398c5b7: Pull complete 

9b56a3aae7bc: Pull complete 

1dca99172123: Pull complete 

1a57c2088e59: Pull complete 

b3f593c73141: Pull complete 

d6ab91bda113: Pull complete 

d18c99b32885: Pull complete 

b2e4d0e62d16: Pull complete 

91b5c99fef87: Pull complete 

bf0fd25b73be: Pull complete 

b2824e2cd9b8: Pull complete 

97179df0aa33: Pull complete 

Digest: sha256:d3cd6c1824886bab4de6c5cb0b64024888eeb601fe18c7284639db2ebe9f8791

Status: Downloaded newer image for acgpiano/sqli-labs:latest

docker.io/acgpiano/sqli-labs:latest

sudo docker run -dt --name sqli-labs -p 80:80 --rm acgpiano/sqli-labs

-d:代表后台运行

-t:为容器分配伪终端

–name:命名容器

-p:指定映射端口,此处将 acgpiano/sqli-labs 的 80 端口映射到本地的 80 端口

–rm:退出时自动移除容器

最后点击“Setup/reset Database for labs”链接完成数据库的安装

3. 安装 DVWA 靶场

DVWA(Damn Vulnerable Web Application)是一款比较著名的漏洞靶场,很多 Web 安全的初学者都会拿它来练习,一些高校以及相关书籍里面也会介绍它。DVWA 的项目开源地址为https://github.com/digininja/DVWA。

$ sudo docker pull citizenstig/dvwa

$ sudo docker run -d --name dvwa --rm -p80:80 citizenstig/dvwa

安装成功后,打开http://localhost

然后点击“Create/Reset Database”创建数据库,使用默认密码 admin/password 登录,即可正常使用。做题时它能直接提供阅读源码的功能,不过题目相对少一些。

在实际练习时,可以在“DVWA Security“中设置安全等级,即题目的难度等级,共有 4 等,其中 Impossible 代表的是已修复漏洞的情况,可以用来熟悉如何修复漏洞。

4. 安装 Pikachu 靶场

Pikachu 也是一款 Web 漏洞靶场,涵盖各种 Web 漏洞类型的练习,也是基于 PHP+MySQL 搭建的平台,是由国人开发的。平台采用中文描述和基本的页面设计,相比 sqli-labs 这种单调的界面还是好看很多的。Pikachu 的项目开源地址为https://github.com/zhuifengshaonianhanlu/pikachu。

$ sudo docker search pikachu

NAME                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED

area39/pikachu                        https://github.com/zhuifengshaonianhanlu/pik…   3

……

$ sudo docker pull area39/pikachu

$ sudo docker run -d --name pikachu --rm -p80:80 area39/pikachu

安装成功后,打开http://localhost即可。

5 安装 VulHub 真实漏洞靶场

Vulhub 是一款基于 Docker 和 docker-compose 的漏洞测试靶场,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。Vulhub 的项目开源地址为https://github.com/vulhub/vulhub。

前面的靶场都是精心构造的漏洞场景,与真实的漏洞场景还是有一些差异的。为了提高实战水平,熟悉更多的真实漏洞场景,建议你安装 VulHub 来重现各种历史漏洞进行实战练习。

对于每个漏洞,VulHub 都有相应的文档描述其漏洞原理以及测试利用方法,你在重现漏洞后,可以进一步研究相关漏洞类型的利用技术,并对漏洞代码进行阅读,以提高代码审计能力。

我们需要先从 GitHub 上下载 VulHub,然后进行相应目录去创建和运行容器:

$ git clone https://github.com/vulhub/vulhub

$ cd vulhub/flask/ssti

$ sudo docker-compose up -d

6 学习联系平台

XCTF 攻防世界:https://adworld.xctf.org.cn

SQL 注入挑战平台:http://redtiger.labs.overthewire.org

韩国 Web 安全挑战平台:https://webhacking.kr/

Websec CTF 练习平台:http://www.websec.fr/

网络信息安全攻防学习平台:http://hackinglab.cn/index.php

国外的 XSS 挑战平台:http://prompt.ml/

7 CTF 赛题练习

CTF(Capture The Flag)夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF 起源于 1996 年 DEFCON 全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,CTF 已经成为全球范围网络安全圈流行的竞赛形式。

一些 CTF 出题方经常会直接搭建现成的漏洞测试环境供参赛者使用,有些赛后会取消,有些会一直保留。所以你也可以直接利用现成的 CTF 赛题环境来练习,连搭建环境这一步都省去了。对于一些未保留在线赛题环境的 CTF 题目,就只能自己搭建了。

前面的漏洞靶场更新频率不高,CTF 赛题会更与时俱进一些,每年都有新比赛和新赛题,特别是新的漏洞场景和利用技术,这在 CTF 上很容易看到。

https://ctftime.org/

你可能感兴趣的:(docker,linux,安全漏洞)