OpenVAS(Open Vulnerability Assessment System)是在nessus基础上发展起来的一个开源的漏洞扫描程序,其核心部件是一套漏洞测试程序,可以检测远程系统和应用程序中的安全问题。

(一)在ubuntu 18系统中安装docker

apt install docker.io  //在线安装docker

systemctl start docker  //启动docker服务

systemctl enable docker  //设置开机自动启动

docker version  //查看docker版本

可以正常显示版本信息,说明安装成功。

(二)下载和运行GVM的docker镜像

1、下载GVM 11的docker镜像

docker search gvm

第一个镜像是我们需要的。

docker pull securecompliance/gvm  //将镜像pull到本地

docker images  //查看本地的docker镜像

2、运行GVM 11镜像

docker run -d -p 8080:9392 --name=gvm securecompliance/gvm

run命令装载docker镜像到内存,形成容器。

-d  //后台运行容器

-p  //将host的8080端口映射到容器的9392端口

--name  //给容器起个名字

docker ps  //查看正在运行的docker容器,可以看到GVM容器已经运行起来了

docker logs gvm  //查看工作状态

若看到“our GVM 11 container is now ready to use!”,就可以使用了。(时间较长,请耐心等待)

 (三)使用GVM进行漏洞扫描

1、登录

浏览器打开GVM的控制台界面:

http://192.168.103.103:8080/login

用户名/口令:admin/admin,点击login按钮登录

2、创建扫描任务

下面创建简单的扫描任务,对metasploitable 2靶机进行漏洞扫描。

(1)创建扫描任务

Scans—Tasks

点击左侧带有五角星的方框,点击弹出的“New Tasks”项:

在“New task”窗口,填写下面的信息:

Name:指定扫描名称,如“metasploitable 2”

Comment:填写关于扫描任务的描述文字(可选)

Scan Targets:点击右侧五角星,弹出New Target表单。指定目标IP地址,填写完成后点击Save按钮提交:

其它的选项保持默认即可,也可以按照下图中的文字选择:

点击下方的Save按钮,创建扫描任务。

3、开始扫描

在任务列表中,点击右侧Actions中的Start按钮,开始扫描。

4、下载扫描报告

点击Scans—Reports

点击左上角一排小图标中的向下小箭头,弹出“Component Content for Scan Report”表单。选择报告类型,如PDF:

点击OK按钮,下载漏洞扫描报告。

报告中对某漏洞的描述:

6、更新NVT

重启GVM容器即可更新NVT特征库,无需单独运行命令。

(四)管理容器

1、查看容器内运行的进程

docker top gvm

2、进入容器内的命令行

docker exec -it gvm bash

在docker进行内修改时区

ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、设置admin(管理员)口令和时区

默认时区是UTC时区,很恶心。

点击右上角的个人中心->my settings->编辑

timezone改成Asia/Shanghai 点击右下角save保存更改

5、停止容器

docker stop gvm

6、删除容器

不再需要容器了,可以将其删除。删除容器不会影响到镜像,使用前面运行镜像的命令可以创建新的容器。

docker ps -a      //查看全部容器,包括运行的和已停止的

docker rm gvm  //删除名为gvm的容器

(五)管理镜像

1、导出镜像

docker save -o gvm-11-image.tar securecompliance/gvm  //将镜像导出到当前目录,名为gvm-11-image.tar

2、删除镜像

docker rmi securecompliance/gvm   //删除镜像时,不能存在由该镜像创建的容器

3、导入镜像

docker load < gvm-11-image.tar  //导入镜像

注意事项

GVM-11容器启动后默认不像OpenVAS那样监听本地环回地址,而是监听物理网卡地址。这样即提供了远程访问功能。因此应使用防火墙对访问GVM的源地址进行限制:

iptables -A INPUT -p tcp -s 192.168.1.100 –dport 8080 -j ACCEPT  //允许192.168.1.100访问本地的GVM控制台

