目录
1. 介绍.................................................................................................................. 1
2. Nessus简介............................................................................................................... 1
3. Nessus安装注册...................................................................................................... 2
3.1下载Nessus安装包........................................................................................ 2
3.2获取激活码...................................................................................................... 3
3.3安装Nessus..................................................................................................... 4
3.4激活Nessus及插件更新................................................................................ 4
3.5添加用户.......................................................................................................... 5
3.6开启Nessus..................................................................................................... 6
3.7启动Nessus..................................................................................................... 6
4. Nessus漏洞扫描和分析......................................................................................... 8
4.1新建扫描策略.................................................................................................. 8
4.2新建扫描........................................................................................................ 10
4.3扫描结果分析................................................................................................ 11
4.3.1分析一................................................................................................. 12
4.3.2分析二................................................................................................. 13
4.3.3分析三................................................................................................. 14
4.3.4分析四................................................................................................. 15
4.3.5分析五................................................................................................. 16
4.3.6分析六................................................................................................. 17
4.3.6分析七................................................................................................. 18
4.3.6分析八................................................................................................. 19
4.3.6分析九................................................................................................. 20
4.3.6分析十................................................................................................. 21
4.4漏洞解决........................................................................................................ 22
5. 总结........................................................................................................................ 25
1.介绍
题目为Ubuntu操作系统漏洞扫描和分析。该实验的系统环境为Ubuntu,具体详细信息如图1所示;本次实验选择的系统漏洞扫描和分析软件是著名的Nessus软件。
接下来,将详细介绍在Ubuntu上安装、注册、激活Nessus软件以及使用Nessus软件进行漏洞扫描和分析。
图 1 Ubuntu概况
2.Nessus简介
Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。
1998年, Nessus 的创办人 Renaud Deraison 展开了一项名为 “Nessus”的计划,其计划目的是希望能为因特网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程序。经过了数年的发展, 包括 CERT 与 SANS 等著名的网络安全相关机构皆认同此工具软件的功能与可用性。
2002年时, Renaud 与 Ron Gula, Jack Huffard 创办了一个名为 Tenable Network Security 的机构。在第三版的Nessus 发布之时, 该机构收回了 Nessus 的版权与程序源代码 (原本为开放源代码), 并注册成为该机构的网站。目前,此机构位于美国马里兰州的哥伦比亚。
Nessus还是一套非常简单易用且功能强大的检测工具,在Nessus 2.x版及其以前的版本都是开放原始码,而目前3版之后的版本则已经是不再开放原始码。Nessus有以下几个主要的特点:
1.提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。
2.可以同时在本机或远程端口上摇控, 进行系统的漏洞扫描和分析。
3.运作效能能随着系统的资源而自行调整。如果将主机加入更多的资源(例如加快CPU速度或增加内存大小) ,其效率表现可因为丰富资源而提高。
4. 可自行定义插件(Plug-in),完整支持SSL (Secure Socket Layer)。
就像上面提到的,Nessus所用的弱点检测项目其实主要是用NASL(Nessus Attack Scripting Language)语言所撰写,只有一小部分是以C来撰写,所以我们可在安装完Nessus后的资料夹底下发现很多扩展名是「.nasl」的plugin档案。Nessus 还具有扫描任意端口任意服务的能力;以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。
3. Nessus安装注册
3.1下载Nessus安装包
我们将在官方网站下载,下载地址如下:
https://www.tenable.com/downloads/nessus
在浏览器中访问,将出现下载界面,如图2所示。
图 2 Nessus下载界面
官网提供了Nessus工具各种平台的安装包,如Windows、Mac OS X、Linux、FreeBSD等。用户可以根据自己的操作系统,选择对应的安装包。我们选择Ubuntu 16.04对应的最新版本Nessus-7.2.1-ubuntu1110_amd64.deb。
3.2 获取激活码
下载安装包后,需要获取激活码(Nessus需要激活后才能使用),点击图2中的Get Activation Code 按钮,将会出现图3的界面。
图 3 获取激活码
我们选择免费的一栏,单击Nessus Home Free下面的Register Now按钮,将会出现图4的界面。
图 4 注册激活码
在界面内输入First Name,Last Name,Email(一定要填写可用的邮箱,用于接收Nessus为你发送的激活码),然后点击Register,将会在邮箱中收到Nessus发送的激活码7514-A11C-87B4-D863-2960,如图5所示。
图 5 激活码
3.3 安装Nessus
安装包和激活码得到之后,我们进行安装操作。打开终端,进入安装包的目录下,输入命令:sudo dpkg -i Nessus-7.2.1-ubuntu1110_amd64.deb进行安装,如图6所示。
图 6 安装Nessus
3.4 激活Nessus及插件更新
接着在终端中输入命令:
systemctl enable nessusd.service
systemctl start nessusd.service
/opt/nessus/sbin/nessuscli fetch –register 7514-A11C-87B4-D863-2960(执行完这一行代码后,Nessus会进行插件更新下载)
Systemctl restart nessusd.service
如图7所示。
图 7 激活和更新插件
3.5 添加用户
首先,需要先获取root权限,添加root用户。在终端输入命令:sudo passwd root,然后设置root账户的用户名和密码。设置成功后输入su,使用root账户执行sudo /opt/nessus/sbin/nessuscli adduser,成功添加用户。如图8-9所示。
图8 添加用户
图 9 用户添加成功
3.6 开启Nessus
打开终端,输入命令:/etc/init.d/nessusd start 开启Nessus服务,如图10所示,开启成功。
图 10 开启Nessus
3.7 启动Nessus
在浏览器中输入:https://127.0.0.1:8834将会出现初始化界面,如图11所示。
图 11 初始化界面
如果在插件更新时,没有更新成功,初始化时将会重新下载更新;初始化完成后将会出现以下登录界面如图12。
图 12 登录界面
登录成功后,我们将会进入Nessus的主界面,如图13所示。
图 13 Nessus 主界面
4. Nessus 漏洞扫描和分析
4.1 新建扫描策略
点击Policies按钮,将会出现如图14的页面。
图 14 新建扫描策略
然后点击NewPolicy新建一个扫描策略,这里我们选择 Advance Scan,如图15的界面。
图 15 选择策略
然后出现图16所示的页面,我们填写相应的信息。
图 16 填写设置信息
然后,点击Plugins,选择我们需要的扫描插件(默认情况下所有插件全部启用),由于我们是对Ubuntu系统进行漏洞扫描,把不相关的插件disable,然后点击保存。如图17所示。
图 17 选择Plugins
4.2 新建扫描
在主界面点击New Scan 按钮进行新建扫描,这时会让用户选择扫描策略,我们选择自己保存的扫描策略,如图18所示。然后,会出现图19所示的界面。在该界面中,我们输入新建扫描的名字、描述、以及扫描ip段(这里,我们对Ubuntu主机系统进行扫描,输入主机的ip地址192.168.154.130),然后点击保存,点击launch进行扫描,将会出现图20所示界面,等待扫描结果。
图 18 自定义扫描策略
图 19 输入信息
图 20 扫描过程
4.3 扫描结果分析
扫描完成后,点击扫描任务,将会出现扫描报告单,如图21所示。
图 21 扫描结果
如图21所示,本次对ip为192.168.184.130的主机的Ubuntu系统进行漏洞扫描一共用了13分钟,发现了345个漏洞;其中红色代表严重漏洞21个,橙色代表高等漏洞150个,黄色代表中等漏洞140个,绿色代表低级漏洞,蓝色代表具体信息。
点击Vulnerablilties查看漏洞信息,如图22所示。
图 22 漏洞信息
由于系统漏洞比较多,我们将分析几个不同级别且典型的漏洞。
4.3.1分析一:linux vulnerabilities
Synopsis:
The remote Ubuntu host is missing one or more security-related patches.
远程Ubuntu主机缺失一个或多个安全补丁。
Description:
在Linux内核的TTY实现中发现了一种use-after-free的状态。本地攻击者可以使用它来公开敏感信息(内核内存)。
Linux内核的两个实施例在处理vidioc_dqbuf_octl()时没有适当地处理多个平面。本地攻击者可以使用它来导致拒绝服务(系统崩溃)或执行任意代码。
在一个挂载名称空间中,共享绑定会在不受限制的情况下添加到Linux内核的挂载表中。本地攻击者可以使用它来导致拒绝服务(系统崩溃)。
发现Linux内核中x86/x86_64的KVM实现可以取消空指针的引用。客户虚拟机中的攻击者可以使用它在KVM主机中导致拒绝服务(系统崩溃)。
发现Linux内核中通过IEEE 1394 (FireWire)实现的IP在处理碎片包时包含缓冲区溢出。远程攻击者可以使用它来执行具有管理权限的任意代码。
发现Linux内核中的TCP实现错误地处理了套接字缓冲区(skb)截断。本地攻击者可以使用它来导致拒绝服务(系统崩溃)。
发现Linux内核中的SCTP实现不正确地处理传入数据的验证。远程攻击者可以使用它来导致拒绝服务(系统崩溃)。
Solution:
更新受影响的包。
具体细节如图23所示。
图 23 漏洞分析一
4.3.2分析二:curl vulnerabilities
Synopsis:
The remote Ubuntu host is missing one or more security-related patches.
远程Ubuntu主机缺失一个或多个安全补丁。
Description:
发现curl无法正确处理某些FTP路径。攻击者可以使用它来拒绝服务,或者执行任意代码。
发现curl错误地处理了某些LDAP URL。攻击者可能使用这个问题导致拒绝服务。
Solution:
更新受影响的包。
具体细节如图24所示。
图 24 漏洞分析二
4.3.3分析三:sudo vulnerability
Synopsis:
The remote Ubuntu host is missing one or more security-related patches.
远程Ubuntu主机缺失一个或多个安全补丁。
Description:
发现Sudo在试图确定/proc/[pid]/stat的控制tty时没有正确解析其内容。在某些配置中,本地攻击者可能会使用它覆盖文件系统上的任何文件,从而绕过预期的权限。
Solution:
更新受影响的sudo和/或sudo-ldap包。
具体细节如图25所示。
图 25 漏洞分析三
4.3.4分析四:cups vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机缺失一个安全补丁。
Description:
发现CUPS使用无效用户名错误地处理某些打印作业。远程攻击者可能使用这个问题导致CUPS崩溃,从而导致拒绝服务。这个问题只影响了Ubuntu 14.04 LTS, Ubuntu 17.10和Ubuntu 18.04 LTS。
发现CUPS dnssd后端错误地处理某些环境变量。本地攻击者可能使用此问题升级特权。
发现CUPS不能正确处理某些指令。本地攻击者可能使用这个问题来读取任意文件。
发现CUPS AppArmor不正确的限制dnssd后端。一个当地的攻击者可能会利用这个问题来逃脱限制。
Solution:
更新受影响的cups包。
具体细节如图26所示。
图 26 漏洞分析四
4.3.5分析五:linux-firmware vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机缺少一个安全相关的补丁。
Description:
发现几个Intel WLAN设备的固件错误地处理了WPA2与WLAN上Wake的关系。远程攻击者可以使用此问题进行关键的重新安装攻击,以获取敏感信息。
Solution:
更新受影响的linux-firmware包。
具体细节如图27所示。
图 27 漏洞分析五
4.3.6分析六:Service Detection
Synopsis:
The remote service could be identified.
可以识别远程服务。
Description:
Nessus能够通过其横幅或通过查看接收到HTTP请求时发送的错误消息来识别远程服务。
Solution:
n/a
具体细节如图28所示。
图 28 漏洞分析六
4.3.7分析七:Slibxml2 vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机缺少一个安全相关的补丁。
Description:
发现libxml2错误地处理了格式字符串。如果一个用户或自动化系统被骗打开了一个特别制作的文档,攻击者可能会导致libxml2崩溃,导致拒绝服务。
发现libxml2错误地处理某些格式不正确的文档。如果一个用户或自动化系统被骗打开了一个特别制作的文档,攻击者可能会导致libxml2崩溃,导致拒绝服务,或者执行任意代码。
发现libxml2错误地处理了某些格式不正确的文档。如果一个用户或自动化系统被骗打开了一个特别制作的文档,攻击者可能会导致libxml2崩溃,导致拒绝服务,或者执行任意代码。
Solution:
更新受影响的libxml2包。
具体细节如图29所示。
图 29 漏洞分析七
4.3.8分析八:exiv2 vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机丢失了一个或多个安全相关补丁。
Description:
发现Exiv2错误地处理了一些文件。攻击者可能会使用此命令导致拒绝服务。
发现Exiv2错误地处理了一些PNG文件。攻击者可能会使用它来访问敏感信息。
发现Exiv2错误地处理了一些文件。攻击者可以使用它来执行任意代码。
发现Exiv2错误地处理了一些文件。攻击者可能会使用它来访问敏感信息。
Solution:
更新受影响的exiv2、libexiv2-12和/或libexiv2-14包。
具体细节如图30所示。
图 30 漏洞分析八
4.3.8分析九:poppler vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机丢失了一个或多个安全相关补丁。
Description:
发现poppler错误地处理了JPEG 2000图像。如果用户或自动化系统被骗打开了一个精心制作的PDF文件,攻击者可能会导致拒绝服务,或者可能使用调用程序的用户的特权执行任意代码。
发现poppler pdfunite工具错误地解析了某些格式不正确的PDF文档。如果用户或自动化系统被骗打开了一个精心制作的PDF文件,攻击者可能会导致poppler崩溃,导致拒绝服务。
发现poppler pdfunite工具错误地解析了某些格式不正确的PDF文档。如果用户或自动化系统被骗打开了一个精心制作的PDF文件,攻击者可能导致poppler挂起,导致拒绝服务。
发现poppler在处理PDF文档时错误地处理了内存。如果用户或自动化系统被骗打开了一个精心制作的PDF文件,攻击者可能会导致poppler消耗资源,导致拒绝服务。
Solution:
更新受影响的包。
具体细节如图31所示。
图 31 漏洞分析九
4.3.8分析十:libxfont, libxfont1, libxfont2 vulnerabilities
Synopsis:
The remote Ubuntu host is missing a security-related patch.
远程Ubuntu主机丢失了一个或多个安全相关补丁。
Description:
发现libXfont在PatternMatch中错误地处理了某些模式。本地攻击者可以使用这个问题导致libXfont崩溃,导致拒绝服务,或者可能获得敏感信息。
发现libXfont错误地处理某些格式不正确的PCF文件。本地攻击者可以使用这个问题导致libXfont崩溃,导致拒绝服务,或者可能获得敏感信息。
Solution:
更新受影响的libxfont1和/或libxfont2包。
具体细节如图32所示。
图 32 漏洞分析十
4.4 漏洞解决
对所有的漏洞进行分析可知,出现这么多的漏洞是因为没有对Linux内核进行更新和加固;于是,我们进行Linux内核更新。
打开终端,输入命令:sudo dpkg –configure –a
sudo apt update
sudo apt dist-upgrade
如图33-35所示,对linux进行加固更新。
图 33 更新加固1
图 34 更新加固2
图 35 更新加固3
最后,把安装包下载后,进行自动更新,更新后,我们再打开Nessus对本机的Ubuntu系统进行扫描,扫描结果如图36所示。
图 36 扫描结果2
我们可以从图中看出,之前的300多个漏洞都已解决,只剩下一些不太重要的警告信息。
5. 总结
本次实验的课题是Ubuntu操作系统漏洞扫描与分析。本文把Nessus的安装、注册、扫描、解决等做了详细的介绍。