Docker安装与配置

本文以Ubuntu操作系统为例安装docker,然后在其搭建dvwa靶场

镜像源配置

首先就是先配置好镜像源使之在安装docker的时候更加的快速

 这个命令用于编辑 Ubuntu/Linux 系统中 /etc/apt/sources.list 文件,该文件是 APT(Advanced Package Tool)包管理工具的主要配置文件,用于指定系统从哪些源获取软件包及其更新。

sudo vim /etc/apt/sources.list

#此处以阿里云为例:
# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
# deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-
firmware
# 阿里云
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-
firmware

安装docker

先进行更新软件包,然后再进行安装docker

sudo apt-get update
sudo apt install docker.io
#随后查看docker是否安装成功
sudo docker version

安装docker-compose

#先进行更新软件包
sudo apt update
#安装curl
sudo apt install curl
#下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-
compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#给文件执行权限
sudo chmod +x /usr/local/bin/docker-compose

换源

  • 首先创建文件 /etc/docker/daemon.json

vim /etc/docker/daemon.json
  • 添加镜像地址

{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://kfwkfulq.mirror.aliyuncs.com"
    ]
}
​
  • 重启docker

sudo service docker restart
  • 查看是否生效

sudo docker info | grep Mirrors -A 4

使用docker搭建DVWA靶场

1.使用docker搜索DVWA靶场的镜像

docker search dvwa
 会得到以下列表,这些都是dvwa的别人做好的镜像
root@docker:/# docker search dvwa
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
sagikazarmark/dvwa              DVWA (Damn Vulnerable Web Application) Docke…   28                   [OK]
vulnerables/web-dvwa            Damn Vulnerable Web App (DVWA) is a PHP/MySQ…   223                  [OK]
cytopia/dvwa                    DVWA (Damn Vulnerable Web Application) with …   17                   
citizenstig/dvwa                Docker container for Damn Vulnerable Web App…   73                   [OK]
cyberxsecurity/dvwa                                                             2                    
aracloud/docker-dvwa            https://github.com/aracloud/docker-dvwa         1                    
infoslack/dvwa                                                                  12                   [OK]
astronaut1712/dvwa              Docker for DVWA LAB: https://github.com/Rand…   5                    [OK]
scotty2hotty/dvwa                                                               0                    
santosomar/dvwa                 DVWA Container for Cybersecurity Training       2                    
c0ny1/dvwa                      dvwa镜像                                        0                    
mlinarik/dvwa                                                                   0                    
howiehowerton/dvwa-howie                                                        0                    
frez0234/dvwa                                                                   0                    
rajvanshi/dvwa                                                                  0                    
waiyanwinhtain/dvwa                                                             0                    
bennalp/dvwa                                                                    0                    
luigitheplumber69/web-dvwa                                                      0                    
hightechsec/docker-dvwa         Latest Docker DVWA running on Debian 9.3        0                    
vladvantaroo/dvwa               just dvwa                                       0                    
pmuench/dvwa-container-escape   DVWA with CVE-2021-4034 for Demo                0                    
vulfocus/dvwa                                                                   0                    
kaakaww/dvwa-docker             DVWA. No setup needed, just log in. Built fr…   3                    
adrianaues/dvwa-esagent         cytopia/dvwa with ES Agent pre-installed        0                    
kravjosh/dvwa                                                                   0      

但是现在不能直接进行search,所以一种方法是直接买国外的服务器或者本地先搜看看有哪些镜像再进行pull,例如:

2.使用docker拉取指定镜像

docker pull citizenstig/dvwa
docker pull sagikazarmark/dvwa  
docker pull vulnerables/web-dvwa 

3.查看本地镜像信息

docker images

4.运行镜像,并创建一个容器

docker run -dt --name dvwa -p 8999:80 --rm citizenstig/dvwa
docker run -dt --name dvwa -p 8999:80 --rm sagikazarmark/dvwa
docker run -dt --name dvwa -p 8999:80 --rm vulnerables/web-dvwa 

