Niveau 6
Level Goal
There is no information for this level, intentionally.
Une fois loggué en tant que leviathan6
, on trouve un fichier exécutable leviathan6
dans le répertoire home. Si on l'exécute on a :
leviathan6@leviathan:~$ ./leviathan6
usage: ./leviathan6 <4 digit code>
Le programme nous demande d'indiquer un code à 4 chiffres. Si l'on essaye un code au hasard on obtient le résultat suivant :
leviathan6@leviathan:~$ ./leviathan6 1234
Wrong
Il y a 2 manière de résoudre cette épreuve :
- utiliser une attaque par force-brute en testant toutes les combinaisons possibles (10^4)
- utiliser gdb pour trouver le code attendu par le programme
Partons sur une attatque par force-brute qui prend la forme suivante :
for i in {0000..9999}; do ./leviathan6 "$i" | grep -v "Wrong"; done
Cette attaque peut être décomposée comme suit :
- on liste tout les nombres de
0000
à9999
- on lance le programme
leviathan6
avec chacun des nombres en paramètre - on utilise
grep
pour n'afficher que les résultats qui ne contiennent pas le motWrong
(retourné par le programme si l'on indique le mauvais mot de passe)
Une fois exécutée et au bout de quelques minutes on gagne un accès à un shell nous permettant de récupérer le mot de passe :
$ whoami
leviathan7
$ cat /etc/leviathan_pass/leviathan7
ahy7MaeBo9