Nginx本地提权漏洞技术分析与防护方案

2016年11月15日(当地时间),legalhackers.com网站发布了一个关于Nginx服务器本地提权漏洞的通告,该通告所涉及的漏洞编号为CVE-2016-1247。基于Debian发行版系统(Debian或者Ubuntu)的Nginx服务器包被发现允许创建一个不安全的日志目录,攻击者可以利用此安全问题将用户权限从Nginx/web用户提升为root。    详情请见如下链接:http://legalhackers.com/advisories/Nginx-Exploit-Deb-Root-PrivEsc-CVE-2016-1247.html 

什么是Nginx

Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。起初是供俄国大型的门户网站及搜索引擎Rambler使用。此软件在BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。(引用自维基百科)

漏洞验证程序

POC代码如下,代码作者是Dawid Golunski。

受影响及修复情况:

  1. Debian
Debian受影响就修复情况

Debian受影响就修复情况2.

  1. Ubuntu

Ubuntu已修复的版本如下:

ubuntu

漏洞分析

Nginx安装后分配的日志权限为安装时设定使用的用户权限,即“…/log/nginx”的目录权限为使用者权限,因此在实际运行过程中可以对目录下的文件进行操作。目录权限如下图所示:

nginx目录权限信息

nginx目录权限信息

由于log文件所在目录为使用者权限,因此本地用户可以通过symlink符号链接的方式替换为任意文件。同时由于Nginx在重启或收到USR1信号的时候会对链接到日志的文件进行写操作,因此可以使攻击者提权。

攻击者在使用symlink替换完日志文件后,只需要等到Nginx再次打开该文件即可,而nginx在启动服务,或者接收到USR1进程信号时会打开日志文件。

然而在基于Debian的系统中,USR1信号会由调用do_rotate()函数的logrotate脚本发送。

nginx目录权限信息

nginx目录权限信息

而在默认安装的系统中,每天的625会执行logrotate脚本:

定时任务

定时任务

因此攻击者在24小时内就有机会进行提权。下面对攻击poc进行分析。其设置的参数为:

123

234

修改/etc/ld.so.preload提权文件的访问权限:

345

最终运行结果

456

漏洞触发关键点:

  1. 日志目录/var/log/nginx目录拥有者不为root,同时需有写权限;
  2. 由于在poc中需要写入/etc/ld.so.preload文件,因此需要有对该文件的写权限;

567

官方解决方案

Debian和Ubuntu官方已经对此漏洞进行了修复,建议用户升级到不受影响的版本。下载页面如下:

  • Debian

Nginx package

https://sources.debian.net/src/nginx/

  • Ubuntu 16.10

Nginx package 1.10.1-0ubuntu1.1:

https://launchpad.net/ubuntu/+source/nginx/1.10.1-0ubuntu1.1

  • Ubuntu 16.04 LTS

Nginx package 1.10.0-0ubuntu0.16.04.3

https://launchpad.net/ubuntu/+source/nginx/1.10.0-0ubuntu0.16.04.3

  • Ubuntu 14.04 LTS

Nginx package 1.4.6-1ubuntu3.6

https://launchpad.net/ubuntu/+source/nginx/1.4.6-1ubuntu3.6

技术防护方案

  • 产品类

 

  • 使用SaaS绿盟云紧急漏洞检测服务下载检测脚本进行检测,链接地址如下:

https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?service_id=1026

  • 使用绿盟科技的远程评估系统RSAS进行安全评估。

(2)服务类

  • 短期服务:绿盟科技工程师现场处理(渗透测试+应急响应)。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
  • 中期服务:提供 3-6个月的风险监控与巡检服务。根除风险,确保事件不复发。
  • 长期服务:基于行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)。

 

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:486207500、570982169
直接询问:010-68438880-8669

发表评论