Linux 漏洞扫描 openvas

版权声明:QQ:1009002494 https://blog.csdn.net/Doudou_Mylove/article/details/85090563

 

 

openvas

什么是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

 

 

安装redis nosql数据库

[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

 

启动openvas服务

重启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.

 

 

重新启动 openvasmd服务

#!/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

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/Doudou_Mylove/article/details/85090563