Shell no siempre aumenta los privilegios en narnia

1

Estoy pasando por varios juegos de guerra de overthewire y tengo una pregunta sobre narnia0. El código en c contiene

if(val==0xdeadbeef)
system("/bin/sh");
else {
printf("WAY OFF!!!!\n");

Lo hice funcionar con el desbordamiento de búfer simple, pero quería intentar usar gdb para encontrar otras formas de explotarlo. Desarmé main, luego establecí un punto de interrupción después de cmpl y antes de jne. Luego cambié el código de máquina de 0x75 a 0x74. Cuando continué, se corrió

system("/bin/sh");

pero cuando ejecuté la identificación todavía estaba solo en el grupo de usuarios narnia0, mientras que si hacía el desbordamiento del búfer estaba en el grupo narnia1. ¿Es imposible escalar privilegios como gdb, y hay alguna solución para escalar privilegios en un entorno donde puede cambiar el código de máquina / variables?

    
pregunta user3364161 01.06.2017 - 00:50
fuente

1 respuesta

2

Parece que esto se debe a que el programa se ejecuta con la cuenta de usuario actualmente registrada en (narnia0) cuando lo ejecuta con gdb en comparación con el programa que se ejecuta con la cuenta de usuario narnia1 cuando se ejecuta el programa.

Esto puede investigarse más a fondo mirando los permisos en el archivo de programa. (Use 'ls -al' para ver los permisos del archivo.

Busque aquí cómo funcionan los permisos de archivo: enlace

    
respondido por el SecretSasquatch 01.06.2017 - 01:33
fuente

Lea otras preguntas en las etiquetas