一闷愤、Docker簡(jiǎn)述1整葡、安裝docker
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中讥脐,然后發(fā)布到任何流行的Linux機(jī)器上掘宪,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制攘烛,相互之間不會(huì)有任何接口魏滚。通過(guò)對(duì)應(yīng)用組件的封裝、分發(fā)坟漱、部署鼠次、運(yùn)行等生命周期的管理,達(dá)到應(yīng)用組件級(jí)別的“一次封裝芋齿,到處運(yùn)行”腥寇。這里應(yīng)用組件,即可以是Web應(yīng)用觅捆,也可以是一套數(shù)據(jù)庫(kù)服務(wù)赦役,甚至是一個(gè)操作系統(tǒng)或編譯器。
Docker由鏡像(Image)栅炒、容器(Container)掂摔、倉(cāng)庫(kù)(Repository) 三大核心組成。
優(yōu)點(diǎn):
更快速的交付和部署(使用docker赢赊,開發(fā)人員可以用鏡像來(lái)快速構(gòu)建一套標(biāo)準(zhǔn)的開發(fā)環(huán)境;開發(fā)完成之后乙漓,測(cè)試和運(yùn)維人員可以直接使用相同環(huán)境來(lái)部署代碼。)
更輕松的遷移和擴(kuò)展(docker容器幾乎可以在任意平臺(tái)上運(yùn)行释移,包括物理機(jī)叭披、虛擬機(jī)、公有云玩讳、私有云涩蜘、個(gè)人電腦嚼贡、服務(wù)器等⊥耄可以在不同的平臺(tái)輕松地遷移應(yīng)用)
更簡(jiǎn)單的更新管理(使用Dockerfile粤策,只需要修改小小的配置,就可以替代以往大量的更新工作)
二剩辟、環(huán)境搭建
?????? 1掐场、安裝docker
? ? (1)通過(guò)Curl腳本一鍵安裝docker
?????? curl -s https://get.docker.com/ | sh
? ? ?(2)使用Kali 自帶源安裝(Redhat 使用yum 安裝)
? ? ? ?root@kali:~# apt-get update && apt-get install docker.io
2、下載環(huán)境
Vulhub是一個(gè)面向大眾的開源漏洞靶場(chǎng)贩猎,無(wú)需docker知識(shí)熊户,簡(jiǎn)單執(zhí)行兩條命令即可編譯、運(yùn)行一個(gè)完整的漏洞靶場(chǎng)鏡像吭服。旨在讓漏洞復(fù)現(xiàn)變得更加簡(jiǎn)單嚷堡,讓安全研究者更加專注于漏洞原理本身。
vulhub網(wǎng)站:http://vulhub.org/
倉(cāng)庫(kù)地址:git clone https://github.com/vulhub/vulhub.git
直接下載地址:https://github.com/vulhub/vulhub/archive/master.zip
root@kali:~# git clone?https://github.com/phith0n/vulhub.git
3艇棕、啟動(dòng)docker并設(shè)置開機(jī)自啟動(dòng)
root@kali:~# service docker start
root@kali:~# update-rc.d docker enable
4蝌戒、查看Docker 信息
root@kali:~# docker version
5、若沒有pip沼琉,則需要安裝pip
root@kali:~#curl -s https://bootstrap.pypa.io/get-pip.py| python3
6北苟、安裝docker-compose
Compose 是 Docker 容器進(jìn)行編排的工具,定義和運(yùn)行多容器的應(yīng)用打瘪,可以一條命令啟動(dòng)多個(gè)容器友鼻,使用Docker Compose不再需要使用shell腳本來(lái)啟動(dòng)容器。
root@kali:~# pip install docker-compose
注意事項(xiàng):
1).若安裝docker-compose過(guò)程中出現(xiàn):
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.(錯(cuò)誤:無(wú)法卸載'PyYAML'闺骚。這是一個(gè)distutils安裝的項(xiàng)目彩扔,因此我們不能準(zhǔn)確地確定哪些文件屬于它,這只會(huì)導(dǎo)致部分卸載僻爽。)
則將語(yǔ)句改為:pip install docker-compose?--ignore-installed PyYAML(即加--ignore-installed PyYAML)虫碉。通過(guò) pip 安裝 kolla-ansible時(shí),忽略某些依賴胸梆,此處為PyYAML敦捧。
2).若安裝docker-compose過(guò)程中出現(xiàn):
ERROR: docker-compose 1.25.0 has requirement PyYAML<5,>=3.10, but you'll have pyyaml 5.2 which is incompatible.則為兼容問題。執(zhí)行sudo pip install six --user -U后安裝即可乳绕。
三绞惦、使用vulhub靶場(chǎng)
1、查看Vulhub
現(xiàn)在進(jìn)入vulhub目錄洋措,可以看到很多測(cè)試環(huán)境目錄,每個(gè)環(huán)境目錄下都有相應(yīng)的說(shuō)明文件杰刽。
2菠发、?選定測(cè)試目錄
進(jìn)入測(cè)試靶場(chǎng)目錄王滤,這里我們想測(cè)試struts2-016漏洞,可以先看下struts2目錄下現(xiàn)有的漏洞測(cè)試環(huán)境滓鸠。隨后進(jìn)入s2-016 目錄雁乡。
3、編譯靶場(chǎng)環(huán)境
root@kali:~/vulhub/struts2/s2-016# docker-compose build
4糜俗、啟動(dòng)整個(gè)環(huán)境
root@kali:~/vulhub/struts2/s2-016# docker-compose up -d
5踱稍、測(cè)試環(huán)境
完成后,我們測(cè)試下訪問web頁(yè)面,這說(shuō)明測(cè)試環(huán)境正常悠抹。這里的IP地址為kali虛擬機(jī)的IP地址:
6珠月、漏洞驗(yàn)證
我們可以用struts2漏洞檢測(cè)工具對(duì)其進(jìn)行檢測(cè)。記得strtus2的頁(yè)面為:http://192.168.117.131:8080/index.action
發(fā)現(xiàn)其中存在s2-016楔敌、s2-045啤挎、s2-046 漏洞,這里換k8再測(cè)試一下s2-016漏洞卵凑,執(zhí)行命令后結(jié)果如下:
7庆聘、刪除環(huán)境
測(cè)試完畢之后,使用docker-compose down 即可結(jié)束服務(wù)勺卢,使環(huán)境變?yōu)槌跏紶顟B(tài)伙判。
docker-compose down
四、宿主機(jī)訪問Docker
1黑忱、查看docker容器內(nèi)系統(tǒng)IP
root@kali:~/vulhub/struts2/s2-016# docker ps
找到容器內(nèi)的對(duì)象的ID:2707d235e7d5
root@kali:~/vulhub/struts2/s2-016# docker inspect 2707d235e7d5
顯示出容器內(nèi)系統(tǒng)的IP宴抚,如:172.18.0.2
2、配置虛擬機(jī)IP
保證宿主機(jī)(Windows 10)和Kali 2.0 虛擬機(jī)在同一網(wǎng)段杨何;
若為橋接模式酱塔,不用修改即可,跳過(guò)這一步危虱;
若為NAT模式羊娃,作如下配置;
修改虛擬機(jī)中的NAT模式的vmnet8的NAT IP埃跷,配置為和宿主機(jī)IP在同一網(wǎng)段蕊玷;
此時(shí),查看虛擬機(jī)IP弥雹,如此時(shí)虛擬機(jī)IP地址為192.168.1.2垃帅,同時(shí)宿主主機(jī)(Windows 10)IP地址為:192.168.1.107
在同一段內(nèi),ping 192.168.1.2如果能通剪勿,說(shuō)明IP地址配置成功贸诚;
3、添加宿主機(jī)到Docker的路由
在windows中添加相應(yīng)路由即可,將訪問Docker容器的路由指向Kali 虛擬機(jī)酱固,以管理員身份運(yùn)行powershell械念,在這里添加路由如下:
ROUTE add 172.18.0.0 mask 255.255.0.0 192.168.1.2
都配置好以后,在宿主機(jī)的瀏覽器中輸入 http://docker-ip:port运悲,這里Docker 的IP地址和端口為上面查到的信息龄减,即:http://172.18.0.2:8080/
在宿主機(jī)通過(guò)容器IP和端口,成功訪問到容器班眯。這樣在同時(shí)運(yùn)行多個(gè)容器的時(shí)候希停,就可以通過(guò)容器IP地址和端口使用了!