iptables -A INPUT -p tcp –dport 8080 -j REJECT  //拒绝访问本地8080端口

以Docker容器的形式运行GVM-11的更多相关文章

  1. 利用远程服务器在docker容器搭建pyspider运行时出错的问题

    This system supports the C.UTF-8 locale which is recommended. You might be able to resolve your issu ...

  2. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  3. 实现Mac主机上的Docker容器中的图形界面显示(运行GUI应用)

    我有一个需求: 一方面,我需要在 Docker 容器环境下运行应用(因为有些环境在 Mac 下很难安装配置,并且希望环境干净隔离). 另一方面,容器中的应用又需要进行图形界面的显示. 由于 Docke ...

  4. [转帖]docker容器保持运行不退出

    docker容器保持运行不退出 2019年01月20日 23:21:22 chvalrous 阅读数 1511   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. Docker 容器技术

    前言: 之前感觉Docker是一种小虚拟机,docker和KVM虚拟机之间有什么区别.联系.可以应用在什么样的生产环境? 一.Docker是什么以及和KVM的区别 1.docker概念? Docker ...

  6. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  7. Docker 容器学习笔记

    Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影 ...

  8. Docker容器数据卷-Volume详解

    Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume).数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享.数据 ...

  9. 3、docker 容器管理

    Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...

随机推荐

  1. shell基础知识查缺补漏

    最近在看<Linux程序设计(第4版)>,其中有一个章节主要讲了shell脚本方面的,内容不细,但是利用较短的篇幅讲的也不少了.对我们自己来说也是一个查缺补漏的过程,所以就写下这篇读书笔记 ...

  2. ctf--web刷题记录 ACTF2020back up file 、极客大挑战2019php、secret file

    ACTF2020back up file backup file指的是备份文件,一般备份文件的后缀有".git" .".svn"." .swp&quo ...

  3. 【记录一个问题】tesla model 3在行驶1000公里后,行驶中踩下刹车出现告警“同时踩下制动踏板和电门”

    问题的描述如下:1.行驶1000公里左右后出现,之前没有:2.超过一定速度后再踩刹车出现此告警,如果低速环境频繁起停则不会出现:3.告警的意思是使用者同时踩下了刹车和电门,第一次电话客服反馈--检查脚 ...

  4. http 的get 与 post 的区别

    1.原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的 ...

  5. gin框架中请求路由组的使用

    1. gin框架中可以使用路由组来实现对路由的分类 package main import "github.com/gin-gonic/gin" func main() { rou ...

  6. golang中锁

    一.什么场景下需要用到锁当程序中就一个线程的时候,是不需要加锁的,但是通常实际的代码不会只是单线程,有可能是多个线程同时访问公共资源,所以这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? ...

  7. Django settings.py配置文件

    import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 这里用到了python中一个神奇的变量 file 这个变量可以获取到当前 ...

  8. VUE3 之 组件间事件通信 - 这个系列的教程通俗易懂,适合新手

    1. 概述 相关定律告诉我们:这个世界上的任何事物之间都会存在一定联系,"城门失火,殃及池鱼"就是一个很好的例子.因此如果我们能够尽早发现这些看不见的联系,就能很好的解决更多遇见的 ...

  9. 数据库查询语句遇到:Unknown column 'XXXX' in 'where clause'解决方法

    数据库查询语句遇到:Unknown colunm 'XXX' in 'where clause'解决方法 根本原因:可能是sql语句所用到的数据类型错误(int与String)弄错- 我的情况: 在网 ...

  10. Homework_2

    禁 止 吃 瓜 我是小鱼 刚才有个同学问我小鱼发生肾么事了 我说怎么回事? 给我发了一个张截图,我一看! 噢!原来是昨天发布第二次寒假作业了 我大一了啊没有闪 来!偷袭!我三岁的小同志 当时就流眼泪了 ...