什么是OpenVAS
OpenVAS是一款开源的漏洞扫描攻击,主要用来检测网络或主机的安全性。其强大的扫描能力来自于集成数万个漏洞测试程序,这些测试程序以插件的形式提供,可以从官方网站免费更新.
一套完整的OpenVAS系统如下图显示
① 客户层组件
Openvas-cli:负责提供从命令行访问openvas服务的程序
Greenbone-security-assistant(gsa) :负责提供访问openvas服务层的web接口,便于通过浏览器来执行扫描任务,监听端口9392
Greenbone-Desktop-Suit: 主要用于windows客户机上的套件
② 服务层组件
Openvas-scanner: 负责调用各种漏洞测试插件,完成实际的扫描操作,监听端口9391
Openvas-manager: 负责分配扫描任务,并根据扫描结果生成评估报告,监听端口9390
Openvas-administrator: 负责管理配置信息,用户授权等相关工作
搭建OpenVAS服务器(CentOS)
禁用selinux,重启生效
[root@localhost ~]#vi /etc/selinux/config
SELINUX=disabled
[root@localhost ~]#reboot
配置yum源
[root@localhost ~]#wget -q -O - http://www.atomicorp.com/installers/atomic |sh
安装openvas
[root@localhost ~]#Yum upgrade
[root@localhost ~]#yum -y install openvas
[root@localhost ~]#yum -y install atomic-sqlite-sqlite-devel.x86_64 sqlite-devel
更新nvt
[root@localhost ~]#openvas-nvt-sync
注意:OpenVAS提供了一个名为openvas-nvt-sync的脚本,可用来在线更新插件。虽然这一步时间很久,可是非常重要,不然扫描时候没有结果,大概有4万多个插件
配置登录用户和密码
[root@localhost ~]#openvas-setup
[root@localhost ~]#cd /usr/local/src
[root@localhost src]# wget http://download.redis.io/releases/redis-4.0.2.tar.gz
[root@localhost src]# tar xf redis-4.0.2.tar.gz
[root@localhost src]#mv redis-4.0.2 ../redis
[root@localhost src]#cd ../redis
[root@localhost src]#make && make install
启动redis:直接运行redis-server即可
[root@localhost redis]#redis-server
停止redis:
考虑到 Redis 有可能正在将内存中的数据同步到硬盘中,强行终止 Redis 进程可能会导致数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:
再打开一个窗口执行下面命令
[root@localhost ~]#redis-cli shutdown
当Redis收到SHUTDOWN命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
Redis可以妥善处理 SIGTERM信号,所以使用 kill Redis 进程的 PID也可以正常结束Redis,效果与发送SHUTDOWN命令一样
配置redis-server
vim /usr/local/redis/redis.conf(将下面两个参数注释打开,并修改unixsocket路径)
unixsocket /usr/local/redis/redis.sock
unixsocketperm 700
vim /etc/openvas/openvassd.conf(在最后面添加一行 地址跟unixsocket的要一样)
kb_location =/usr/local/redis/redis.sock
改完了,最后重启一下redis 命令:
先关闭redis ,在启动redis,启动时候加上配置文件加载
redis-cli shutdown
redis-server /usr/redis/redis.conf
重启openvassd ,openvasmd两个daemon
[root@raingolee]# openvassd restart
[root@raingolee]# openvasmd restart
重建OpenVAS资料库
[root@raingolee]# openvas –rebuild
启动openvs-scanner
[root@raingolee]# /etc/init.d/openvas-scanner start
启动openvas-manager
[root@raingolee]# /etc/init.d/openvas-manager start
完成了配置,接着要测试是否安装成功
[root@localhost ~]#openvas-check-setup
下面就是测试是否安装成功遇到的问题以及解决方法:
3.问题:
ERROR:No client certificate file of OpenVASManager found.
FIX:Run’openvas-mkcert-client -n -i’
解决方式:
openvas-mkcert-client -n -i
4.问题:
ERROR:No users found.You need to create at least oneuser to log in.
Itis recommended to have at leastone user with role Admin.
FIX: create a user by running ‘openvasmd–create-user= –role=Admin && openvasmd–user= –new-password=’
解决办法:
openvasmd –create-user=admin –role=Admin&& openvasmd –user=admin –new-password=123456
如果密码登录不上去,可能是openvas默认给的密码不是123456 需要在手动改一下,命令如下:
openvasmd –user admin –new-password 123456
5.问题:
ERROR:The number of NVTsin the OpenVASManager database is too low.
FIX:Make sure OpenVASScanneris running with an up-to-date NVT collection and run ‘openvasmd –rebuild’.
解决方式: 重新build数据库
openvasmd –rebuild
6.问题:
ERROR:OpenVASManageris NOT running!
FIX:StartOpenVASManager(openvasmd).
解决方法:
通过命令可以看到如下信息: netstat -an | grep 939查看
tcp 0 0 0.0.0.0:9391 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9392 0.0.0.0:* LISTEN
tcp 0 0 :::9390 :::* LISTEN
如果是使用serviceopenvas-manager start 和 openvasmd -p 9390 -a 127.0.0.1启动
[root@VM-ON-106 openvas-manager-6.0.1]# netstat -anlp | grep 9390
tcp 00:::9390:::* LISTEN 19727/openvasmd
发现9390是监听IPV6,所以netstat -A inet -ntlp获取结果为空,导致会提示ERROR: OpenVAS Manager is NOT running!
需要手动启动命令如下:
openvasmd -p 9390 -a 0.0.0.0
注意:启动之前先用killall openvasmd杀掉原来的IPV6进程,如果手动启动一次不行就启动多次。
再查看端口以及监听了IPV4,显示OK
[root@VM-ON-106 admin]# netstat -anlp | grep 9390
tcp 0 0 0.0.0.0:9390 0.0.0.0:* LISTEN 22283/openvasmd
以上所有问题解决完成之后可能启动成功了,输入命令: openvas-check-setup 显示如下打印:(安装成功了)
It seems like your OpenVAS-8 installation is OK.
If you think it is not OK, please report your observation
and help us to improve this check routine:
http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss
Please attach the log-file (/tmp/openvas-check-setup.log) to help us analyze the problem.
#!/bin/bash
/etc/init.d/openvas-scanner stop
/etc/init.d/openvas-manager stop
/etc/init.d/gsad stop
/etc/init.d/openvas-scanner start
openvas-nvt-sync
service redis restart
openvasmd --rebuild --progress
openvasmd --create-user=admin --role=Admin && openvasmd --user=admin --new-password=admin
openvasmd -p 9390 -a 0.0.0.0
service gsad start
批量杀死openvas进程
# ps -ef |grep openvas|grep -v grep|awk '{print $2}'|xargs kill -9
netstat -pantu | grep 939:查看openvas端口是否开放(在openvas早起版本会开放三个端口9390(manager端口)、9391(扫描器端口)、9392(web服务端口),随着版本的更新扫描器已集成在软件里,现只开放9390及9392)
最后浏览器登录:https://ip:9392
Openvas Web界面介绍
通过web界面访问openvas,(值得注意的是openvas不是使用的http协议而是https协议)https://ip:9392
登录openvas后可以看到常规参数选项,在选项下可以进行一些常规的设置。
Dashboard:仪表板
scan:扫描管理
asset:资产管理
seclnfo :安全信息管理
Configuration:配置
Extras:附加设置
Administration:账号管理
Help:帮助
全局设置
在Extras选项下打开my settings:全局配置,这里可以修改openvas的配置。
扫描策略
(configuration-->scan configurations)openvas有默认的扫描策略
Discover: 只对目标系统进行发现扫描。
empty: 空策略,不进行任何操作。
Full and fast:全面的快速的扫描
Full and fast ulitimate:全面的快速的极限扫描
Full and very deep:全面的深度扫描
Full and very deep ultimate:全面的极限深度扫描
Host Discovery:主机发现
System Discovery:系统识别
Openvas 使用(环境kali metasploitable2 )
在kali里用openvas对metasploitable2漏洞靶机进行探测,kali下载地址VMware版本、VirtualBox版本,靶机下载地址metasploitable,具体操作如下。
登录web页面,配置扫描策略
在Confiuration选项下Scan configs,点击New Scan Configuration新建扫描策略。填写策略的名称,在Edit Scan Config中,配置需要的family类型,每一个family代表一种漏洞类型,该类型下会集成多种NVTS。勾选Selext all NVTs及选择该类型,注意Family旁有斜着(DYNAMIC)和横(STATIC)着的两个箭头,选择DYNAMIC在openvas发布新的NVTS时,策略会自动添加新的NVTS,然而选择STATIC时openvas发布新的NVTS,则不会被添加的策略里面,在选择完毕后Save保存,主界面多出一个linux_test策略。
配置扫描目标
Confiuration选项选择target,点击New target新建扫描目标,填写名称以及目标ip,Save保存 ,主界面多处一个linux_test的扫描目标。此时设置还没有完成,在配置完扫描端口后还需要将端口配置的添加到扫描目标里,完成后port list就是自己配置的扫描端口。
设置扫描端口
Confiuration选择port lists,点击New port lists 新建端口策略,openvas默认集成常见端口的 扫描策略。填写扫描端口名称,设置扫描端口,设置完成create保存,主界面多处一个linux_test的端口策略。
设置扫描任务
scans选择tasks,点击New tasks新建扫描任务,填写扫描任务名称,在任务设置时openvas会自动把设置的扫描目标添加,选择配置的扫描策略,设置完成后create保存,主界面多出一个linux_task的扫描任务,点击执行按钮开始扫描。
在扫描完成以后可以点击进度条和last查看扫描结果,结果会根据漏洞标准进行评分,openvas也会给出它对发现此漏洞的百分值,点击扫描结果可以看到openvas对此漏洞描述、使用哪种方法检测出此漏洞以及漏洞的修复方案、漏洞编号及其链接。
生成报告
当扫描完成以后可以将扫描结果进行特定格式的导出、支持多种报告格式,以方便进行阅读和分析。
顺序截图
登录系统主页面如下,并创建config:
在Configurations->scan config目录下进入到配置页面,点击五角星创建新配置:
创建一个target
总结
基础的使用方法就到这里了,任何的扫描工具都只是辅助我们发现漏洞,但并不是所有扫描出来漏洞都是真实的,都需要手动验证漏洞的真实性。且不要盲目判断扫描出的结果,很多的扫描器判断机制都很简陋的,会造成很多误判、漏判
如果创建的扫描任务执行报错如下:
Operation: Start Task
Status code: 503
Status message: Service temporarily down
就执行下面命令
/etc/init.d/openvas-scanner stop
killall openvasmd
openvas-mkcert -f
openvas-mkcert-client -i -n
openvasmd --get-scanners
openvasmd --modify-scanner "08b69003-5fc2-4037-a479-93b440211c73" --scanner-ca-pub /var/lib/openvas/CA/cacert.pem --scanner-key-pub /var/lib/openvas/CA/clientcert.pem --scanner-key-priv /var/lib/openvas/private/CA/clientkey.pem
openvas-nvt-sync
/etc/init.d/openvas-scanner start
openvasmd --rebuild
openvasmd -p 9390 -a 0.0.0.0
/etc/init.d/gsad start