首页 -> 安全研究

安全研究

安全漏洞
多家厂商rpc.ypupdated远程可执行任意命令漏洞

发布日期:1995-12-19
更新日期:2008-03-24

受影响系统:
Multiple Vendor rpc.ypupdated
    - HP HP-UX 10.20
    - HP HP-UX 10.10
    - HP HP-UX 10.1
    - IBM AIX 4.1
    - IBM AIX 3.2
    - SGI IRIX 6.0.1XFS
    - SGI IRIX 6.0.1
    - SGI IRIX 6.0
    - SGI IRIX 5.3XFS
    - SGI IRIX 5.3
    - SGI IRIX 5.2
    - SGI IRIX 5.1.1
    - SGI IRIX 5.1
    - SGI IRIX 5.0.1
    - SGI IRIX 5.0
    - SGI IRIX 4.0.5IPR
    - SGI IRIX 4.0.5H
    - SGI IRIX 4.0.5G
    - SGI IRIX 4.0.5F
    - SGI IRIX 4.0.5E
    - SGI IRIX 4.0.5D
    - SGI IRIX 4.0.5A
    - SGI IRIX 4.0.5(IOP)
    - SGI IRIX 4.0.5
    - SGI IRIX 4.0.4T
    - SGI IRIX 4.0.4B
    - SGI IRIX 4.0.4
    - SGI IRIX 4.0.3
    - SGI IRIX 4.0.2
    - SGI IRIX 4.0.1T
    - SGI IRIX 4.0.1
    - SGI IRIX 4.0
    - SGI IRIX 3.3.3
    - SGI IRIX 3.3.2
    - SGI IRIX 3.3.1
    - SGI IRIX 3.3
    - SGI IRIX 3.2
    - Sun SunOS 4.1PSR_A
    - Sun SunOS 4.1.4-JL
    - Sun SunOS 4.1.4
    - Sun SunOS 4.1.3_U1
    - Sun SunOS 4.1.3c
    - Sun SunOS 4.1.3
    - Sun SunOS 4.1.2
    - Sun SunOS 4.1.1
    - Sun SunOS 4.1
描述:
BUGTRAQ  ID: 1749
CVE(CAN) ID: CVE-1999-0208

rpc.ypupdated RPC守护进程是Network Information Service (NIS)的一个组件,它使NIS客户端更新自己的NIS数据库。

rpc.ypupdated守护进程实现上存在输入验证漏洞,远程攻击者可能利用此漏洞以root用户的权限在主机上执行任意命令。

当守护进程收到一个Yello Pages的更新请求,它会调用Bource Shell执行'make'命令来重新计算数据库,由于没有对用户输入进行充分过滤和检查,远程攻击者可以在输入中插入某些Shell转义符来执行攻击者指定的命令。

<*来源:Josh D. (mcpheea@cadvision.com
  
  链接:http://secunia.com/advisories/29454/
        ftp://patches.sgi.com/support/free/security/advisories/19951201-01-P
        http://www.cert.org/advisories/CA-1995-17.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://www.milw0rm.com/sploits/2008-ypk2008.tar.gz

建议:
厂商补丁:

SGI
---
SGI已经为此发布了一个安全公告(19951201-01-P)以及修补建议:
19951201-01-P:Avalon Security Research - rpc.ypupdate slammer exploit CERT CA-95:17 rpc.ypupdated Vulnerability
链接:ftp://patches.sgi.com/support/free/security/advisories/19951201-01-P

修补建议:

1. 变成root用户

% /bin/su
Password:
#

2. 查看机器上是否运行了ypupdated服务,如果没有返回东西,则可能ypupdated处于关闭状态,但为了完全起见还是建议执行接下来的操作。

# rpcinfo -p localhost | grep ypupdate
100028        tcp    206  ypupdated
#

3. 编辑/usr/etc/inetd.conf (3.x and 4.x)或/etc/inetd.conf (5.0.x, 5.1.x, and 5.2),在有ypupdate那行前面加个"#"字符将其注释掉。

# vi  /usr/etc/inetd.conf

找到如下这行:

ypupdated/1 stream  rpc/tcp wait  root  /usr/etc/rpc.ypupdated  ypupdated

在其前面加"#":

#ypupdated/1 stream  rpc/tcp wait  root   /usr/etc/rpc.ypupdated  ypupdated

存盘退出。


4.重启inetd

# /etc/killall -HUP inetd


5. 验证ypupdate已经不再运行了

# rpcinfo -p localhost | grep ypupdate
#


6. 返回普通用户状态

# exit
$

浏览次数:7481
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障