前言
公司需要每個人手動搭建一套自己的靶機(jī)庶灿。筆者這里選擇修改公開的cms,在docker上搭建大小不同的多個漏洞吃衅。
Mac安裝docker
訪問該https://download.docker.com/mac/stable/Docker.dmg
地址下載安裝即可往踢。
配置加速器
訪問https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
該地址獲取鏡像加速器地址。
cat ~/.docker/daemon.json
在該配置文件添加registry-mirrors
"registry-mirrors":["https://nyurfnh3.mirror.aliyuncs.com/"]
重啟docker即可使用徘层。
docker 常用命令
因為環(huán)境搭建峻呕,這里只把我本次用到的docker命令貼在這。
docker pull centos:7 從 docker 鏡像倉庫獲取鏡像
docker images 查看創(chuàng)建的鏡像
-a 所以鏡像趣效,包括未運行的
docker run -it IMAGES ID /bin/bash 使用系統(tǒng)鏡像來運行容器
-it 以交互模式運行
docker commit CONTAINER ID docker-centos 將容器打包成鏡像
docker exec -it CONTAINER ID bash 進(jìn)入容器
docker ps 列出容器
-a 全部容器瘦癌,包括未運行的
docker stop $(docker ps -a -q) 停止所有容器
docker rm $(docker ps -a -q) 刪除所有容器
docker rmi -f REPOSITORY:TAG 刪除本地一個鏡像
REPOSITORY:TAG 鏡像名和標(biāo)識
-f 強(qiáng)制刪除
docker run -itd -p 80:80 --privileged -e "container=docker" REPOSITORY /usr/sbin/init 啟動容器,解決centos7容器無法使用systemctl命令的問題
--privileged 可以獲取一個root權(quán)限
-d 放在后臺
-p 指定端口映射跷敬,宿主端口:容器端口
-e "container=docker" 設(shè)定環(huán)境變量
搭建漏洞環(huán)境
使用centos 7的基礎(chǔ)鏡像摸柄,手動安裝java洛搀、wget、nmap等命令。自己搭建靶機(jī)器瘪。
yum -y install wget git tar zip 安裝必備命令
yum -y install java-1.8.0-openjdk 安裝java 1.8
安裝Lnmp集成環(huán)境
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz
下載lnmp集成環(huán)境绅项,解壓后運行install.sh文件即可
注意默認(rèn)安裝的php是5.3.38版本(個別cms不支持該版本)
網(wǎng)站默認(rèn)路徑在/home/wwwroot/default/目錄下
默認(rèn)安裝的php權(quán)限為www權(quán)限
cat /usr/local/php/etc/php-fpm.conf
查看該文件可看到
listen.owner = www
listen.group = www
部署cms漏洞
筆者先在windows上手動調(diào)試了cms漏洞赁咙,然后將其打包今野。使用wget命令可下載到docker。
刪除install.lock.php文件可重新安裝肿仑。
修改默認(rèn)路徑
vim usr/local/nginx/conf/nginx.conf
systemctl stop nginx.service 停止nginx
systemctl start nginx.service 啟動nginx
坑點:
如果出現(xiàn)一下錯誤
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
解決辦法:將Nginx進(jìn)程手動結(jié)束掉
netstat -tunlp 查看端口致盟、進(jìn)程號
kill -9 PID 結(jié)束進(jìn)程
搭建的cms無法執(zhí)行系統(tǒng)命令
是因為php.ini配置文件中disable_function函數(shù)的作用
vim /usr/local/php/etc/php.ini
編輯該文件的注釋disable_function
systemctl restart php-fpm
重啟php
部署Apache-Tomcat漏洞
在安裝java 1.8 環(huán)境后。筆者直接copy了之前在windows上搭建的Apache-Tomcat 7.0.70漏洞集成環(huán)境尤慰。包含axis2馏锡、manager 弱口令、shiro框架伟端、fastjson反序列化漏洞等等杯道。
部署tomcat后,運行apache-tomcat/bin/startup.sh即可责蝠。
但是當(dāng)退出容器后党巾,tomcat就不再運行。
編寫run.sh并添加進(jìn)開機(jī)自啟項
run.sh
#!/bin/bash
systemctl start php-fpm
systemctl start nginx.service
systemctl start mysql.service
sh /opt/apache-tomcat7.0/bin/startup.sh
添加開機(jī)自啟項
vim /etc/rc.d/rc.local
并啟用rc-local服務(wù)
設(shè)置權(quán)限
chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.local
啟用rc-local服務(wù)
systemctl start rc-local.service
systemctl status rc-local.service
這樣就設(shè)置好了自啟動tomcat霜医。
將該容器創(chuàng)建成鏡像即可齿拂。
docker同時啟動nginx、tomcat服務(wù)肴敛。
docker run -itd -p 80:80 -p 8080:8080 --privileged -e "container=docker" REPOSITORY /usr/sbin/init
設(shè)置用戶權(quán)限
在默認(rèn)安裝的lnmp環(huán)境中默認(rèn)禁止www登錄署海。
修改為可登錄
usermod -s /bin/bash www
并為www用戶設(shè)置密碼
passwd www
且將opt目錄賦予www權(quán)限
chown -R www:www /opt