Niveau 3

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