1. 程式人生 > >Kali 2.0----使用Docker 搭建漏洞靶場:Vulhub

Kali 2.0----使用Docker 搭建漏洞靶場:Vulhub

注:轉載請註明出自 https://blog.csdn.net/qq_36711453/article/details/84999632

一、Docker簡述

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面。通過對應用元件的封裝、分發、部署、執行等生命週期的管理,達到應用元件級別的“一次封裝,到處執行”。這裡應用元件,即可以是Web應用,也可以是一套資料庫服務,甚至是一個作業系統或編譯器。

Docker由映象(Image)、容器(Container)、倉庫(Repository) 三大核心組成。

優點:

更快速的交付和部署(使用docker,開發人員可以用映象來快速構建一套標準的開發環境;開發完成之後,測試和運維人員可以直接使用相同環境來部署程式碼。)

更輕鬆的遷移和擴充套件(docker容器幾乎可以在任意平臺上執行,包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等。可以在不同的平臺輕鬆地遷移應用)

更簡單的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)

二、環境搭建

配置環境:Kali 2.0

1、安裝docker

       (1)通過Curl指令碼一鍵安裝docker

       curl -s https://get.docker.com/ | sh

(2)使用Kali 自帶源安裝(Redhat 使用yum 安裝)

[email protected]:~# apt-getupdate && apt-get install docker.io

2、下載環境

Vulhub是一個面向大眾的開源漏洞靶場,無需docker知識,簡單執行兩條命令即可編譯、執行一個完整的漏洞靶場映象。旨在讓漏洞復現變得更加簡單,讓安全研究者更加專注於漏洞原理本身。

vulhub網站:http://vulhub.org/

倉庫地址:git clone https://github.com/vulhub/vulhub.git

直接下載地址:https://github.com/vulhub/vulhub/archive/master.zip

[email protected]:~# git clone https://github.com/phith0n/vulhub.git

3、啟動docker並設定開機自啟動

[email protected]:~# service docker start

[email protected]:~# update-rc.d docker enable

4、檢視Docker 資訊

[email protected]:~# docker version

5、若沒有pip,則需要安裝pip
[email protected]:~#curl -s https://bootstrap.pypa.io/get-pip.py| python3

6、安裝docker-compose

Compose 是 Docker 容器進行編排的工具,定義和執行多容器的應用,可以一條命令啟動多個容器,使用Docker Compose不再需要使用shell指令碼來啟動容器。

[email protected]:~# pip install docker-compose

三、使用vulhub靶場

1、檢視Vulhub

現在進入vulhub目錄,可以看到很多測試環境目錄,每個環境目錄下都有相應的說明檔案。

2、 選定測試目錄

進入測試靶場目錄,這裡我們想測試struts2-016漏洞,可以先看下struts2目錄下現有的漏洞測試環境。隨後進入s2-016 目錄。

3、編譯靶場環境

[email protected]:~/vulhub/struts2/s2-016# docker-compose build

4、啟動整個環境

[email protected]:~/vulhub/struts2/s2-016# docker-compose up -d

5、測試環境

完成後,我們測試下訪問web頁面,這說明測試環境正常。這裡的IP地址為kali虛擬機器的IP地址:

6、漏洞驗證

我們可以用struts2漏洞檢測工具對其進行檢測。記得strtus2的頁面為:http://192.168.117.131:8080/index.action

發現其中存在s2-016、s2-045、s2-046 漏洞,這裡換k8再測試一下s2-016漏洞,執行命令後結果如下:

7、刪除環境

測試完畢之後,使用docker-compose down 即可結束服務,使環境變為初始狀態。docker-compose down

四、宿主機訪問Docker

1、檢視docker容器內系統IP

[email protected]:~/vulhub/struts2/s2-016# docker ps

找到容器內的物件的ID:2707d235e7d5

[email protected]:~/vulhub/struts2/s2-016# docker inspect 2707d235e7d5

顯示出容器內系統的IP,如:172.18.0.2

2、配置虛擬機器IP

保證宿主機(Windows 10)和Kali 2.0 虛擬機器在同一網段;

  1. 若為橋接模式,不用修改即可,跳過這一步;
  2. 若為NAT模式,作如下配置;

修改虛擬機器中的NAT模式的vmnet8的NAT IP,配置為和宿主機IP在同一網段;

此時,檢視虛擬機器IP,如此時虛擬機器IP地址為192.168.1.2,同時宿主主機(Windows 10)IP地址為:192.168.1.107

在同一段內,ping 192.168.2.2如果能通,說明IP地址配置成功;

3、新增宿主機到Docker的路由

在windows中新增相應路由即可,將訪問Docker容器的路由指向Kali 虛擬機器,以管理員身份執行powershell,在這裡新增路由如下:
ROUTE add 172.18.0.0 mask 255.255.0.0 192.168.1.2

都配置好以後,在宿主機的瀏覽器中輸入 http://docker-ip:port,這裡Docker 的IP地址和埠為上面查到的資訊,即:http://172.18.0.2:8080/

在宿主機通過容器IP和埠,成功訪問到容器。這樣在同時執行多個容器的時候,就可以通過容器IP地址和埠使用了!