使用 docker 快速搭建 Permeate 渗透测试系统实践

一、背景

笔者最近在做一场Web安全培训,其中需要搭建一套安全测试环境;在挑选渗透测试系统的时候发现permeate渗透测试系统比较满足需求,便选择了此系统;为了简化这个步骤,笔者将系统直接封装到了docker当中,同时编写了一套启动文档,希望到时候给学员和读者参考。

二、操作实践

  1. 数据库搭建
  2. permeate搭建
  3. 安装配置

三、数据库搭建

permeate渗透测试系统使用的数据库是MySQL,因此笔者需要先安装mysql数据库服务,为了简化安装,便直接使用了docker方式进行,参考命令如下

docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123 -d -i -p 3309:3306  mysql:5.6

启动之后,可以使用宿主机的MySQL管理软件连接测试,如下图所示

image

四、permeate搭建

在安装完MySQL服务之后,便可以安装permeate系统了,笔者已经将所需PHP和nginx环境封装好了,因此只需下载镜像运行即可

4.1 运行容器

在运行容器时候需要考虑两个问题,首先需要将web端口映射出来宿主机才可以访问,第二个是需要考虑此容器要能访问得到mysql服务,因此参考命令如下:

docker run --name permeate_test --link mysqlserver:db  -d -i  -p 8888:80  registry.cn-hangzhou.aliyuncs.com/daxia/websafe:init

4.2 启动服务

在启动容器之后,通过浏览器访问http://localhost:8888/并不能打开网页,原因是因为nginx服务和PHP服务都还未启动,启动的命令参考如下所示:

docker exec permeate_test zsh -c "nginx && /usr/sbin/php-fpm7.2  -R"

此时再通过浏览器访问http://localhost:8888/,便可以打开安装协议页面,如下图所示

image

五、安装配置

安装过程比较简单,但在填写数据库地址的时候需要注意,我们已经将mysqlserver链接到了permeate容器当中,此时数据库地址直接填写db即可,数据库密码笔者在启动MySQL容器时设置的为123,这里也填写123,参考如下图所示

image

再次点击下一步的时候,能看到页面当中返回数据表安装成功的提示,如下图所示

image

点击进入首页按钮之后,便可以来到首页,首页如下图所示

image

六、图书推荐

如果对笔者的文章较为感兴趣,可以关注笔者新书《PHP Web安全开发实战》,现已在各大平台上架销售,封面如下图所示

image


作者:汤青松

日期:2018-11-26

微信:songboy8888

本作品采用《CC 协议》,转载必须注明作者和本文链接
汤青松
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

需要 docker start mysqlserver 才能启动,可为什么http://localhost:8899/输出这个?

[root@VM_0_14_centos lnmp-docker]# docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=root -d -i -p 3309:3306  mysql:5.6
13916f8cf861cbc1c1eb3c21af0448cf1dd05dbc961e10ff55463d0dfbdfbb71
[root@VM_0_14_centos lnmp-docker]# docker run --name permeate_test --link mysqlserver:db  -d -i  -p 8899:80  registry.cn-hangzhou.aliyuncs.com/daxia/web safe:init
Unable to find image 'registry.cn-hangzhou.aliyuncs.com/daxia/websafe:init' locally
init: Pulling from daxia/websafe
32802c0cfa4d: Pull complete
da1315cffa03: Pull complete
fa83472a3562: Pull complete
f85999a86bef: Pull complete
13dc74171d52: Pull complete
Digest: sha256:50ab8171392dc43e6bd2c225930d19fa172f8ca6c79af753b6abbc0a4f5dbe31
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/daxia/websafe:init
8c646b7594a5725078434645b96a46b06af58facc163869f30576478161cc004
[root@VM_0_14_centos lnmp-docker]# docker exec permeate_test zsh -c "nginx && /usr/sbin/php-fpm7.2  -R"
Error response from daemon: Cannot link to a non running container: /mysqlserver AS /permeate_test/db
[root@VM_0_14_centos lnmp-docker]# docker start mysqlserver
mysqlserver
[root@VM_0_14_centos lnmp-docker]# docker exec permeate_test zsh -c "nginx && /usr/sbin/php-fpm7.2  -R"

file

5年前 评论

楼主可以出一个制作 sqli-labs docker 镜像的教程码?

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
PHP高级工程师 @ 中公教育
文章
35
粉丝
36
喜欢
169
收藏
76
排名:243
访问:3.9 万
私信
所有博文
社区赞助商