使用Docker环境快速搭建靶机环境

在实际学习中,经常需要模拟不同的漏洞环境,而使用公网的实例的话,多多少少又存在一些风险,因此能搭建一个本地的模拟环境去测试漏洞是一个不错的方案。Docker是近两年来十分流行的开源容器引擎,因此也出现了很多使用Docker容器搭建的靶机环境供新手学习和使用。

这次我们来介绍两款使用docker进行搭建的集成了各种漏洞的靶机环境:

1. 由Phithon维护的Vulhub

项目地址:https://github.com/phith0n/vulhub

Vulhub是一个面向大众的开源漏洞靶场,无需Docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。

2. 由 Medicean 维护的Vulapp项目地址:https://github.com/Medicean/VulApps

Vulapp收集各种漏洞环境,为方便使用,统一采用 Dockerfile 形式。同时也收集了安全工具环境。

下面来介绍下如果用Docker去搭建Vulhub和Vulapps

搭建Vulhub

准备环境:

以下在Ubuntu16.04中操作

1.在ubuntu16.04中安装pip

curl -shttps://bootstrap.pypa.io/get-pip.py | python3

2.安装docker

apt-get update && apt-getinstall docker.io

3.启动docker服务

service docker start

4.安装compose

pip install docker-compose

拉取vulhub

由于国内“不可描述的”原因,使用git clone拉取vulhub可能出现各类不可描述的情况。因此建议直接从github上下载项目就好了

当然,如果你的网络足够稳定的话,也可以使用下面的命令进行拉取。

git clone git@github.com:phith0n/vulhub.git

这里以struts环境为例,打开struts2下的s2-016目录

cd vulhub/struts/s2-016

在线自动化编译docker环境

docker-compose build

注意:

docker自身出错的情况,多出现在使用的docker/docker-compose版本较老时出现的BUG,最好使用最新版docker测试vulhub项目。源码编译失败的情况也可能出现,vulhub中的环境全部基于官方镜像编译,官方镜像可能会更新与升级,linux系统升级后可能造成编译上有一定差别,部分老原来就可能编译不成功了。

如果反复出现编译不了的情况的话,建议使用作者已经编译好并传到dockerhub的镜像:

https://hub.docker.com/u/vulhub/

使用方法是将docker-compose.yml里build: .替换成image:vulhub/xxxx

启动docker环境

docker-compose up -d

这时访问http://your-ip:8080/link.action就可以看到环境已经搭建好了。

这时再去使用struts2的利用工具就可以愉快的测试漏洞了

特别需要注意一点的是,vulhub里的漏洞并不是每一个都需要编译的,建议在运行之前到github上去看下关于特定漏洞的配置说明。

搭建Vulapp

对于没有docker基础的新手,建议使用vulapp的在线拉取镜像。如果国内访问速度很慢的话,建议将docker源替换成国内源:

推荐使用中科大源,替换方法可以参考中科大的说明文档。

Vulapp中每一个漏洞的readme.md文档中包含了详细的安装过程只需按照说明去拉取进行并启动环境即可。

按照使用说明教程搭建了wordpress的phpmailer漏洞复现环境

总结

虽然这里只是使用了github中开源的漏洞复现环境进行了介绍,但是也给很多新人学习漏洞和渗透测试的一个新的思路。Docker可以说是近两年一个特别火热的话题,它以轻巧、简单、开源著称,对于新人来说,使用docker去快速搭建一个靶机环境进行测试莫过于成本最低的一个方法,然而对于不太熟练docker的新手来说,vulapp和vulhub又是一个极为节省时间且十分高效的一个方案。

Vulhub和vulapp都是非常不错的一套靶机环境,这两款靶机环境都涵盖了最近一段时间比较流行的漏洞。特别值得一提的是vulapp不仅仅包含了漏洞还包含了漏洞利用的工具,这也给新人搭建环境测试漏洞提供了便利。这里也要给vulhub和vulapp的维护者点个赞,这两套靶机环境的最近更新时间均为半个月之内,同时也涵盖了最近两个月的漏洞,需要感谢他们的开源才使得更多新人能够更快学到更多知识。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏kl的专栏

DevOps利器- Hygieia平台开发部署

Capitalone(全美十大银行之一)开源的DevOps利器。使用Hygieia后,在整个软件开发周期中,用户可以选择VersionOne或Jira进行用户故...

4868
来自专栏游戏杂谈

利用svn log命令实现的资源版本更新

无论页游或是手游都需要经常进行更新,而每一次更新几乎都是一部血泪吏。这里重点介绍一下前端资源打包的简化操作。目前2D手游主流都采用了cocos2d-x 绑lu...

943
来自专栏程序人生

再谈 API 的撰写 - 子系统

在做一个系统时,有一些子系统几乎是必备的:配置管理,CLI,以及测试框架。 配置管理 我们先说配置管理。一个系统的灵活度,和它的配置管理是离不开的。系统中存在的...

2795
来自专栏前端吧啦吧啦

前端如何将H5页面打包成本地app?

1.1K3
来自专栏程序员宝库

Hybrid App技术解析 -- 原理篇

随着 Web 技术和移动设备的快速发展,Hybrid 技术已经成为一种最主流最常见的方案。一套好的 Hybrid架构方案 能让 App 既能拥有极致的体验和性能...

1892
来自专栏云计算

Kubernetes中的Service Mesh(第1部分):Service的重要指标

原文地址:https://dzone.com/articles/a-service-mesh-for-kubernetes-part-1-top-line-se...

2516
来自专栏Jerry的SAP技术分享

微信程序开发系列教程(一)开发环境搭建

2. 这个教程使用nodejs开发微信订阅号对应的消息服务器,因此需要具备基本的nodejs开发技能。

1374
来自专栏前端吧啦吧啦

前端如何将H5页面打包成本地app?

4527
来自专栏Petrichor的专栏

git: 为什么 pull request 不叫 push request

在日常的开源社区使用中,有时候会遇到我 想要 协助修改 的 开源项目。这个时候,pull request(合并申请功能)就可以让原本 没有 该仓库 修改权限 ...

1.2K2
来自专栏Web项目聚集地

三周学会小程序第一讲:小程序申请和注意事项

当然用你的个人邮箱也可以,但是一个邮箱只能注册一个小程序,小编考虑到后面你可以再次开发自己的小程序,所以这里还是重新申请一个比较好。网易邮件一个手机号可以申请1...

972

扫码关注云+社区

领取腾讯云代金券