Sun Solaris sadmind远程执行命令漏洞
Sun Solaris sadmind远程执行命令漏洞
发布日期:2003-09-17
CVE CAN ID:CAN-2003-0722
受影响的软件及系统:
====================
* Sun Solaris 9.0
* Sun Solaris 8.0
* Sun Solaris 7.0
* Sun Solaris 2.6
* Sun Solaris 2.5.1
综述:
======
Sun Solaris samind守护程序中含有一个安全漏洞,可允许远程攻击者以root身份执行任意代码。
目前我们已经得知有一个针对此漏洞的攻击代码在流传,我们强烈建议用户立刻检查一下您的系统是否受此漏洞影响,并按照我们提供的解决方法予以解决。
分析:
======
sadmind是Solaris所带的一个守护程序,Solstice AdminSuite应用程序通过它来执行分布式的系统管理操作。
它有三个安全等级用来判断客户端是否有权在服务器上执行某个操作。如果安全等级为0,则将所有客户端的用户和组标识设置为nobody, 然后判断是否nobody用户或组有权限访问某个操作,这仅用于测试目的。第二个等级是1,这时将认证类型设为WEAK(弱),客户端的用户/组标识会根据用户提供的认证信息进行设置,客户端可以使用AUTH_SYS或者AUTH_DES认证机制发送认证信息。缺省sadmind使用这一安全等级。第三个等级是2,认证类型为STRONG, 必须使用AUTH_DES认证。
在使用弱认证时,由于AUTH_SYS非常容易伪造用户身份,所以sadmind的man手册中建议只有在真正安全的环境中才使用此安全等级。这时,通过发送AUTH_SYS认证请求,用户可以伪装成服务器上的root用户发送请求,从而以root身分执行任意命令。
测试方法:
==========
您可以检查您的系统是否正在使用Sadmind,以一台Solaris 8系统为例:
$ grep sadmind /etc/inet/inetd.conf
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind
$ rpcinfo -p
program vers proto port service
...
100232 10 udp 32773 sadmind
...
如果您的系统中发现类似上面的输出内容,就说明您的系统上正在使用sadmind,您的系统可能受此漏洞影响。
解决方法:
==========
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 禁止'sadmind'服务或者将其安全等级提高到2。以Solaris 8系统为例:
1. 转变成root用户
$ su -
#
2. 杀掉正在运行的sadmind进程
# ps -ef|grep sadmind|grep -v grep
# kill -9 <sadmind's pid>
3. 编辑/etc/inetd.conf
注释掉包含sadmind的行
#100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind
或者将samind的安全等级设为2:
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind -S 2
4. 然后重新启动inetd
# kill -HUP <inetd's pid>
其他操作系统可以参考上述步骤。
* 在防火墙上过滤对RPC portmap端口(TCP/UDP 111)以及sadmind服务监听端口的
访问。注意这种方式并不能防止网络内部对主机的攻击。
厂商状态:
==========
Sun目前还没有提供补丁下载。但提供了一个安全公告描述此安全问题:
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F56740
附加信息:
==========
参考链接:
http://www.nsfocus.com/index.php?act=sec_bug&do=view&bug_id=5404
http://www.idefense.com/advisory/09.16.03.txt
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F56740