美文网首页
docker手动搭建漏洞环境

docker手动搭建漏洞环境

作者: CSeroad | 来源:发表于2020-02-10 16:17 被阅读0次

    前言

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

    相关文章

      网友评论

          本文标题:docker手动搭建漏洞环境

          本文链接:https://www.haomeiwen.com/subject/rdtaxhtx.html