欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Linux下的McAfee安全扫描软件存在多个漏洞

来源:nation.state.actor 作者:ResoLutiOn 时间:2016-12-14 TAG: 我要投稿

 事件综述


近期,有网络安全人员发现:Linux系统下的安全扫描软件McAfee中存在多个安全漏洞【软件传送门:(McAfee for Linux)】,黑客可利用其中一些漏洞盗用Linux系统的root权限,发动RCE攻击。

关于McAfee软件的情况介绍


McAfee VirusScan Enterprise for Linux,一款利用Linux独特访问扫描程序,对系统进行实时防护的安全检测软件,由Intel旗下的子公司McAfee推出。该软件适用于使用Linux系统的企业用户。它能够检测隐藏在存档文件中的Linux病毒并予以阻止;阻止Microsoft Windows恶意软件,防止其通过Linux环境传播;同时还能借助来自McAfee Labs的自动安全更新,确保始终提供最新的Linux病毒防护。由此可见,McAfee VirusScan Enterprise for Linux的功能可谓十分强大。

起初,在很多安全专家看来,这款安全防护软件似乎是“尽善尽美”,它近乎拥有了漏洞研究人员所期待的所有优点,例如:它能够利用系统root权限,这便能够保证用户PC的安全;但在最近一段时间里,McAfee似乎有点淡出人们视野的味道,原因在于在很长一段时间里,McAfee公司已没有对其进行更新了。当发现这些情况时,我决定要细致地了解有关该软件的具体情况。

受到漏洞影响的McAfee版本


安全研究人员证实:从McAfee 1.9.2版本(于2015年2月19日发布)到2.0.2版本(于2016年4月22日发布),都存在多个相同的安全漏洞。它们之间唯一的差别便是:在漏洞利用方面,新版本要比旧版本更容易实施,也即是说:近期的McAfee软件的安全性下降了很多,更容易遭到黑客利用。

漏洞报告时间轴


1.2016年6月23日:安全人员将漏洞的相关情况向McAfee公司的安全应急响应中心(CERT)做了汇报;McAfee公司定于2016年8月23日向公众披露漏洞的具体细节。

2.2016年7月19日:McAfee公司发表声明称: 鉴于关于漏洞的细节仍在不断更新中,他们决定将发布公告的时间延期至9月,最晚可至12月;

3.2016年9月-11月期间:安全人员未与McAfee公司取得联系;

4.2016年12月5日:McAfee公司发布消息称:公司将于12月12日发布关于McAfee软件漏洞的完整报告;

5.2016年12月9日:McAfee公司发表安全公告,定义了漏洞的数字ID;

6.2016年12月12日:完整的McAfee漏洞报告披露。

McAfee软件系统结构


在深入探究McAfee软件漏洞的具体情况之前,我认为有必要先了解有关的软件结构,磨刀不误砍柴工,这将会对之后的漏洞研究有着一定的帮助。

(1)软件所提供的服务:

McAfee VirusScan Enterprise for Linux可向用户提供两种单独的服务:一是用户能够以系统root权限运行该软件;二是还可以一种名为“nails”的非特权用户的身份运行该软件。具体说来,用户可用root权限使用该软件的主要扫描功能,它能够侦听一个本地的Unix网络套接字包(/var/opt/NAI/LinuxShield/dev/nails_monitor)。而网络服务器则可以用nails用户身份来运行,它能够侦听端口0.0.0:55443发出的数据包。

(2)实现进程间的通信

在该软件的架构中,网络服务器是设置在扫描服务上的一个用户交互界面。当用户向网络服务器提交了一个请求时,该请求会被重新格式化,以另一种形式发送给root扫描程序;系统将会在一个HTML界面中显示该用户提交的请求及其相关信息。由于在交互过程中,web服务器不会对用户传递的数据做出太多的限制,这便给黑客利用该漏洞,向系统注入恶意代码提供了可趁之机。

10个具体的McAfee漏洞:

接下来,我将为大家具体介绍10个McAfee VirusScan Enterprise for Linux软件中存在的漏洞。

No.1  CVE-2016-8016:未经验证的远程文件存在性校验漏洞

http://p4.qhimg.com/t01b6818492d28fc4f6.png

当我们在浏览网页的编译代码时,即会发现该html文件的存放路径是由tpIt参数来决定。在上图中,该tpIt参数是放置在tasks.html文件中。而运行在web服务器上的Linux Strace工具会显示:可打开/opt/NAI/LinuxShield/apache/htdocs/0409/tasks.html文件,如下所示:

http://p4.qhimg.com/t01c6ad4f32fa42bc65.png

在编译时,如果将tpIt参数放置在地址为..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd(该字符串经过URL加密处理)的不同的页面中,那么编译过程就会出错,系统会返回一个格式错误的页面,并附有错误返回值14。而JavaScript语言中的lookupErrorCode功能函数会根据错误返回值14,向用户发送“web模块使用错误”的提示语句。若将tpIt参数放置在一个不存在的系统路径中,那么错误返回值将变为10,错误提示语句为“系统无法打开该文件”。如下图所示:

http://p3.qhimg.com/t01be454ec16abc5f66.png

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载