Niveau 3
Level Goal
There is no information for this level, intentionally.
Une fois connecté en tant que leviathan3
si on liste le contenu du répertoire home on trouve un programme level3
. Si on l'exécute on a le résultat suivant :
leviathan3@leviathan:~$ ./level3
Enter the password> a
bzzzzzzzzap. WRONG
Plutôt que gdb
utilisons ltrace
pour suivre les différentes fonctions appelées lors de l'exécution :
leviathan3@leviathan:~$ ltrace ./level3
__libc_start_main(0x8048618, 1, 0xffffd774, 0x80486d0 <unfinished ...>
strcmp("h0no33", "kakaka") = -1
printf("Enter the password> ") = 20
fgets(Enter the password> a
"a\n", 256, 0xf7fc55a0) = 0xffffd580
strcmp("a\n", "snlprintf\n") = -1
puts("bzzzzzzzzap. WRONG"bzzzzzzzzap. WRONG
) = 19
+++ exited (status 0) +++
Si l'on regarde la fonction strcmp
on peut noter que l'on compare la variable entrée par l'utilisateur avec la chaine de caractères snlprintf
, qui est donc le mot de passe attendu.
Si on entre ce mot de passe en exécutant le programme on obtient l'accès à un shell qui nous permet de lire le mot de passe du prochain niveau.
leviathan3@leviathan:~$ ./level3
Enter the password> snlprintf
[You've got shell]!
$ cat /etc/leviathan_pass/leviathan4
vuH0coox6m