docker run -dt --name arl -p 4439:5003 --rm honmashironeko/arl-docker-all 

docker run -dt --name wordpress -p 9000:80 --rm wordpress
参数解释
  • docker run:这是Docker中用于从镜像启动新容器的命令。

  • -dt:这个选项实际上是两个选项的组合,-d-t,但在这里-t(分配一个伪终端或终端)通常与交互式容器一起使用,而-d(在后台运行容器,并打印容器ID)是这里的主要用途。不过,由于-t通常与-i(即使没有附加也保持STDIN打开)一起使用来创建交互式会话,而这里只单独使用了-d,所以-t在这里实际上是多余的,可能是一个误打或者习惯用法。正确的后台运行选项应该只是-d

  • --name dvwa:这个选项允许你为即将创建的容器指定一个名称,这里是dvwa。这样,你就可以通过名称而不是容器ID来引用和操作容器了。

  • -p 8999:80:这个选项用于将容器内的端口映射到宿主机的端口上。这里,容器内的80端口(Web服务器通常监听的端口)被映射到宿主机的8999端口。这样,你就可以通过访问宿主机的8999端口来访问容器内的Web服务了。

  • --rm:这个选项告诉Docker,在容器停止后自动删除它。这有助于避免在Docker主机上积累大量不再需要的容器,从而节省空间。

  • citizenstig/dvwa:这是要从中启动容器的Docker镜像的名称。

5.查看创建的容器的id和映射的端口

docker ps -s

6.进入
docker exec -it wordpress /bin/bash

docker exec -it my-mysql mysql -u root -p

关于靶场相关问题及其处理:

以下问题在没有vi、vim等工具编辑

关于 The PHP function allow_url_include is not enabled

修改php配置文件
cd /etc/php/7.0/apache2/

- ‘‘allow_url_include=Off’’ 改为 ‘‘allow_url_include=On’’
- ‘‘display_errors=Off’’ 改为 ‘‘display_errors=On’’

可以先进行查看相关字段的附近内容:

cat php.ini | grep -C 2 'allow_url_include'

cat php.ini | grep -C 2 'display_errors'

用sed替换内容

sed -i '/^[;]*\s*allow_url_include\s*=\s*Off\s*$/s//allow_url_include=On/' php.ini

sed -i '/^[;]*\s*display_errors\s*=\s*Off\s*$/s//display_errors=On/' php.ini
关于 reCAPTCHA API key missing from config file: /var/www/html/dvwa/config/config

先到其目录
cd /var/www/html/config# ls

config.inc.php  config.inc.php.bak  config.inc.php.dist 

cat config.inc.php
原因:

出现该问题是因为使用reCAPTCHA没有申请密钥,因此需要手动填入密钥,打开提示的配置文件,找到

解决

$_DVWA[ 'recaptcha_public_key' ]  = '';
$_DVWA[ 'recaptcha_private_key' ] = '';

改为

$_DVWA[ 'recaptcha_public_key' ]  = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
添加key
sed -i "/^\$_DVWA\[ 'recaptcha_public_key' \] = '';/c\$_DVWA[ 'recaptcha_public_key' ]  = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';" config.inc.php

sed -i "/^\$_DVWA\[ 'recaptcha_private_key' \] = '';/c\$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';" config.inc.php

这里的 sed 命令做了以下几件事:

  • -i 选项表示直接修改文件内容,而不是输出到标准输出。

  • /$_DVWA\[ '\''recaptcha_public_key'\'' \]/ 是用来匹配包含旧文本的行。

  • csed 的替换命令,表示用后面的字符串替换整行。

  • \ 用于转义 '[,因为在 sed 正则表达式中这些字符有特殊含义。

请注意,在 sed 命令中,行尾的反引号()是必须的,因为它们是 sed` 命令的一部分,用于表示行继续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值