docker手动搭建漏洞环境

2020-02-10  本文已影响0人  CSeroad

前言

公司需要每个人手动搭建一套自己的靶机。笔者这里选择修改公开的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/"]
image.png

重启docker即可使用。

docker 常用命令

因为环境搭建,这里只把我本次用到的docker命令贴在这。

docker pull centos:7  从 docker 镜像仓库获取镜像
docker images  查看创建的镜像
-a 所以镜像,包括未运行的
docker run -it IMAGES ID  /bin/bash 使用系统镜像来运行容器
-it  以交互模式运行
docker commit CONTAINER ID docker-centos 将容器打包成镜像
docker exec -it CONTAINER ID bash 进入容器
docker ps 列出容器
-a 全部容器,包括未运行的
docker stop $(docker ps -a -q) 停止所有容器
docker rm $(docker ps -a -q)  删除所有容器
docker rmi -f REPOSITORY:TAG  删除本地一个镜像
REPOSITORY:TAG  镜像名和标识
-f 强制删除
docker run -itd  -p 80:80  --privileged -e "container=docker" REPOSITORY  /usr/sbin/init  启动容器,解决centos7容器无法使用systemctl命令的问题
--privileged 可以获取一个root权限
-d 放在后台
-p 指定端口映射,宿主端口:容器端口
-e "container=docker"  设定环境变量

搭建漏洞环境

使用centos 7的基础镜像,手动安装java、wget、nmap等命令。自己搭建靶机。

yum -y install wget git tar zip  安装必备命令
yum -y install java-1.8.0-openjdk  安装java 1.8

安装Lnmp集成环境

wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz 

下载lnmp集成环境,解压后运行install.sh文件即可

image.png

注意默认安装的php是5.3.38版本(个别cms不支持该版本)
网站默认路径在/home/wwwroot/default/目录下
默认安装的php权限为www权限
cat /usr/local/php/etc/php-fpm.conf查看该文件可看到

listen.owner = www
listen.group = www

部署cms漏洞

笔者先在windows上手动调试了cms漏洞,然后将其打包。使用wget命令可下载到docker。
删除install.lock.php文件可重新安装。
修改默认路径
vim usr/local/nginx/conf/nginx.conf

image.png
systemctl stop nginx.service  停止nginx
systemctl start nginx.service  启动nginx

坑点:

如果出现一下错误
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

image.png

解决办法:将Nginx进程手动结束掉

netstat -tunlp  查看端口、进程号
kill -9 PID  结束进程
image.png

搭建的cms无法执行系统命令
是因为php.ini配置文件中disable_function函数的作用
vim /usr/local/php/etc/php.ini 编辑该文件的注释disable_function
systemctl restart php-fpm重启php

部署Apache-Tomcat漏洞

在安装java 1.8 环境后。笔者直接copy了之前在windows上搭建的Apache-Tomcat 7.0.70漏洞集成环境。包含axis2、manager 弱口令、shiro框架、fastjson反序列化漏洞等等。

image.png

部署tomcat后,运行apache-tomcat/bin/startup.sh即可。
但是当退出容器后,tomcat就不再运行。
编写run.sh并添加进开机自启项
run.sh

#!/bin/bash
systemctl start php-fpm
systemctl start nginx.service
systemctl start mysql.service
sh /opt/apache-tomcat7.0/bin/startup.sh

添加开机自启项
vim /etc/rc.d/rc.local

image.png

并启用rc-local服务
设置权限

chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.local

启用rc-local服务

systemctl start rc-local.service
systemctl status rc-local.service

这样就设置好了自启动tomcat。
将该容器创建成镜像即可。
docker同时启动nginx、tomcat服务。

docker run -itd  -p 80:80 -p 8080:8080  --privileged -e "container=docker" REPOSITORY  /usr/sbin/init

设置用户权限

在默认安装的lnmp环境中默认禁止www登录。
修改为可登录
usermod -s /bin/bash www
并为www用户设置密码
passwd www
且将opt目录赋予www权限
chown -R www:www /opt

上一篇下一篇

猜你喜欢

热点阅读