5.1 使用Nessus

Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一。所以,本章将介绍安装、配置并启动Nessus。

5.1.1 安装和配置Nessus

为了定位在目标系统上的漏洞,Nessus依赖feeds的格式实现漏洞检查。Nessus官网提供了两种版本:家庭版和专业版。

  • 家庭版:家庭版是供非商业性或个人使用。家庭版比较适合个人使用,可以用于非专业的环境。
  • 专业版:专业版是供商业性使用。它包括支持或附加功能,如无线并发连接等。

本小节使用Nessus的家庭版来介绍它的安装。具体操作步骤如下所示。

(1)下载Nessus软件包。Nessus的官方下载地址是http://www.tenable.com/products/ nessus/select-your-operating-system。在浏览器中输入该地址,将显示如图5.1所示的界面。

128-01

图5.1 Nessus下载界面

(2)在该界面左侧的Download Nessus下,单击Linux,并选择下载Nessus-5.2.6- debian6_i386.deb包,如图5.2所示。

128-02

图5.2 下载Linux系统的Nessus

(3)单击Nessus-5.2.6-debian6_i386.deb包后,将显示如图5.3所示的界面。

128-03

图5.3 接收许可证

(4)在该界面单击Agree按钮,将开始下载。然后将下载的包,保存到自己想要保存的位置。

(5)下载完Nessus软件包,现在就可以来安装该工具。执行命令如下所示:

root@kali:~# dpkg -i Nessus-5.2.6-debian6_i386.deb
Selecting previously unselected package nessus.
(正在读取数据库 … 系统当前共安装有 276380 个文件和目录。)
正在解压缩 nessus (从 Nessus-5.2.6-debian6_i386.deb) …
正在设置 nessus (5.2.6) …
nessusd (Nessus) 5.2.6 [build N25116] for Linux
Copyright (C) 1998 - 2014 Tenable Network Security, Inc

