首页
社区
课程
招聘
FUSE CVE-2015-3202本地root权限提升漏洞修复建议
发表于: 2015-5-28 19:04 2687

FUSE CVE-2015-3202本地root权限提升漏洞修复建议

2015-5-28 19:04
2687
新闻链接:ef8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6e0l9#2x3e0p5J5i4K6u0W2j5$3!0E0i4K6u0r3P5X3W2^5N6h3&6Q4x3V1k6Z5K9$3c8@1i4K6u0r3x3U0l9I4y4g2)9J5c8U0l9#2x3U0S2Q4x3V1j5J5y4o6t1I4y4#2)9J5k6h3S2@1L8h3H3`.
新闻时间:2015-05-28 18:10
新闻正文:
六一即将到来,ubuntu和debian确因为fusermount二进制调用变量不严谨导致曝出高危本地root权限提升漏洞.
 
该漏洞的产生原因是由于fusermount二进制调用setuid的(geteuid())重置RUID时,它调用/bin/mount才能使用的特权挂载选项, 通常限制如果RUID!= euid;这居然可以接受传递的参数,太可怕了.
 
在理论上,因为fusermount可以消除参数以确保它的安全。
 
正如代码中:
http://bbs.pediy.com/attachment.php?attachmentid=98198&stc=1&d=1432810759
然而,由于它认为这是被root用户权限调用,它允许通过环境变量进入调试模式,不会管是否为安全的非特权用户和fusermount没有清除的。
 
因此,错误是环境变量不清除时调用RUID = 0方式。
 
可以通调试功能在/etc/mtab里设定LIBMOUNT_MTAB变量后,就可以
 
被滥用覆盖任意文件。
 
这次红帽子比较有出息,公开说明企业版是不受影响的.RHEL7中/etc/mtab不是一个普通的文件,而是链接到/proc/self/mtab下的,可以防止fusermount运行挂载和卸载(见mtab_needs_update()功能)。即使使用libmount支持调用libmount_mtab环境变量可以挂载的,它也不是由fusermount控制的,是使用类似于目前的Fedora版本。
 
而在RHEL5和6版本中,/etc/mtab 是一个正常文件,因此fusermount可以运行挂载和卸载命令。然而,在RHEL 6和更早系统版本中挂载和卸载不使用libmount(在RHEL 6,libmount是UTIL-linux的-NG包的一部分,但不是使用mount和umount命令;在RHEL5中,使用util-linux的包是不包含libmount库)。
 
而且RHEL 7虚拟机管理程序包含libguestfs-winsupport包,其中包括NTFS-3G。但是,NTFS-3G是不是安装为setuid root的,所以不存在权限提升的风险。。
 
0x02 影响版本范围
 
Ubuntu Ubuntu Linux 12.04 LTS i386
Ubuntu Ubuntu Linux 12.04 LTS amd64
Miklos Szeredi FUSE 2.4.1
Miklos Szeredi FUSE 2.2.1
+ Debian Linux 3.1 sparc
+ Debian Linux 3.1 s/390
+ Debian Linux 3.1 ppc
+ Debian Linux 3.1 mipsel
+ Debian Linux 3.1 mips
+ Debian Linux 3.1 m68k
+ Debian Linux 3.1 ia-64
+ Debian Linux 3.1 ia-32
+ Debian Linux 3.1 hppa
+ Debian Linux 3.1 arm
+ Debian Linux 3.1 amd64
+ Debian Linux 3.1 alpha
+ Debian Linux 3.1
Miklos Szeredi FUSE 2.2
Debian Linux 6.0 sparc
Debian Linux 6.0 s/390
Debian Linux 6.0 powerpc
Debian Linux 6.0 mips
Debian Linux 6.0 ia-64
Debian Linux 6.0 ia-32
Debian Linux 6.0 arm
Debian Linux 6.0 amd64
 
0x03 攻击POC演示
 
先以普通用户登录(没有sudo权限的)
http://bbs.pediy.com/attachment.php?ttachmentid=98199&stc=1&d=1432810845
执行攻击POC
 
#给/bin/dash加上s权限(当我们将一个程序文件执行成为进程的时候,该程序文件的拥有者(owner)和拥有组(owner group)可以被存储成为进程的存储身份。在随后进程的运行过程中,进程就将可以选择将真实身份或者存储身份复制到有效身份,以拥有真实身份或者存储身份的权限)
 
#通过设置LIBMOUNT_MTAB,mtab可以覆盖任意文件用来设置exp。
http://bbs.pediy.com/attachment.php?ttachmentid=98200&stc=1&d=1432810949
看到红色提示框内容标识修改成功,在看下/etc/bash.bashrc内容是否已经被替换成提权文件
 
想真正提权还是比较鸡肋的,需要su – root或是ssh登录 root一次,才可以真正提权成功(貌似这需要社工了?)
 
换个管理员账号su –到root去.
 http://bbs.pediy.com/attachment.php?ttachmentid=98201&stc=1&d=1432810949
再切换到demo用户去执行/bin/dash看是否获得root权限了
http://bbs.pediy.com/attachment.php?ttachmentid=98202&stc=1&d=1432810949
如此root提权成功,可以自由畅游了.
 
0x04修复方案
 
Debian, Ubuntu等系列衍生版本:
 
OpenSuSE使用下面的命令:
 
0x06 参考来源
 
b06K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4y4@1i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2j5$3!0E0i4K6u0r3N6r3q4$3K9i4y4G2i4K6u0r3k6h3y4T1y4K6m8W2j5U0p5J5k6o6b7$3x3h3c8V1z5o6g2U0j5X3p5`.
162K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2K6N6i4y4W2i4K6u0W2j5$3!0E0i4K6u0r3M7$3g2U0N6i4u0A6N6s2W2Q4x3V1k6U0N6X3g2Q4x3V1k6o6g2V1g2Q4x3X3b7J5x3o6p5#2i4K6u0V1x3K6t1H3x3W2)9J5k6h3S2@1L8h3H3`.
7c2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6s2c8J5j5h3y4C8k6i4u0Q4x3X3g2V1k6h3u0A6j5h3&6Q4x3X3g2G2M7X3N6Q4x3V1k6@1M7X3q4U0K9$3g2J5i4K6u0r3b7#2k6q4i4K6u0V1x3U0l9I4y4g2)9J5k6o6x3J5x3o6t1`.
e2eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2j5$3y4W2M7%4y4Q4x3X3g2J5k6h3c8Z5j5i4c8Q4x3X3g2U0L8$3#2Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5c8X3y4$3k6g2)9J5c8V1y4h3c8g2)9J5k6o6t1H3x3e0g2Q4x3X3b7K6x3U0l9J5
0ebK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4g2T1N6h3&6@1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4g2K6L8W2)9J5c8Y4g2K6L8W2)9J5k6o6t1$3x3e0N6Q4x3X3b7J5i4K6u0r3

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回