Linux 应用权限不当可提权系统漏洞
前言
linux以强大的文件管理系统著称,在实际使用中,虽然能为工作提供极大便利,然而如果权限处理不当,可能会造成一定的安全风险,如在操作文件时,会改变某些文件夹的权限,当利用一些可以随意穿越的符号链接时,可以使相应文件指向系统文件,越权修改系统文件权限,攻击者利用此原理,劫持so库,或修改启动定时脚本,从而提权。
案例
Nginx CVE-2016-1247
影响版本
Debian*
漏洞原理
Debian* 默认apt-get 安装的nginx 会把日志目录的所有者设置为 www-data
1 | yaseng@ubuntu:/tmp$ ls -ld /var/log/nginx/ |
攻击者可以把目录下的日志文件修改为一个符号链接,指向一个没有权限写的文件,例如
/etc/ld.so.preload(共享库),当nginx 重启时会修改/etc/ld.so.preload
权限为 www-data ,这样就可以劫持环境提权到 root 。
nginx 有一个定时脚本(/etc/logrotate.d/nginx)每天 6:25 会重启 ,并且重新设置日志权限 ,只需写一个脚本监听 /etc/ld.so.preload 是否可写然后覆盖一个提权的 so 文件进去即可。
漏洞测试
环境: Ubuntu 15.04
exiloit : http://legalhackers.com/advisories/Nginx-Exploit-Deb-Root-PrivEsc-CVE-2016-1247.html
安装 sudo apt-get install nginx
提权
1 | www-data@ubuntu:/tmp$ pwd |
等待nginx 重启,获取root权限

漏洞修复
修改日志权限为 root 。
MySQL CVE-2016-6663
影响版本
1 | MariaDB |
漏洞原理
MySQL以及其衍生版本在执行修复表( repair table xxx)业务时会产生一个临时文件 xxx.TMD,赋予 xxx.TMD 一个 mysql user 权限的SUID,由于MySQL的数据文件夹是可控的,如在赋予权限之前替换掉 TMD 文件(例如 /bin/bash/),就可以获得 mysql-suid 交互式shell 。从web 权限提升到 mysql user。
漏洞测试
环境: Ubuntu 15.04 Mysql 5.6.28
exploit:http://legalhackers.com/exploits/CVE-2016-6663/mysql-privesc-race.c
执行
1 | yaseng@ubuntu:/tmp$ sudo apt-get install mysql-server mysql-client |
截图

漏洞修复
https://github.com/mysql/mysql-server/commit/4e5473862e6852b0f3802b0cd0c6fa10b5253291
MySQL CVE-2016-6664
影响版本
1 | MySQL |
漏洞原理
同 nginx 提权相似,MySQL 日志目录/var/log/mysql 权限为 mysql 。当以==mysqld_safe== 启动时。会执行脚本
1 | --------[ mysqld_safe ]-------- |
当利用CVE-2016-6663 获取到一个mysql user ,可以直接kill mysqld 从而触发脚本,两个漏洞结合可以从webshell 直接提升到Linux root 。
漏洞测试
环境: Ubuntu 15.04 Mysql 5.6.28
exploit:http://legalhackers.com/advisories/MySQL-Maria-Percona-RootPrivEsc-CVE-2016-6664-5617-Exploit.html
如图

漏洞修复
修改日志权限为 root 。
总结
可以在源码和脚本中找chmod 关键词发现类似的漏洞,利用符号链接和 so 共享库劫持提权也值得学习。
参考
- http://legalhackers.com/advisories/Nginx-Exploit-Deb-Root-PrivEsc-CVE-2016-1247.html
- http://legalhackers.com/advisories/MySQL-Maria-Percona-PrivEscRace-CVE-2016-6663-5616-Exploit.html
- http://legalhackers.com/advisories/Wget-Exploit-ACL-bypass-RaceCond-CVE-2016-7098.html
- http://xteam.baidu.com/?p=175