Processing the Nessus plugins…
[##################################################]

All plugins loaded

 - You can start nessusd by typing /etc/init.d/nessusd start
 - Then go to https://kali:8834/ to configure your scanner

看到以上类似的输出信息,表示Nessus软件包安装成功。Nessus默认将被安装在/opt/nessus目录中。

(6)启动Nessus。执行命令如下所示:

root@kali:~# /etc/init.d/nessusd start
$Starting Nessus : .

从输出的信息中可以看到Nessus服务已经启动。

129-01注意:使用Nessus之前,必须有一个注册码。关于获取激活码的方法在第2章已经介绍过,这里就不再赘述。

(7)激活Nessus。执行命令如下所示:

root@Kali:~# /opt/nessus/bin/nessus-fetch --register 9CC8-19A0-01A7-D4C1- 4521

(8)为Nessus创建一个用户。执行命令如下所示:

root@Kali:~# /opt/nessus/sbin/nessus-adduser

(9)登录Nessus。在浏览器中输入地址https://主机IP:8834或https://主机名:8834。

通过以上步骤的详细介绍,Nessus就配置好了,现在就可以使用Nessus扫描各种的漏洞。使用Nessus扫描漏洞之前需要新建扫描策略和扫描任务,为了后面能顺利的扫描各种漏洞,接下来将介绍新建策略和扫描任务的方法。

1. 添加策略

添加策略的具体操作步骤如下所示。

(1)登录Nessus。Nessus是一个安全链接,所以需要添加信任后才允许登录。在浏览器地址栏中输入https://192.168.41.234:8834/,将显示如图5.4所示的界面。

129-02

图5.4 连接不被信任

(2)在该界面单击I Understand the Risks按钮,将显示如图5.5所示的界面。

130-01

图5.5 了解风险

(3)该界面显示了所存在的风险,单击Add Exception按钮,将显示如图5.6所示的界面。

130-02

图5.6 添加安全例外

(4)在该界面单击Confirm Security Exception按钮,将显示如图5.7所示的界面。

131-01

图5.7 Nessus登录界面

(5)在该界面输入前面创建的用户名和密码,然后单击Sign In按钮,将显示如图5.8所示的界面。

131-02

图5.8 Nessus主界面

(6)在该界面使用鼠标切换到Policies选项卡上,将显示如图5.9所示的界面。

132-01

图5.9 策略界面

(7)在该界面单击New Policy按钮,将显示如图5.10所示的界面。

132-02

图5.10 策略向导

(8)该界面选择创建策略类型。Nessus默认支持10种策略类型,在策略类型上有绿色条的表示订阅。这里选择Advanced Policy类型,单击该图标后,将显示如图5.11所示的界面。

133-01

图5.11 新建策略

(9)在该界面设置策略名、可见性和描述信息(可选项)。这里设置策略名为Local VulnerabilityAssessment、可见性为private。然后单击左侧的Plugins标签,将显示如图5.12所示的界面。在图5.11中Visibility有两个选项。

133-02

图5.12 插件程序

  • private:仅自己能使用该策略扫描。
  • shared:其他用户也能使用该策略扫描。

(10)该界面显示了所有插件程序,默认全部是启动的。在该界面可以单击Disable All按钮,禁用所有启动的插件程序。然后指定需要启动的插件程序,如启动Debian Local Security Checks和Default Unix Accounts插件程序,启动后如图5.13所示。

134-01

图5.13 启动的插件程序

(11)在该界面单击Save按钮,将显示如图5.14所示的界面。

134-02

图5.14 新建的策略

(12)从该界面可以看到新建的策略Local Vulnerability Assessment,表示该策略已创建成功。

2. 新建扫描任务

策略创建成功后,必须要新建扫描任务才能实现漏洞扫描。下面将介绍新建扫描任务的具体操作步骤。

(1)在图5.14中,将鼠标切换到Scans选项卡上,将显示如图5.15所示的界面。

135-03

图5.15 扫描任务界面

(2)从该界面可以看到当前没有任何扫描任务,所以需要添加扫描任务后才能扫描。在该界面单击New Scan按钮,将显示如图5.16所示。

135-04

图5.16 新建扫描任务

(3)在该界面设置扫描任务名称、使用策略、文件夹和扫描的目标。这里分别设置为Sample Scan、Local Vulnerability Assessment(前面新建的策略)、My Scans和192.168.41.0/24。然后单击Launch按钮,将显示如图5.17所示的界面。

136-01

图5.17 运行扫描任务

(4)从该界面可以看到扫描任务的状态为Running(正在运行),表示Sample Scan扫描任务添加成功。如果想要停止扫描,可以单击135-01(停止一下)按钮。如果暂停扫描任务,单击135-02按钮。

5.1.2 扫描本地漏洞

在前面介绍了Nessus的安装、配置、登录及新建策略和扫描任务,现在可以开始第一次测试组的安全漏洞。对于新建策略和扫描任务这里就不再赘述,本小节中只列出扫描本地漏洞所需添加的插件程序及分析扫描信息。

【实例5-1】扫描本地漏洞具体操作步骤如下所示。

(1)新建名为Local Vulnerability Assessment策略。

(2)添加所需的插件程序。

  • Ubuntu Local Security Checks:扫描本地Ubuntu安全检查。
  • Default Unix Accounts:扫描默认Unix账户。

(3)新建名为Sample Scan扫描任务。

(4)扫描漏洞。扫描任务执行完成后,将显示如图5.18所示的界面。

136-02

图5.18 扫描完成

(5)在该界面双击扫描任务名称Sample Scan,将显示扫描的详细信息,如图5.19所示。

137-01

图5.19 扫描的详细信息

(6)从该界面可以看到总共扫描了三台主机。扫描主机的漏洞情况,可以查看Vulnerability列,该列中的数字表示扫描到的信息数。右侧显示了扫描的详细信息,如扫描任务名称、状态、策略、目标主机和时间等。右下角以圆形图显示了漏洞的危险情况,分别使用不同颜色显示漏洞的严重性。本机几乎没任何漏洞,所以显示是蓝色(Info)。关于漏洞的信息使用在该界面可以单击Host列中的任何一个地址,显示该主机的详细信息,包括IP地址、操作系统类型、扫描的起始时间和结束时间等。本例中选择192.168.41.234地址,如图5.20所示。

137-02

图5.20 漏洞信息

(7)在该界面单击INFO按钮,将显示具体的漏洞信息,如图5.21所示。

138-01

图5.21 漏洞详细信息

(8)该界面显示了漏洞的描述信息及扫描到的信息。例如,该主机上开启了68、8834和15774等端口。使用Nessus还可以通过导出文件的方式查看漏洞信息,导出的文件格式包括Nessus、PDF、HTML、CSV和Nessus DB。导出文件的方式如下所示:

在图5.20中单击Export按钮,选择导出文件的格式。这里选择PDF格式,单击PDF命令,将显示如图5.22所示的界面。

138-02

图5.22 可用的内容

(9)该界面分为两部分,包括Available Content(可用的内容)和Report Content(报告内容)。该界面显示了导出的PDF文件中可包括的内容有主机摘要信息、主机漏洞和插件漏洞。在图5.22中将要导出的内容用鼠标拖到Report Content框中,拖入内容后将显示如图5.23所示的界面。

139-01

图5.23 导出的内容

(10)在该界面显示了将要导出的内容。此时单击Export按钮,将显示如图5.24所示的界面。

139-02

图5.24 下载界面

(11)在该界面单击Save File按钮,指定该文件的保存位置,即PDF文件导出成功。

5.1.3 扫描网络漏洞

如果用户想要使用Nessus攻击一个大范围的漏洞,需要配置评估漏洞列表并指定获取信息的评估列表。本小节将介绍配置Nessus在目标主机寻找网络漏洞,这些漏洞指目标主机或其他网络协议。

【实例5-2】扫描网络漏洞的具体操作步骤如下所示。

(1)新建名为Internal Network Scan策略。

(2)添加所需的插件程序,如表5-1所示。

表5-1 所需插件程序

CISCO 扫描CISCO系统
DNS 扫描DNS服务器
Default Unix Accounts 扫描本地默认用户账户和密码
FTP 扫描FTP服务器
Firewalls 扫描代理防火墙
Gain a shell remotely 扫描远程获取的Shell
Geeral 扫描常用的服务
Netware 扫描网络操作系统
Peer-To-Peer File Sharing 扫描共享文件检测
Policy Compliance 扫描PCI DSS和SCAP信息
SCADA 扫描设置管理工具
SMTP Problems 扫描SMTP问题
SNMP 扫描SNMP相关信息
Service Detection 扫描服务侦察
Settings 扫描基本设置

(3)新建名为Network Scan扫描任务。

(4)扫描结果如图5.25所示。

140-01

图5.25 网络扫描结果

(5)从该界面可以看到有两个比较严重的漏洞。如果想要详细地分析该漏洞,建议将该信息使用文件的形式导出。

5.1.4 扫描指定Linux的系统漏洞

本小节将介绍使用Nessus扫描指定Linux系统上的漏洞。

【实例5-3】扫描指定Linux系统漏洞的具体操作步骤如下所示。

(1)使用Metasploitable 2.0作为目标主机。用户也可以使用其他版本的Linux系统。

(2)新建名为Linux Vulnerability Scan策略。

(3)添加所需的插件程序,如表5-2所示。

表5-2 所需插件程序

Backdoors 扫描秘密信息
Brute Force Attacks 暴力攻击
CentOSo Local Security Checks 扫描CentOS系统的本地安全漏洞
DNS 扫描DNS服务器
Debian Local Security Checks 扫描Debian系统的本地安全漏洞
Default Unix Accounts 扫描默认Unix用户账号
Denial of Service 扫描拒绝的服务
FTP 扫描FTP服务器
Fedora Local Security Checks 扫描Fedora系统的本地安全漏洞
Firewalls 扫描防火墙
FreeBSD Local Security Checks 扫描FreeBSD系统的本地安全漏洞
Gain a shell remotely 扫描远程获得的Shell
General 扫描漏洞
Gentoo Local Security Checks 扫描Gentoo系统的本地安全漏洞
HP-UX Local Security Checks 扫描HP-UX系统的本地安全漏洞
Mandriva Local Security Checks 扫描Mandriva系统的本地安全漏洞
Misc 扫描复杂的漏洞
Red Hat Local Security Checks 扫描Red Hat系统的本地安全漏洞
SMTP Porblems 扫描SMTP问题
SNMP 扫描SNMP漏洞
Scientific Linux Local Security Checks 扫描Scientific Linux系统的本地安全漏洞
Slackware Local Security Checks 扫描Slackware系统的本地安全漏洞
Solaris Local Security Checks 扫描Solaris系统的本地安全漏洞
SuSE Local Security Checks 扫描SuSE系统的本地安全漏洞
Ubuntu Local Security Checks 扫描Ubuntu系统的本地安全漏洞
Web Servers 扫描Web服务器

(4)新建名为Linux Vulnerability Scan扫描任务。

(5)扫描漏洞,扫描结果如图5.26所示。

141-01

图5.26 指定Linux系统扫描结果

(6)从该界面可以看到总共扫描了6台主机上的漏洞信息。其中,主机192.168.41.142上存在7个比较严重的漏洞。关于漏洞的百分比情况,可以从右下角的扇形图中了解到。同样,用户可以使用前面介绍过的两种方法,查看漏洞的详细信息。

5.1.5 扫描指定Windows的系统漏洞

本节将介绍使用Nessus扫描指定Windows系统上的漏洞。

【实例5-4】使用Nessus扫描指定Windows系统漏洞。本例中使用Windows 7系统作为目标主机。具体扫描步骤如下所示。

(1)新建名为Windows Vulnerability Scan策略。

(2)添加所需的插件程序,如表5-3所示。

表5-3 所需插件程序

DNS 扫描DNS服务器
Databases 扫描数据库
Denial of Service 扫描拒绝的服务
FTP 扫描FTP服务器
SMTP Problems 扫描SMTP问题
SNMP 扫描SNMP
Settings 扫描设置信息
Web Servers 扫描Web Servers
Windows 扫描Windows
Windows:Microsoft Bulletins 扫描Windows中微软公告
Windows:User management 扫描Windows用户管理

(3)开始扫描漏洞。扫描结果如图5.27所示。

142-01

图5.27 扫描Windows系统的结果

(4)从该界面可以看到主机192.168.41.1的漏洞情况,该主机中存在一个比较严重的漏洞。同样用户可以使用前面介绍过的两种方法查看漏洞的详细信息,进而修改主机中存在的漏洞。