openvas部署及使用

一. OpenVAS简介

OpenVAS是一款开源的漏洞评估工具,主要用来检测目标网络或主机的安全性。用户通过浏览器或者专用客户端程序来下达扫描任务,服务器端负执行扫描操作并提供扫描结果。一套完整的OpenVAS系统包括服务器端和端口端的多个组件。

 

服务器层组件

OpenVAS Scanner:负责调用各种漏洞检测插件,具体执行Network Vulnerability Test(NVTs),即完成实际的扫描操作。进程名openvassd,默认端口9391。受Manager控制。OpenVAS Manager:控制Scanner和其他Manager的中心组件。控制中心数据库,保存用户配置及扫描结果。负责分配扫描任务,并根据扫描结果生产评估报告。进程名openvasmd

客户层组件

openvas-cli(命令行接口):负责提供从命令行访问OpenVAS服务层程序。
greenbone-security-assistant:负责提供访问OpenVAS服务层的Web接口,便于通过浏览器来建立扫描任务,使用起来比较简便,推荐使用的客户端组件。进程名gsad。

 

用户执行扫描任务的请求流程

用户通过浏览器(80或者443端口)访问openvas的gsad组件,gsad提供web接口接收用户的操作如创建扫描任务、创建目标等。gsad进程通过socket与openvasmd进程通信,将用户创建的扫描任务、扫描结果等信息存储起来,并将扫描任务下发与openvassd扫描器去执行。openvassd进程根据用户设置,开启多个进程执行漏扫任务。openvassd执行漏扫任务前,会先从redis获取漏洞特征,假如特征不存在或者不是最新的,则openvassd读取硬盘目录下的特征文件,并且同步给redis。

 

 

 

 

二. OpenVAS部署

本文采用docker容器方式部署,拉取最新的openvas9镜像

2.1 docker-ce安装部署

本文附centos7系统下docker-ce安装步骤,ubuntu等系统的docker-ce安装步骤类似,网上的资料非常多

# 卸载旧版本docker-ce
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 安装依赖包
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

# 安装yum源
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker-ce
yum install docker-ce docker-ce-cli containerd.io

添加docker国内镜像加速,修改docker存储引擎

编辑文件/etc/docker/daemon.json

 1 # 配置范例
 2 {
 3     "registry-mirrors": ["http://hub-mirror.c.163.com"],
 4     "max-concurrent-downloads": 3,
 5     "max-concurrent-uploads": 5,
 6     "storage-driver": "overlay2",
 7     "storage-opts": ["overlay2.override_kernel_check=true"],
 8     "log-driver": "json-file",
 9     "log-opts": {
10         "max-size": "100m",
11         "max-file": "3"
12         }
13 }

设置docker开机启动,并重启docker服务

1 systemctl enable docker
2 systemctl start docker

 

2.2 拉取openvas镜像

openvas的镜像文件非常大,有几个G,拉取镜像的耗时比较久

docker pull mikesplain/openvas

 

2.3 创建openvas容器

创建openvas容器

docker run -d -p 443:443 --name openvas mikesplain/openvas

 

推荐的创建openvas容器步骤

docker run -d -p 443:443 -p 9390:9390 \
-e PUBLIC_HOSTNAME=10.39.52.74 \
-v /var/lib/openvas/mgr/:/var/lib/openvas/mgr/ \
-e OV_SMTP_HOSTNAME=smtp.qq.com \
-e OV_SMTP_PORT=587 \
-e OV_SMTP_USERNAME=sam@qq.com \
-e OV_SMTP_KEY=xxxxx \
--name openvas mikesplain/openvas

参数说明:

-p 443:443 -p 9390:9390                                                  添加443和9390端口映射

-v /var/lib/openvas/mgr/:/var/lib/openvas/mgr/                  创建docker数据卷,对容器内的/var/lib/openvas/mgr目录做数据持久化存储

-e OV_SMTP_HOSTNAME                                             指定邮件服务器

-e OV_SMTP_PORT                                                        指定邮件服务器的端口

-e OV_SMTP_USERNAME                                             指定发件邮箱

-e OV_SMTP_KEY                                                          指定发件邮箱的密码

 

容器启动,需要等待几分钟,系统加载漏洞特征需要一定的时间,可以使用docker logs -f查看

docker container logs -f  xxxxxxx

 

当出现下列信息的时候,系统启动完毕

==> /var/log/openvas/openvassd.messages <==
[Thu Apr  4 14:03:34 2019][843] openvassd 5.1.3 started
[Thu Apr  4 14:06:02 2019][973] Client not present
[Thu Apr  4 14:06:05 2019][843] Received the Terminated signal
[Fri Feb 14 01:19:29 2020][24] openvassd 5.1.3 started
[Fri Feb 14 01:24:21 2020][80] Client not present

 

三. OpenVAS的使用

3.1 登录系统

登录系统https//x.x.x.x,默认用户名admin,密码admin,登录系统后修改缺省密码

 

 

3.2 创建扫描目标

  • 转到顶部菜单中的“Configuration”,然后选择“Targets”
  • 单击左上角的蓝色五角星图标以创建新目标

 

 

点击蓝色星目标按钮后,会出现一个创建对话框,我们需要输入以下信息:

  • 扫描目标名称:我们将其命名为Metasploitable 2
  • 扫描目标主机:支持两种填写方式:手动填写Manual和文件加载From file
  • Port list:  扫描端口列表,可以选用默认配置
  • Alive test: 扫描目标存活的探测方法,支持多种,如果icmp ping、arp ping等,选用系统默认即可
  • 点击create创建

 

手动填写Manual支持如下格式:

  • 单台主机: 192.168.1.1
  • 范围表示多台主机: 192.168.1.1-254
  • 掩码表示多台主机: 192.168.1.0/24
  • 逗号分隔多台主机: 192.168.1.1,192.168.1.2,192.168.1.3  

文件加载From file:

在桌面创建一个文档,将主机的IP或者管理域名罗列进去。然后点击Browse加载

 

 

3.3 创建扫描任务

 

posted @ 2020-02-14 12:59  迅雷不及掩耳  阅读(195)  评论(0)    收藏  举报