elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Bugs y Exploits / Re: Mi EIP no se machaca con AAAA's en: 30 Noviembre 2014, 18:46 pm
Gracias a todos por las respuestas,
el binario fue compilado con -fno-stack-protector y -z execstack. A la vez el fichero /proc/sys/kernel/randomize_va_space fue sobreescrito con valor 0.

Sin embargo, aún así, debe existir alguna medida de protección adicional que me impide sobreescribir el EIP. He probado con un Kali 1.0.9 de 64 bit y tampoco soy capaz. Sin embargo he probado un Ubuntu 12.04 (32 bits) y consigo el resultado esperado de sobreescribir con AAAAA's el EIP.

De paso sin embargo he comprendido que la diferencia de tener una dirección de memoria el doble de larga (16 caraceteres hexadecimales) se debe a que el sistema sea 64 bit. 16 caracteres hex x 8 bytes= 64 bits.

no obstante me gustaría saber qué demonios protege la sobreescritura del EIP en el Ubuntu 14.04 o el Kali 1.0.9. ¿Puede tener que ver que ambos sean 64 bit?
2  Seguridad Informática / Bugs y Exploits / Mi EIP no se machaca con AAAA's en: 29 Noviembre 2014, 12:41 pm
Buenas a todos,

tengo un script muy simple para practicar y pronto me surgen dudas  :huh::

Código
  1. #include <string.h>
  2. #include <stdio.h>
  3. void func(char *arg)
  4. {
  5. char nombre[32];
  6. strcpy(nombre, arg);
  7. printf("\nHas introducido: %s\n\n", nombre);
  8. }
  9. int main(int argc, char *argv[])
  10. {
  11. func(argv[1]);
  12. printf("Fin del programa\n\n");
  13. return 0;
  14. }

y ejecutándolo con GDB para ver cuándo sobreescribo el EIP:

(gdb) run AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWXXXXYYYYZZZZ

Starting program: /home/basuri/prueba AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWXXXXYYYYZZZZ

Bienvenido a Linux Exploiting AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWXXXXYYYYZZZZ

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400643 in func ()
(gdb)



Según la práctica, debería obtener una respuesta del tipo:

0x4c4c4c4c in func ()


Y no entiendo por qué me devuelve ese valor de memoria o por qué es tan largo.

Estoy practicando en un Ubuntu 14.04 64 bit sobre un Mac OS X 64 bit.

Estaría muy agradecido si alguien me echa una mano.

Saludos a todos.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines