使用docker快速搭建滲透測試靶機環境

使用docker快速搭建滲透測試靶機環境

安裝docker

Docker 支持以下的 64 位 CentOS 版本:
CentOS 7
CentOS 8
更高版本…
這裏我使用的是CentOS-7-x86_64-Everything-1804.iso的鏡像。

卸載舊版本

較舊的Docker版本稱爲docker或docker-engine。如果已安裝這些程序,請卸載它們以及相關的依賴項。

$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine

安裝 Docker Engine-Community

使用 Docker 倉庫進行安裝

在新主機上首次安裝 Docker Engine-Community之前,需要設置Docker倉庫。之後,您可以從倉庫安裝和更新Docker。

設置倉庫

安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,並且 device mapper 存儲驅動程序需要 device-mapper-persistent-data 和 lvm2。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

使用以下命令來設置穩定的倉庫。

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安裝 Docker Engine-Community

$ sudo yum install docker-ce docker-ce-cli containerd.io

啓動 Docker。

$ sudo systemctl start docker

Docker加速器

由於Vulhub所有的資源均來自於Dockerhub/Github/軟件官網,而上述站點服務器在國內訪問可能存在速度慢、丟包率高等問題,導致我們在啓動Vulhub漏洞環境的時候太卡,影響正常體驗。
所以,我們首先推薦使用國外VPS進行漏洞環境的搭建,在這種情況下,平均啓動一個環境只需要30秒。
如果實在沒有條件購買國外VPS,也可以Docker加速器對Dockerhub進行加速(當然只能加速Dockerhub)。
Linux

[root@localhost ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
docker version >= 1.12
{“registry-mirrors”: [“http://f1361db2.m.daocloud.io”]}
Success.
You need to restart docker to take effect: sudo systemctl restart docker
[root@localhost ~]# sudo systemctl restart docker
該腳本可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。適用於 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有細微不同。

安裝sqli-labs

docker pull acgpiano/sqli-labs
docker run -dt --name sqli-lab -p [PORT]:80 acgpiano/sqli-labs:latest

安裝upload-labs

docker pull c0ny1/upload-labs
docker run -d -p [PORT]:80 c0ny1/upload-labs:latest

該環境默認沒有upload文件夾,需要進入容器手動創建
使用docker ps命令列出所有在運行的容器信息:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                          NAMES
b5561991f823        c0ny1/upload-labs:latest    "apache2-foreground"   7 minutes ago       Up 7 minutes        0.0.0.0:82->80/tcp             inspiring_leakey
e34db90d9d05        acgpiano/sqli-labs:latest   "/run.sh"              31 minutes ago      Up 31 minutes       3306/tcp, 0.0.0.0:81->80/tcp   sqli-lab

輸出詳情介紹:

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的鏡像。
  • COMMAND: 啓動容器時運行的命令。
  • CREATED: 容器的創建時間。
  • STATUS: 容器狀態。
    狀態有7種:
    • created(已創建)
    • restarting(重啓中)
    • running(運行中)
    • removing(遷移中)
    • paused(暫停)
    • exited(停止)
    • dead(死亡)
  • PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
  • NAMES: 自動分配的容器名稱。
    docker exec -ti [CONTAINER ID] /bin/bash

進入容器:

docker exec -ti [CONTAINER ID] /bin/bash

在網站根目錄創建upload文件夾,同時賦予相關權限:

mkdir upload
chmod 777 upload/

安裝dvwa

docker pull citizenstig/dvwa
docker run -d -p [PORT]:80 citizenstig/dvwa  #mysql密碼隨機
或
sudo docker run -d -p [PORT]:80 -p 3306:3306 -e MYSQL_PASS="root" citizenstig/dvwa  #指定mysql密碼

安裝完成後會發現reCAPTCHA key: Missing,需要進行配置,還是先docker ps查看信息,然後進入容器:

docker exec -ti [CONTAINER ID] /bin/bash

按如下要求編輯配置文件:

vi /var/www/html/config/config.inc.php

在config.inc.php文件中找到下面代碼:

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

修改爲:

$_DVWA[ 'recaptcha_public_key' ] = '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';
$_DVWA[ 'recaptcha_private_key' ] = '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K';

安裝Pikachu

git clone https://github.com/zhuifengshaonianhanlu/pikachu
cd pikachu/
docker build -t "pikachu" .
docker run -d -p [PORT]:80 pikachu

容器啓動後,環境自帶MySQL,默認用戶名root,默認密碼爲空。
訪問web頁面,會看到一個紅色的熱情提示【歡迎使用,pikachu還沒有初始化,點擊進行初始化安裝!】,點擊即可完成安裝。
注意Pikachu有一個xss後臺,默認配置文件密碼與環境中MySQL密碼不一致,需要修改:

docker exec -ti [CONTAINER ID] /bin/bash
vim /var/www/html/pkxss/inc/config.inc.php

源文件

<?php
//全局session_start
session_start();
//全局居設置時區
date_default_timezone_set('Asia/Shanghai');
//全局設置默認字符
header('Content-type:text/html;charset=utf-8');
//定義數據庫連接參數
define('DBHOST', 'localhost');//將localhost修改爲數據庫服務器的地址
define('DBUSER', 'root');//將root修改爲連接mysql的用戶名
define('DBPW', 'pakachu');//將root修改爲連接mysql的密碼
define('DBNAME', 'pkxss');//自定義,建議不修改
define('DBPORT', '3306');//將3306修改爲mysql的連接端口,默認tcp3306

?>

修改爲

<?php
//全局session_start
session_start();
//全局居設置時區
date_default_timezone_set('Asia/Shanghai');
//全局設置默認字符
header('Content-type:text/html;charset=utf-8');
//定義數據庫連接參數
define('DBHOST', 'localhost');//將localhost修改爲數據庫服務器的地址
define('DBUSER', 'root');//將root修改爲連接mysql的用戶名
define('DBPW', '');//將root修改爲連接mysql的密碼
define('DBNAME', 'pkxss');//自定義,建議不修改
define('DBPORT', '3306');//將3306修改爲mysql的連接端口,默認tcp3306

?>

修改完成後在【管理工具】-【XSS後臺】中點擊初始化。
最後,打開瀏覽器,訪問本機ip:[port]即可訪問靶機環境。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章