Skip to content

贡献指南

phithon edited this page Mar 23, 2018 · 4 revisions

贡献一个环境给vulhub。

前期准备

Fork本项目,然后将你的项目拉取到本地。

根据你想制作的靶场环境,新建一个对应的分支,如shellshock

以破壳漏洞shellshock为例,你需要了解两点:

  1. 破壳漏洞是因为什么软件什么版本出现的漏洞?
  2. 破壳漏洞的主要影响是什么,如何复现该漏洞?

制作基础镜像

首先,第一个问题,破壳漏洞是bash的4.x版本出现的漏洞。所以,我们先做一个vulhub/bash:4.x镜像,是为基础镜像。基础镜像最好是下载源码进行编译,如果编译实在太麻烦,可以选择直接FROM dockerhub下其他用户编译好的镜像,但一定要确定版本号。

制作vulhub/bash:4.x的过程如下:

  1. 切换到shellshock分支
  2. 新建base/bash/4.x目录
  3. 编写base/bash/4.x/Dockerfile文件
  4. 编译该镜像,名字为vulhub/bash:4.x

制作漏洞镜像

第二,破壳漏洞有一个很典型的影响:使用bash cgi开发的web应用能够直接执行命令。所以,第二个镜像,就是继承vulhub/bash:4.x,然后搭建一个简单的基于bash的web网站,用户可以直接对其进行攻击。

编写docker-compose.yml

如果目标靶场中存在多个服务,理论上请分成多个镜像,然后使用docker-compose.yml进行配置。如果不存在多个服务,你也需要编写docker-compose.yml文件。

比如,wordpress的漏洞需要两个容器,一是apache,二是mysql,二者用docker-compose相连。

如果实在需要在一个容器中启动两个服务,比如redis写文件弹shell,那也没办法。

编写完成后,进行本地测试。

编写README.md

环境搭建完成之后,编写README.md,漏洞说明、利用文档。

提交pr

向vulhub项目提交pull request。

一段时间后,质量达标,我拉你为贡献者。