首先要感谢原书作者及国内译者(哈哈哈),书有了,但是靶场没有,给的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文章来源:https://www.toymoban.com/news/detail-801080.html
本章的msfvenom生成后门是生成的elf可能不能用(感觉是这个版本的问题),需要在msf6里的payload上generate生成。文章来源地址https://www.toymoban.com/news/detail-801080.html
到了这里,关于精通METASPLOIT渗透测试(第3版)自建docker靶场的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!