精通METASPLOIT渗透测试(第3版)自建docker靶场

本文介绍了如何使用Docker和docker-compose在多平台上构建phpcollab靶场,包括安装、配置和解决权限问题。同时提及了MSF的使用,以及在特定版本中遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

首先要感谢原书作者及国内译者(哈哈哈),书有了,但是靶场没有,给的GITHUB里也只是写payload片段,没有靶机看着确实无聊。自己动手做吧。开始是用的安装方式,但是这个无法分享。还是做成docker吧。我会做一个发一个。有些因为涉及提权,我还是按照书上建议的操作系统进行安装。

主要思路:docker的靶场,除了操作系统,充分考虑利旧。因为这个第一张涉及的靶场有3台主机而且跨网段。又有不同的linux还有win7的.这个试验就全用docker.至少3个主机可以利旧做其他靶场的宿主机。总体思路,靶场全用docker,可多次利用,是在不行的再重操作系统搭。最后还是没用docker compose.直接docker就解决了,用supervisord调度启动。

第一章的靶场

涉及3个机器,后面两个靶机不考虑docker了,因为靶机二是win7里的disk pulse enterprise 9.9.16的服务漏洞导致的提权,并发现一个wincsp程序缓存的密钥 凭证,登录到靶机三。靶机二的软件找不到呀disk pulse enterprise 9.9.16找不到~~自己用了win7 sp1 没打补丁的用永恒之蓝的ms17-010提权吧,再在这个上面装个winscp 5.7就行了,自己去抓密钥吧(winSCP访问了靶机三)。~   靶机三第一章并未涉及(先到这里)。

1、phpcollab 2.5.1靶场(ubuntu14.04+phpcollab 2.5.1)

1.1 必须自己安装的基础环境

unbuntu 14.04 LTS (默认安装,安装中最好不要选择安全和升级那个选项。)

这个自行百度.安装过程唯一说明的是SSH SERVER装了,方便调试。还有建议用英文的,不然有的地方要乱码,看着难受。

后续都用远程工具,这个各自选自己觉得好用的吧。

安装 Docker+dockerCompose

注意:因为安装的docker和dockercompose都是老版本的,所以可能有些地方会有点小问题。避坑的地方我提示了。

更新包索引:
sudo apt-get update

安装依赖项:
安装一些必要的依赖项,以便 apt 可以通过 HTTPS 使用包:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

设置稳定版仓库:
添加 Docker 的官方 APT 仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再次更新包索引:
添加了新的仓库后,再次更新包索引:
sudo apt-get update

安装 Docker:
sudo apt-get install docker.io

验证 Docker 安装:
安装完成后,您可以运行以下命令来检查 Docker 是否正确安装:
sudo docker run hello-world(这个地方有坑,不支持老版本的了,随便pull一个你知道的image看是否成功就是了)

安装 Docker Compose

下载 Docker Compose:
curl 从其官方 GitHub 仓库下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.3.0/docker-compose-Darwin-x86_64" -o /usr/local/bin/docker-compose

有坑,老下不下来,我直接去https://github.com/docker/compose/releases翻出来下载到本地传到服务器,该复制改名成 /usr/local/bin/docker-compose的。

修改执行权限:
对下载的二进制文件应用执行权限:
sudo chmod +x /usr/local/bin/docker-compose

测试安装:
docker-compose --version

1.2 制作文件

都放在lamp文件下结构如下

lamp/: 主目录,包含Docker相关文件。

      Dockerfile: Docker配置文件。

      supervisord.conf: Supervisor配置文件

       phpcollab/: phpcollab文件夹(解压缩有漏洞的2.5.1后)。

lamp需要  www-data:www-data的访问权限。

dockerfile

包含了ubuntu14.04及数据库和php及apache

# Ubuntu 14.04 LAMP 镜像
FROM ubuntu:14.04
MAINTAINER YourName


# 安装 Apache, MySQL, PHP 以及必要的扩展(删除mydql登录限制,后面我是用数据库工具连进去创建了一个初始化需要的phpcollab数据库)
RUN apt-get update \
    && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \
    && DEBIAN_FRONTEND="noninteractive" apt-get install -y apache2 mysql-server supervisor \
    && echo "ServerName localhost:80" >> /etc/apache2/apache2.conf \
    && sed -i "s/bind-address/#bind-address/g" /etc/mysql/my.cnf \
    && DEBIAN_FRONTEND="noninteractive" apt-get install -y php5 php5-mysql php5-mcrypt curl php5-curl php5-gd php5-json \
    && php5enmod mcrypt \
    && rm -rf /var/lib/apt/lists/*

# 配置时区(不然页面要报错)
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata \
    && mkdir -p /var/lock/apache2

# 设置 Apache 环境变量(这个都是默认的,似乎可以不要)
ENV APACHE_RUN_USER=www-data \
    APACHE_RUN_GROUP=www-data \
    APACHE_LOG_DIR=/var/log/apache2 \
    APACHE_PID_FILE=/var/run/apache2.pid \
    APACHE_RUN_DIR=/var/run/apache2 \
    APACHE_LOCK_DIR=/var/lock/apache2 \
    APACHE_SERVERADMIN=admin@localhost \
    APACHE_SERVERNAME=localhost \
    APACHE_SERVERALIAS=docker.localhost \
    APACHE_DOCUMENTROOT=/var/www

# 复制 supervisord 配置文件
COPY ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf


# 启动 MySQL 并设置权限(我这里使用的是空密码,远程也是空密码)
RUN service mysql start \
    && mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ''; FLUSH PRIVILEGES;" \
    && mysql -u root -p -e "show databases;"

# 映射端口 80 和 3306
EXPOSE 80 3306

# 运行 supervisord
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]


supervisord.conf

[supervisord]
nodaemon=true
[program:apache2]
command=/usr/sbin/apache2 -DFOREGROUND
[program:mysql]
command=/usr/bin/mysqld_safe

phpcollab文件

      解压后需要做的 把including里面的settings_default.php复制一个重命名为settings.php(初始化过程需要,还是在including下面)

     这个文件需要  chmod 777权限。

1.3 制作文件

   拉镜像

在lamp目录下执行

 sudo docker build -t lamp:test .

  启动虚机

sudo docker run -d -p 80:80 -p 3306:3306 -v /home/XXXXX/lamp/phpcollab:/var/www/html/phpcollab lamp:test

里面的挂载似乎不能相对路径,请自行修改填写你的本地绝对路径。

web的服务启动完成  请使用sudo  docker ps 确认正常启动。

1.4初始化

  web的服务启动完成

     浏览器访问

   IP/phpcollab/installation/setup.php的页面,你访问其他页面这会都是白板.

最下方选择offline点step2

填写相关配置

页面完成。

此靶场1搭建完成。

注意:完成会发现写问题。msf写入失败,因为权限问题。需要进去docker把phpcollab文件的权限改了。 有点简单粗暴,不过测试嘛,无所谓了。

root@0fb191655b8f:/var/www/html#chown -R www-data:www-data phpcollab/
root@0fb191655b8f:/var/www/html# chmod -R 777 phpcollab/     

MSF的字典可以用dirb的big.txt

本章的msfvenom生成后门是生成的elf可能不能用(感觉是这个版本的问题),需要在msf6里的payload上generate生成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值