背景

  • 漏洞靶场是目前每个安全人员以及想学习信息安全的人必备的东西,但目前商业化产品居多,还有一些类似 dvwa、 sqli-labs 这类的开源项目,但是漏洞环境比较固定,使用完一次后就失去其作用。搭建的成本过高,每次启动的流程会比较繁琐,甚至很多场景是不满足的,之前关于漏洞环境镜像使用多的是 vulhub,但是作为企业、高校等以及相关的培训,单纯的漏洞环境不一定能满足使用的需求,所以我们基于当下的一些靶场项目做出了小小的改进来符合我们的一些需求,比如增加 flag 的形式,来满足一些考核与验证的需求,可以对我们内部人员能力进行考核,于是 Vulfocus 就诞生了。

    认识 Vulfocus

  • 因为 Vulfocus 一个漏洞集成平台,所以可以无限向里添加漏洞环境没有限制,前提是你的内存足够大。因为漏洞环境是docker镜像的原因每次重新启动漏洞环境都会还原,不用出现你会对环境造成破坏下次无法启动的现象。

  • Vulfocus 的 docker 仓库 https://hub.docker.com/u/vulfocus

    Vulfocus 特性

  1. 启动:一键漏洞环境启动,方便简单。
  2. 自带 Flag 功能:每次启动 flag 都会自动更新,明确漏洞是否利用成功。
  3. 带有计分功能也可适用于相关安全人员能力的考核。
  4. 兼容 VulhubVulapps 中所有漏洞镜像。
  5. 支持可视化编排漏洞环境

    安装

  • 这里这介绍快速安装,手动安装要人命。
  • 安装 Docker 这里忽略。
  • 拉取 Vulfocus 镜像

    1. docker pull vulfocus/vulfocus:latest
  • 运行 Vulfocus

    docker create -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xxx.xxx.xxx.xxx -e EMAIL_HOST="xxx.xxx.xxx" -e EMAIL_HOST_USER="xxx@xxx.com" -e EMAIL_HOST_PASSWORD="xxxxxxxx" vulfocus/vulfocus
    docker start container id
    
  • 或者

    docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xxx.xxx.xxx.xxx -e EMAIL_HOST="xxx.xxx.xxx" -e EMAIL_HOST_USER="xxx@xxx.com" -e EMAIL_HOST_PASSWORD="xxxxxxxx" vulfocus/vulfocus
    
  • 参数解析

    -v /var/run/docker.sock:/var/run/docker.sock 为 docker 交互连接。
    -e DOCKER_URL 为 Docker 连接方式,默认通过 unix://var/run/docker.sock 进行连接,也可以通过 tcp://xxx.xxx.xxx.xxx:2375 进行连接(必须开放 2375 端口)。
    -v /vulfocus-api/db.sqlite3:db.sqlite3 映射数据库为本地文件。
    -e VUL_IP=xxx.xxx.xxx.xxx 为 Docker 服务器 IP ,不能为 127.0.0.1。
    -e EMAIL_HOST="xxx.xxx.xxx" 为邮箱SMTP服务器。
    -e EMAIL_HOST_USER="xxx@xxx.com" 为邮箱账号。
    -e EMAIL_HOST_PASSWORD="xxxxxxxx 为邮箱密码。
    
  • 其中后三个 -e 是非必要的,没有 SMTP 服务器不用添加。

    docker run -d -p 8000:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xxx.xxx.xxx.xxx vulfocus/vulfocus
    
  • 默认账户密码为:admin/admin

    使用

  1. 安装完成后,访问80/8000端口
  2. 用设置好的管理员账户登录
  3. 首页为漏洞集成页面,刚开始是没有漏洞镜像的需要从 https://hub.docker.com/ 网站拉取镜像,或自己以tar包的形式上传。

    漏洞镜像的拉取和上传

  • 此操作需要管理员权限

    添加镜像

  • 在镜像管理中,点击添加

  • 分别填入漏洞名称、镜像、rank、描述
  • 镜像又分为文件和文本
  • 下载完成后点击启动即可。
  • 镜像启动后,会在环境里写入一个 flag (默认 flag 会写入 /tmp/ 下),读取到 flag 后填入 flag 窗口,镜像会自动关闭,如需重新启动,需强刷一下,然后再次点击启动即可。

    三种模式

  • 可视化编排(管理员权限)-> 一般不用

  • 场景模式(普通用户权限)-> 一般不用
  • 计时模式

    FAQ

    镜像启动后立即访问地址失败?

  1. 根据镜像的大小,启动时间会有不同的延迟,一般在几秒以内。

    提交完 flag 后会有卡住?

  2. 在提交完正确flag后,会进行镜像关闭的动作,所以会有几秒的延迟。

    拉取镜像时一直卡在哪里

  3. 由于网络延迟或镜像太大的原因时间会长一点。

  4. 镜像名称填错,也会卡在哪里,建议强刷一下。

    常用靶场镜像

    webug area39/webug
    sqlilabs vsplate/sqlilabs
    pikachu area39/pikachu
    dvwa sagikazarmark/dvwa
    xss-labs rookle/xss-labs
    bwapp raesene/bwapp -> install.php