漏洞扫描之Nessus

2020-08-20 11:13:58 浏览数 (1)

"停更这么多天,其实我一直在写。

耽搁这么长时间主要是因为环境问题,我的Mac系统挂载硬盘有一定的问题,一旦出现错误就会导致整块硬盘变成不可写状态,后来没有办法只能在1 T的硬盘上安装了物理机Kali

对于停更,在此表示十分抱歉!"

Nessus


Nessus 的知名度和Nmap应该差不多,是一款商业扫描器

Nessus 也是一款漏洞扫描工具,其中也是包含了大量的扫描策略,扫描模块,扫描插件等

商业的扫描器相对开源扫描器都有一个共同的优点:生成报表非常精致

这款扫描工具也是在招聘信息中相当常见的一款工具,熟练掌握这款工具也是对大家十分重要的

Nessus 除了收费的版本,还有一个家庭版,我们可以使用这个

PS: 建议在安装之前备份快照,我安装失败过一次,导致系统有些不稳定

下载


www.tenable.com/products/nessus/select-your-operating-system

最好使用代理

可以看到其中特意提及了Kali

我的Kali是64位的,所以选择下面这个

下载下来后可以看到是一个deb包

我们使用dpkg-i Nessusxxxx.deb 来进行安装

我们来启动Nessus

/etc/init.d/nessusd start

之后通过WebGUI 来访问一下,有了OpenVAS的体验,相信对于Nessus你也一定能够顺手

与OpenVAS一样,这个工具也是通过自签名的证书实现加密,所以还是需要添加例外

首先需要创建一个账号密码,这里我使用admin/admin

创建完帐号后,我们会看到Nessus让我们输入激活码,无论我们使用的是哪一个版本,都需要这个激活码,我们可以到下面这个网址去申请

http://www.tenable.com/products/nessus-home

注册之后会向我们的邮箱发一条信息,其中包含激活码

我们将获取的激活码填写进去就可以了

除此之外,我们还可以看到,还有一个 Settings ,其中包含一些代理的配置,这个对于真实场景来说就十分的必要了

我还是要以metasploitable2为靶机,所以就不进行配置代理了

Continue 后Nessus 会做初始化操作,下载一些插件

这段时间可能会比较长,我直接扔在实验室中了,一下午安装完了

注意:

此时可能会出现安装失败的情况

如果出现这种情况,第一种方案就是按照上面的提示来弄

cd /opt/nessus/sbin

./nessuscli update

此时就进行漫长的等待就可以了,不过需要注意的是,这种方式偶尔会因为网络问题而中断,如果你想无人值守的执行,大概预算时间自动关机,可以这样

比如我想要第二天凌晨三点关机

shutdown -h 03:00

./nessuscli update > log.txt

这样就可以实现自动关机了,明天来看看究竟最后是否执行成功了

不过log文件中的内容可能是大量的,我们这样查看比较好

tail log.txt

如果你说我就晚上必须安装完,那你也可以写一个Python脚本,每隔一段时间就去检查一下log.txt,执行失败了就再执行一次。

import os

import time

while True:

os.system("ps -aux | grep ness > log2.txt")

f =open('log2.txt','r')

data =f.readlines()

f.close()

if'nesscli' in data:

print('running')

pass

else:

os.system('/opt/nessus/sbin/nessuscli update > log.txt')

print('restart')

time.sleep(60)

大家可以参照我写的自行适配自己的环境

我在网上还找到了第二种解决方案,大家可以看看下面这篇文章

https://blog.csdn.net/u012318074/article/details/72354387?locationNum=13&fps=1

安装完插件以后,我们就可以启动 Nessus 了

service nessusd start

成功登陆后界面是这样的

与OpenVAS相比要整洁的多,毕竟是商业级别的哈

到这里安装已经结束,还是一样,我来介绍一下Nessus的一个简单的工作模式,基本上就是两种,

第一种把Nessus 安装在渗透测试人员的电脑上(我们要演示的这种),之后我们配置扫描策略去扫描目标主机

