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 创建扫描任务
浙公网安备 33010602011771号