He realizado un experimento de desbordamiento de búfer en una máquina virtual Ubuntu 16.04 ( Linux ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
) y obtuve un error sorprendente después de ejecutar el código de shell. El código de shell se copia de esto tutorial y es específicamente "\x48\x31\xf6\x48\x31\xd2\x48\xbb\x2f\x62\x69\x6e\x2f\x73\x68\x11\x48\xc1\xe3\x08\x48\xc1\xeb\x08\x53\x48\xc7\xc0\x3b\x11\x11\x11\x48\x89\xe7\x48\xc1\xe0\x38\x48\xc1\xe8\x38\x0f\x05"
. En edb , veo que RIP
salta al código de shell y lo ejecuta, como se muestra a continuación:
edb que muestra el código de shell ejecutado
Después del comando syscall
que se supone que execve
shell, sin embargo, parece caer en un agujero negro. Edb comienza a borrarse, como se muestra a continuación:
edb se queda en blanco después de syscall
, y cuando paso por el depurador "en la oscuridad", su ventana de línea de comandos comienza a mostrar los siguientes errores:
errores en la ventana de edb cli
¿Se pregunta si alguien ha visto esto antes y sabe cómo solucionarlo?