第二种把Nessus 安装在目标主机上,之后进行一个自身的扫描(这个一会我们会遇到相关选项)

制定策略


在扫描之前,我们要制定一个策略,点击Policies

点击创建一个新的策略

上图中列出了所有的扫描模块,其中有一些右上角有一个UPGRADE标签,这个标签表示我们当前的家庭版不能够使用这个模块,需要我们升级

在可用的模块中,我们可以看出以下几个模块

  1. Advanced Scan 高级扫描
  2. Badlock Detection Badlock漏洞检测
  3. Bash Shellshock Detection 破壳漏洞
  4. Basic Network Scan 基本的网络扫描
  5. Credentialed Patch Audit 凭证补丁
  6. DROWN Detection Drown跨协议攻击TLS漏洞检测
  7. Host Discovery 主机发现
  8. Inter AMT Security Bypass英特尔主动管理技术安全绕过
  9. Malware Scan 恶意软件扫描
  10. Shadow Brokers Scan 影子经纪人扫描
  11. Spectre and Metdown 比较新的熔毁和幽灵漏洞
  12. WannaCry Ransonware 永恒之蓝
  13. Web Applicant Tests Web应用扫描

可以看到Nessus是一款针对系统及其应用程序的漏洞检测工具,并且漏洞范围非常广,更新非常及时,在Web方面的扫描与专业的Web扫描器还是有一定的差距的

我们可以选择已有的这些模版,也可以选择高级扫描,自定义一个配置,这里就来DIY一下吧

Settings


BASIC


输入名称和描述

之后点击权限处

在OpenVAS中我并没有详细的介绍这个团队协作与团队成员账号管理的这个问题

OpenVAS 和Nessus 是支持多用户操作的,团队内不同账号之间可以执行不同的任务,互不耽误,通过账号和权限来进行管理

从上图我们可以看到其中有一个选项是Noaccess ,这个选项就是设定默认的用户组是否可以访问这个策略,默认是No access,即不允许

DISCORVERY


这个选项下又有三个配置项

主机发现

端口扫描

服务发现

这个与我们之前文章中讲述的基本一致,我们还增加了操作系统识别,负载均衡之类的

Nessus 层级化做的很好,这就很清晰得去配置

我们就先来看看主机发现吧

第一个选项 Test the local Nessus host

这个选项是用来扫描安装了Nessus的这台主机,这个在实际的测试中得以展现,现在我们想要去测试别人,所以这里我们就选择第二个选项,进行一下快速的网络发现

这里是选择ping的方式,如果没有特殊需求,默认就可以

Fragile Devices 脆弱的设备

在我们的网络环境中可能存在一些脆弱的网络设备,比如以上说的网络打印机和Novell Netware的主机,大量的扫描可能会造成他们的一个拒绝服务,此时我们应该酌情考虑是否要对其进行这种扫描

我的网络环境中也没有这种设备,我就不勾选了

Wake-on-LAN

网络唤醒,唤醒那些已经关机的服务器进行扫描

可以添加一系列的MAC地址让其工作,还需要设置等待主机启动的时间

接下来是端口扫描

这个之前也把原理都讲过一遍了,所以这里直接配置就好

Ports

这个选项是说把没有扫描的端口都视为关闭状态

这个选项我们就不选了

之后是一个端口列表,我就使用默认的端口列表了

Local Port Enumerators

本地端口枚举,

由于我们要做的是目标主机的一个扫描,所以这里就都不选了

Network Port Scanners

网络端口发现选项中可以看到默认使用的是TCP的SYN扫描

之前介绍过这种扫描准确、隐蔽

我们也可以把下面的UDP方式给选择上

下面是服务扫描

第一个选项 Probe all ports to find services 是在每一个已经开放的端口上进行服务扫描

接下来是对SSL/TLS的一系列扫描,这个也需要选择上

下拉框中,选择是对已知的可能使用SSL/TLS的端口进行扫描还是对所有端口都扫描

Identify certificatesexpiring within x days 设置多少天内检测一次凭证

