渗透测试——情报收集阶段——漏洞扫描(OpenVAS)

漏洞扫描原理与漏洞扫描器

网络漏洞扫描指的是利用一些自动化的工具来发现网络上各类主机设备的安全漏洞,这些自动化工具通常称为漏洞扫描器。

根据应用环境的不同,漏洞扫描通常可分为:黑盒扫描 和 白盒扫描。

  • 黑盒扫描:一般是通过远程识别服务的类型和版本,对服务是否存在漏洞进行判定。
  • 白盒扫描:在具有主机操作权限的情况下进行漏洞扫描。

白盒扫描的结果更加准确,但一般来说它所识别出的漏洞不应当作为外部渗透测试的最终数据,因为这些漏洞由于防火墙和各类防护软件的原因很可能无法在外部渗透测试中得到利用。而且在渗透测试工作中,一般没有机会获得用户名和口令来登录用户计算机,并使用相关安全工具进行白盒扫描。因此更多的时候需要使用黑盒扫描技术,对远程的主机进行漏洞评估。

漏洞扫描器是一种能够自动应用漏洞扫描原理,对远程或本地主机安全漏洞进行检测的程序。它是一个高度自动化的综合安全评估系统,继承了很多安全工具的功能。漏洞扫描器一般会附带一个用于识别主机漏洞的特征库,并定期对特征库进行更新。


OpenVAS 漏洞扫描器

OpenVAS 是类似 Nessus 的综合性漏洞扫描器,可以用来识别远程主机、Web应用存在的各种漏洞。在 Nessus 商业化不再开放源代码后,在它的原始项目中分支出 OpenVAS 开源项目。OpenVAS 使用 NVT (Network Vulnerabilty Test,网络漏洞测试) 脚本多种远程系统 (包括 Windows、Linux、UNIX 以及 Web 应用程序等) 的安全问题进行检测。

OpenVAS 的主要功能模块
渗透测试——情报收集阶段——漏洞扫描(OpenVAS)_第1张图片

配置OpenVAS

在本文展示的 BT5 环境中已经预装了 OpenVAS 网络漏洞扫描工具,但在使用前需要进行一些配置

① 生成 OpenVAS 运行时所需的证书文件

openvas-mkcert -q
openvas-mkcert-client -n om -i

② 升级 NVT 库
openvas-nvt-sync

③ 对 OpenVAS 的扫描引擎进行一些初始化的操作

openvassd
openvasmd --migrate
openvasmd --rebuild

④ 使用 openvasad 命令添加一个管理员角色的 OpenVAS 登录用户(用户名为 admin)
openvasad -c 'add_user' -n admin -r 'Admin'

⑤ 启动OpenVAS Scanner(若端口已被占用可更换)
openvassd --listen=127.0.0.1 --port=9391

⑥ 启动 OpenVAS Manager
openvasmd --database=/usr/local/var/lib/openvas/mgr/tasks.db --slisten=127.0.0.1 --sport=9391 --listen=0.0.0.0 --port=9390
注:sport 应与启动 OpenVAS Scanner 时设置的 port 一致

经过以上 6 步,就可以使用 OpenVAS 插件、OpenVAS Cli 或者 GreenBone Security Desktop(GSD)等,来对 OpenVAS网络扫描服务进行管理和使用了。注意需要使用上面建立的 admin 用户来登录 OpenVAS 服务端。

如果需要将自己的 OpenVAS 与网络上其他渗透测试小组成员共享,可以使用 B/S 架构的客户端程序 GSA (Greenbone Security Assistant)。但使用前需要通过以下命令来启动 GSA 服务
gsad --listen=0.0.0.0 --port=9392 --alisten=127.0.0.1 --aport=9393 --mlisten=127.0.0.1 --mport=9390 --http-only
然后在浏览器中输入 http://localhost:9392 访问 GSA,就可以开始使用 OpenVAS了。

可以把启动 OpenVAS 的相关 Shell 命令写成一个 Shell 脚本文件,这样每次使用 OpenVAS 时只需要运行脚本即可。使用文本编辑器生成文件 start-openvas.sh,并保存在默认的 root 根目录下。其内容示例如下:

openvas-nvt-sync
openvassd --listen=127.0.0.1 --port=9391
openvassd --listen=127.0.0.1 --port=9393
openvasmd --database=/usr/local/var/lib/openvas/mgr/tasks.db --slisten=127.0.0.1 --sport=9391 --listen=0.0.0.0 --port=9390
gsad --listen=0.0.0.0 --port=9392 --alisten=127.0.0.1 --aport=9393 --mlisten=127.0.0.1 --mpost=9390 --http-only

然后在终端中输入 chmod +x start_openvas.sh

下次重新启动 BT5 系统时,可以直接在终端中输入如下命名启动 OpenVAS:
./start_openvas.sh


查找特定服务漏洞

OpenVAS 这类通用漏洞扫描器是一种高度自动化的工具,只需将它接入网络中,它便能够自动的通过“全面撒网”的方式来获取网络中尽可能多的安全漏洞,在方便快捷的同时,它也存在如下不可避免的问题:

  • 扫描过程过于“简单粗暴”
  • 在一些特殊的环境中具有“杀伤性”,比如对一些包含大量陈旧设备的局域网进行扫描时,很可能会造成重要网络设备瘫痪
  • 扫描结果存在漏报现象

因此,不应当把漏洞扫描器的结果当做“救命稻草”,如果漏洞扫描的结果不能满足要求,或是网络中没有使用漏洞扫描器的条件,那么应该使用一些针对性扫描工具来进行漏洞检测。

Nmap 是最常用到的一种针对性扫描工具。
渗透测试——情报收集阶段——漏洞扫描(OpenVAS)_第2张图片
通过端口扫描可以得知,目标主机 10.10.10.130 开启了 445 端口,那么就有可能启用了 SMB 服务,则可以使用 Nmap 的 SMB 服务扫描漏洞模块对其进行探测。输入命令:nmap -PO --script=smb-check-vulns 10.10.10.130
渗透测试——情报收集阶段——漏洞扫描(OpenVAS)_第3张图片
可以看到,Nmap 扫描结果显示目标主机上的 SMB 服务包含 MS08-067 漏洞。
Nmap目前集成了大量的扫描脚本,包括针对特定漏洞的扫描,有针对性的信息获取与枚举,各种协议认证口令的猜解,以及针对特定应用程序的攻击脚本。

你可能感兴趣的:(Metasploit,渗透测试)