mardi 16 juin 2015

Challenge, ivresse des profondeurs et Leviathan

Après le challenge Bandit (http://jessgallante.blogspot.fr/2015/06/le-gout-du-challenge-ou-ma-rencontre.html) pour les débutantes et débutants proposé par OverTheWire sont proposés trois autres challenges : Leviathan (orienté système), Natas (orienté web) et Krypton (orienté cryptographie).

Ayant une légère préférence pour l'un de ces trois wargames pour la simple et magnifique raison suivante :
..
J’ai vu fermenter les marais énormes, nasses
Où pourrit dans les joncs tout un Léviathan,
Des écroulements d’eaux au milieu des bonaces,
Et les lointains vers les gouffres cataractant !
..
Le Bateau ivre, Arthur Rimbaud, 1871
.. je m'attaque à ce challenge Leviathan qui présente un niveau de difficulté de 1 sur 10 pour 8 niveaux et je constate immédiatement (contrairement au challenge Bandit) qu'aucune information n'est fournie par OverTheWire pour passer d'un niveau à un autre hors le message "Data for the levels can be found in the homedirectories."

Très bien, je commence donc en me connectant en SSH avec le login et le mot de passe fourni par OverTheWire et constate après avoir passé le niveau 0 sans difficulté que je dois comprendre ce que fait un fichier binaire afin de saisir un mot de passe permettant d'obtenir le mot de passe du niveau 2.


Je suis saisie d'une légère appréhension car je ne connais que quelques commandes Unix/Linux à ce sujet et suis parfaitement incapable de décompiler un programme. Je me lance tout de même dans ce challenge et vogue le bateau..

Ma traversée des marais (sans spoiler, juste des conseils)


Si vous avez comme moi d'abord réalisé le challenge Bandit, le niveau 0 et le passage au niveau 1 ne devrait pas vous poser de problème.

Avec le niveau 1 commence l'intérêt propre de ce challenge. Les commandes dont vous devriez lire les manuels pour tous les niveaux du challenge Leviathan sont les commandes système "strace" et "ltrace".

Le niveau 2 est similaire au niveau 1 mais nécessite que vous prêtiez attention à la façon dont le nom de fichier que nous passons en paramètre est employé. Une fois la "vulnérabilité" identifiée, son exploitation est tout à fait similaire à ce que nous pouvons rencontrer dans le monde du web en lfi/rfi.

Le niveau 3 semble pour moi strictement identique au niveau 1 .. J'ai donc du passer à côté d'une subtilité ..

Le niveau 4 m'a posé quelques problèmes. La sortie générée par le binaire cible ressemble à un mot de passe mais transformer cette représentation pour obtenir le mot de passe au bon format (et sans papier/crayon bien entendu) m'a posé quelques problèmes jusqu'à ce que je trouve un article avec des exemples d'utilisation de la commande "bc".

Le niveau 5 m'a également fait louvoyer un certain temp avant de trouver une solution et mon seul conseil est que vous devriez tester la condition avec un fichier de test vide et avec un fichier de test non vide!

Le niveau 6 m'a semblé totalement trivial vu que le niveau 24 du challenge bandit lui ressemble comme deux gouttes d'eau :-)

Contrairement au challenge Bandit, le septième et dernier niveau du challenge Leviathan est actif en SSH et vous remercie d'avoir mené le bateau à bon port (un peu plus d'une heure comme pour le challenge bandit).


Conclusion

 

Tous les niveaux de ce challenge ont pour moi présenté un véritable intérêt dont, non des moindres, celui de me démontrer par la pratique que de nombreuses commandes système (exemple: strings, strace et ltrace) présentent un véritable intérêt et ce même pour les débutantes et débutants en programmation qui ne sont pas formées/formés en "rétro-conception".

Jess - @JessicaGallante

Aucun commentaire:

Enregistrer un commentaire

Votre avis ?