Enable CRL checking (connectsto the Internet) 连网查看凭证是否被吊销

ASSESSMENT


评估

可能是接触的环境或者说渗透测试规范在我们这里的氛围问题,对于评估这一项并不是十分重视

General

这一项来说,我这里的环境没有Antivirus 和SMTP ,所以默认选项就好了

Brute Force

暴力破解

暴力破解是在没有发现漏洞时候再去使用的一个手段,在弱点扫描阶段尽量不要进行,不然会給我们的扫描时间拉长,我们放在后面讲述,这页只要默认选项就可以了

Web Applications

询问是否扫描web应用程序,Nessus 自己肯定是有自知之明的,所以这里默认就是 OFF,这里我也推荐大家不要选择,把Web扫描留给后面专业的Web漏洞扫描器

Windows

Windows 用户的UID

administrator是500

guest是501

新建的用户都是1000

Malware

恶意软件

这个扫描也是利用之前我们说过的第二种方式,通过对于Hash,来判断本地是否存在恶意程序

由于与我们本次的这个扫描模式不一样,我们选择OFF

REPORT


报告

默认的选项就已经足够了,我们可以选上 Designate hosts by their DNS name

这样生成报告时候就会按照DNSname来标识主机

ADVANCED


高级选项

第一项其实我们在之前也都说过,拿到授权后的渗透测试千万不要把目标扫挂了,如果扫挂了就可能造成巨大的资产损失,第一项就是保证安全的检测

其他的按照自己网络状况以及目标情况进行选择吧!

这样我们基本的Setting就结束了,下面来到策略的Credentials

Credentials


默认的是Host,也就是主机的一些凭证,可以看到其中有三项SNMP,SSH,Windows,我们扫描的是Metasploitable2,我们已经知道帐号密码,就在这里填写进去

当然如果目标是Windows系统,可以点击Windows,并填写相关信息

除了主机的这些个选项,我们还可以配置其他凭证,我们就全都显示出来吧

这里包含很多,比如云主机密码,数据库,网络设备等

Compliance


你没有看错,直到昨天我才发现,原来之前插件更新并没有成功,今天又重新更新了一下,这次成功了,给大家看一下成功的状态

之后这一个选项才浮出水面,之前我还以为Nessus把这一项取消了呢!

这一项主要就是确定一下你要扫描的设备的类型

我们的目标是基于Ubuntu8.04的,选项中并没有,所以我们选择Ubuntu12.04吧

选择后我们这边还要进行一定的配置

Plugins


接下来就是最最重要的一部分了,插件配置

如果你看了OpenVAS那篇文章,那么你一定不会陌生这种界面,毕竟OpenVAS也是Nessus的一个分支嘛

接下来就根据情况选择插件吧

可以看到默认都是Enabled的,由于我们想要做的是一个针对性的扫描,所以我们先把所有的都变成Disabled

之后我们再来选择需要的插件

Nessus 也是有这种分类的,我们可以在分类中再进行细分abled还是Disabled

之后保存一下策略就创建好了

创建了策略之后,我们开始创建一个扫描

可以看到这里有一个User Defined,这里就是我们自己定义的策略,我们选择一下

这就是创建扫描时候的一个配置,可以看到左边一共三项

General 一般配置

Schedule 调度计划

Notifications 提醒

General


注意这里Target可以有几种形式,在途中已经提示出来了,这里我只扫描10.10.45.165这一个IP

也可以把IP地址写入一个文件,之后用下面这个UploadTargets上传上去

Schedule


Schedule对于只有一次的渗透测试扫描用处并不是很大,不过在企业环境中,这个就有用武之地了,可以配置一个定期扫描,确保企业环境的健康

这里就配置一个星期在周五扫描一次,每次扫描的时间是凌晨3点

Notifications


Nessus 比OpenVAS更加人性化的一点:邮箱提醒

在每次扫描后会有邮箱提醒,这样加上一个Schedule,相对来说可以无人值守了

大家可以看到,提示我们SMTP服务器并没有配置,我们需要配置一下

