書接上回,我剛搞完docker累個半死,本以為只要拉取vulhub鏡像就大功告成了,結(jié)果還需要docker-compose而這個東西又要用pip來安裝,心態(tài)直接炸裂。不過搞還是要搞得,畢竟搞到一半了放棄了太可惜了。
Python安裝
由于centos7里自帶python2 所以只需要安裝python3就可以,python3我選擇直接安裝anaconda3,因為里面集成了很多第三方庫,很實用,重要的是里面就有pip和git,打開centos自帶的firefox,訪問https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh直接下載最新版本
不想要最新版還有版本目錄可以選擇性下載,連python1的都有https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
下載完成之后cd到下載目錄然后
cd /下載/
執(zhí)行安裝命令
bash Anaconda3-4.3.1-Linux-x86_64.sh
版本可能不一樣,之后一直回車,要選擇的地方就填yes,注意最后一個是是否添加VScode編輯器,可加可不加。
坑又來了,安裝完成之后使用conda --version提示不是系統(tǒng)命令,這就說明軟件目錄并沒有添加到path里面,又要叨擾度娘娘,結(jié)果又搜到一篇每天堅持一點點的博客
雖然標題是ubuntu但是都是linux通用的命令
# 將anaconda的bin目錄加入PATH,根據(jù)版本不同
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
之后pip,python3,conda都可以用了。
vulhub安裝
兜兜轉(zhuǎn)轉(zhuǎn)終于到了主題所說的vulhub安裝了,vulhub是基于docker以及docker-compose的。上面安裝python環(huán)境也是為了安裝docker-compose做準備。這一部分我是借鑒的freebuf大神禿頂?shù)男澳畹囊黄恼?br> https://www.freebuf.com/sectool/165062.html
pip install docker-compose
輸入之后發(fā)現(xiàn)pip版本過低,conda3里的版本是10.0.1,先更新pip到19.2
pip install --upgrade pip
再安裝docker-compose就可以安裝了
docker安裝中會遇到一些問題:
只能啟動client,無法啟動server
這需要更改配置文件
warning: /var/cache/yum/x86_64/7/docker-ce-edge/packages/docker-ce-18.02.0.ce-1. el7.centos.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY Public key for docker-ce-18.02.0.ce-1.el7.centos.x86_64.rpm is not installed
意思:docker-ce-18.02.0.ce-1.el7.centos.x86_64.rpm 公鑰未安裝,key沒有導入
解決方法:
[root@localhost ~]# wget https://get.docker.com/gpg
[root@localhost ~]# rpmkeys --import ./gpg
[root@localhost ~]# systemctl start docker.service
[root@localhost ~]# docker version
這個問題我沒遇到,但是用docker version命令沒有server,按照他的做了也沒有啟動server不知道為什么,,,現(xiàn)在知道了,是因為在root權(quán)限下或者demo模式下會全部顯示,在普通用戶權(quán)限下只會顯示客戶端不顯示服務(wù)端。
基礎(chǔ)配置好了現(xiàn)在就要下載vulhub源文件來安裝環(huán)境,使用anaconda3自帶的git將項目克隆到本地
git clone https://github.com/vulhub/vulhub.git
這樣就下載完了,之后進入到某個漏洞目錄
cd vulhub/struts2/s2-016
因為之前啟動了docker所以不用再次啟動了,沒啟動就要再啟動一次
systemctl start docker
然后直接兩條命令搭建環(huán)境,或者說一條就可以
docker-compose build #(可選)
docker-compose up -d
PS: 為什么 docker-compose build是可選的?
docker-compose up -d運行后,會自動查找當前目錄下的配置文件。如果配置文件中包含的環(huán)境均已經(jīng)存在,則不會再次編譯;如果配置文件中包含的環(huán)境不存在,則會自動進行編譯。所以,其實 docker-compose up -d命令是包含了 docker-compose build的。
如果更新了配置文件,你可以手工執(zhí)行 docker-compose build來重新編譯靶場環(huán)境。
等待運行結(jié)束,即可自動配置好環(huán)境,然后運行
直接可以本地訪問相應端口或者查找虛擬機ip用主機訪問。
使用完畢就可以結(jié)束服務(wù),使環(huán)境變?yōu)槌跏紶顟B(tài)。
docker-compose down
上述命令會執(zhí)行如下幾個動作:
關(guān)閉正在運行的容器
刪除所有相關(guān)容器
移除NAT(docker-compose在運行的時候會創(chuàng)建一個NAT網(wǎng)段)