使用Docker環境快速搭建靶機環境
在實際學習中,經常需要模擬不同的漏洞環境,而使用公網的例項的話,多多少少又存在一些風險,因此能搭建一個本地的模擬環境去測試漏洞是一個不錯的方案。Docker是近兩年來十分流行的開源容器引擎,因此也出現了很多使用Docker容器搭建的靶機環境供新手學習和使用。
這次我們來介紹兩款使用docker進行搭建的集成了各種漏洞的靶機環境:
1. 由Phithon維護的Vulhub
專案地址:https://github.com/phith0n/vulhub
Vulhub是一個面向大眾的開源漏洞靶場,無需Docker知識,簡單執行兩條命令即可編譯、執行一個完整的漏洞靶場映象。
2. 由 Medicean 維護的Vulapp專案地址:https://github.com/Medicean/VulApps
Vulapp收集各種漏洞環境,為方便使用,統一採用 Dockerfile 形式。同時也收集了安全工具環境。
下面來介紹下如果用Docker去搭建Vulhub和Vulapps
搭建Vulhub
準備環境:
以下在Ubuntu16.04中操作
1.在ubuntu16.04中安裝pip
curl -shttps://bootstrap.pypa.io/get-pip.py | python3
2.安裝docker
apt-get update && apt-getinstall docker.io
3.啟動docker服務
service docker start
4.安裝compose
pip install docker-compose
拉取vulhub
由於國內“不可描述的”原因,使用git clone拉取vulhub可能出現各類不可描述的情況。因此建議直接從github上下載專案就好了
當然,如果你的網路足夠穩定的話,也可以使用下面的命令進行拉取。
git clone [email protected]:phith0n/vulhub.git
這裡以struts環境為例,開啟struts2下的s2-016目錄
cd vulhub/struts/s2-016
線上自動化編譯docker環境
docker-compose build
注意:
docker自身出錯的情況,多出現在使用的docker/docker-compose版本較老時出現的BUG,最好使用最新版docker測試vulhub專案。原始碼編譯失敗的情況也可能出現,vulhub中的環境全部基於官方映象編譯,官方映象可能會更新與升級,linux系統升級後可能造成編譯上有一定差別,部分老原來就可能編譯不成功了。
如果反覆出現編譯不了的情況的話,建議使用作者已經編譯好並傳到dockerhub的映象:
https://hub.docker.com/u/vulhub/
使用方法是將docker-compose.yml裡build: .替換成image:vulhub/xxxx
啟動docker環境
docker-compose up -d
這時訪問http://your-ip:8080/link.action就可以看到環境已經搭建好了。
這時再去使用struts2的利用工具就可以愉快的測試漏洞了
特別需要注意一點的是,vulhub裡的漏洞並不是每一個都需要編譯的,建議在執行之前到github上去看下關於特定漏洞的配置說明。
搭建Vulapp
對於沒有docker基礎的新手,建議使用vulapp的線上拉取映象。如果國內訪問速度很慢的話,建議將docker源替換成國內源:
推薦使用中科大源,替換方法可以參考中科大的說明文件。
Vulapp中每一個漏洞的readme.md文件中包含了詳細的安裝過程只需按照說明去拉取進行並啟動環境即可。
按照使用說明教程搭建了wordpress的phpmailer漏洞復現環境
總結
雖然這裡只是使用了github中開源的漏洞復現環境進行了介紹,但是也給很多新人學習漏洞和滲透測試的一個新的思路。Docker可以說是近兩年一個特別火熱的話題,它以輕巧、簡單、開源著稱,對於新人來說,使用docker去快速搭建一個靶機環境進行測試莫過於成本最低的一個方法,然而對於不太熟練docker的新手來說,vulapp和vulhub又是一個極為節省時間且十分高效的一個方案。
Vulhub和vulapp都是非常不錯的一套靶機環境,這兩款靶機環境都涵蓋了最近一段時間比較流行的漏洞。特別值得一提的是vulapp不僅僅包含了漏洞還包含了漏洞利用的工具,這也給新人搭建環境測試漏洞提供了便利。這裡也要給vulhub和vulapp的維護者點個贊,這兩套靶機環境的最近更新時間均為半個月之內,同時也涵蓋了最近兩個月的漏洞,需要感謝他們的開源才使得更多新人能夠更快學到更多知識。