Estoy aprendiendo sobre explotación, y descargué algunos shellcode execve ("/ bin / sh") de exploit-db para usarlo en un ejemplo simple de desbordamiento de búfer. Cuando ejecuto el programa me sale un error de segmentación. Estoy ejecutando esto en kali linux en vmware.
Aquí está el código:
#include<stdio.h>
#include<string.h>
const char sc[] = \
"\x01\x30\x8f\xe2\x13\xff\x2f\xe1"
"\x03\xa0\x52\x40\xc2\x71\x05\xb4"
"\x69\x46\x0b\x27\x01\xdf\x7f\x40"
"\x2f\x62\x69\x6e\x2f\x73\x68\x41";
void main()
{
printf("Shellcode Length: %d\n", strlen(sc));
((void(*)(void))sc)();
}
Así es como se compila:
gcc -z execstack -fno-stack-protector shell.c -o shell
- ¿Puede ser causado por ejecutarlo en vmware?
- ¿Es posible que haya algún problema con Shellcode pero obtengo SIGSEGV en lugar de SIGILL?
- ¿Hay algún error en la forma en que ejecuto el código en este programa C?