此时我们点击测试邮件

在框中填写我们的收件地址

此时会提示我们出错

错误的提示是我们身份验证的方式不对,其实这是QQ邮箱的问题,我们需要开启QQ邮箱的SMTP服务

登陆QQ邮箱

点击设置

点击这个账户,之后往下翻,找到

如果你的QQ邮箱这里是关闭的,记得开启它

这回我们再来测试一波

这次显示发送成功了

遗憾的是在我的邮箱中并没有收到测试邮件,这个应该是QQ邮箱做了一定的过滤,经过测试,确实是这样

我们在定义发件人的时候必须使用自己的邮箱帐号,不能自定义

所以我们修改一下

此时去我的邮箱看一看

已经成功了!

这样我们就可以回到Scan中填写我们的邮箱地址了

这里我们还可以过滤一些我们要发送的内容

主要是一些特定的漏洞的,可以选择CVE中的CVE-XXXX

保存之后可以看到我们制定的扫描

如果你没有其他的配置了,就可以点击右侧三角箭头开始了

这里我们先等一会再开始,先看一看其他的设置

Scanners


点击Scanners可以看到当前存在的扫描器,Nessus是支持分布式扫描的,把Nessus 分别部署在多台主机上,之后远程连接到我这里来,由于咱们没有那么多主机,也没有必要做分布式,就不设置这一项了

Plugin rules


在这里我们可以修改Plugin的漏洞评级等规则,如果我们认为某个插件的评级有问题,过高或者过低都可以自定义一下规则

只需要我们提供主机名,插件ID,生存周期,最后就是要调整为的等级

这里我们还是不需要设置,但是这并不是说这一项没有那么重要

我们可以设想一下情景,我们拿到授权,之后在服务器的内网中扫描到漏洞,可以成功利用,不过服务器对于外网是有边界防火墙存在的,这样的话可能这个漏洞在外网就利用不了,此时我们可能会适当调整漏洞评级!

Settings

设置软件升级

设置主密码,防止扫描策略,key,或者扫描结果被泄漏

一旦设置主密码,主密码绝对不能丢,丢了就很难再去恢复我们之前的配置了

高级设置

在这里我们可以进行一下全局的配置,不过这里设置的这些值,在我们设置扫描策略和扫描的时候会被覆盖!

Proxy Server


这个相对来说就比较重要了,如果之前你在安装时候配置过,那这里应该会有显示

这里可能只是支持HTTP代理,之前我介绍过了,这里大家就按照之前的用就可以了

SMTP Server

这个刚刚说过,就不说了

CA


这个主要就是为了Nessus验证插件是不是经过认证的,我们不需要进行什么配置

接下来就是用户策略

如果大家的用户有所需要,那么你可以尝试多用户共同使用Nessus,也可以把Nessus部署在云端或者Docker中,这样可以实现更好的共用

在MyAccount页面中有一个关于APIKeys这样的一项,我们可以关注一下

这种API与Shodan那个时候差不多,用法基本也都一样,更多的探究我也没去研究过

这回所有的配置就都结束了,开始扫描吧

我们可以点进去看一看

剩下的就是等待它结束了

可以看到扫描已经结束了,我的邮箱这边也收到了结果

这回我们再来看一看结果

可以看到根据威胁程度大小进行了排列

每一项我们都可以点击进去,查看详细信息

接下来尝试一下导出结果,这样就能交差了

可以看到有这么几种形式,之前OpenVAS似乎比这个多,大概是集成在了商业版本中了吧

我们还是挑选最喜欢的PDF

我们打开看一下报告

这个报告似乎有一些简略,一共只有六页,相比于之前OpenVAS那个十分详细的报告来说,差的太多,可能也是为了大家使用商业版本吧!


这篇文章实在是耗费了太多时间和精力,光是图片就有80多张,刚刚插图就插了一个多小时,真的累!

所以大家一定要好好看一看,跟着去实践一下,觉得文章有价值就帮忙转发一下啦!

-END-

0 人点赞