Makery

J’ai pris une leçon de hack sur Bandit au PMClab

En prof de hack, Daniel Bourdrez, du PMClab de l'université Pierre et Marie Curie à Paris. © Robin Lambert

Un lieu: le PMClab, fablab de l’université Paris VI. Un personnage: l’étudiant en sécurité informatique et hacker Daniel Bourdrez. Un objectif: découvrir le piratage avec le serious games «Bandit». Accrochez-vous, c’est parti.

Le hack informatique est à la portée de tous. Voilà la leçon que veut faire passer le jeu sérieux Bandit, un wargames du site OverTheWire. Promesse en l’air ? Pour s’en assurer, Makery est allé voir du côté du PMClab, le fablab associatif de l’université Pierre et Marie Curie à Paris, où Daniel Bourdrez, 25 ans, hacker, étudie la sécurité informatique. Il décrypte pour Makery les premiers niveaux du jeu. 

Avant de jouer…

Sous Mac, ouvrir l’application Terminal dans le dossier Utilitaires ; sous Linux, Ctrl+Alt+T avec la plupart des distributions ; sous Windows, télécharger et installer Putty ou une machine virtuelle pour passer sous Linux ou Mac. Puis se rendre sur la page dédiée à Bandit sur OverTheWire pour suivre les instructions…

Le jeu peut commencer. Enfin presque…

Commencer par ne pas rester bloqué à Bandit0…

Avant d’entrer dans le jeu, on «joue» à se connecter au serveur (capture écran).

Ce « niveau » est en fait une étape préparatoire qui consiste à se connecter au serveur de jeu.

Sous PC, il suffit de démarrer Putty et d’entrer l’adresse bandit.labs.overthewire.org :

Si besoin, cocher la case SSH et préciser le port 22 dans la case de droite. 

Et si on passait au niveau 1? 

Une fenêtre s’ouvre qui demande le login (bandit0) et le mot de passe (bandit0 de nouveau) :

Rien ne s’affiche quand on tape le mot de passe, c’est normal : question de sécurité… (capture écran). 

Le but consiste à trouver le mot de passe qui débloque le niveau suivant, situé dans un fichier texte.

« Le site va te donner tout un tas de commandes pour t’aider. Il ne va pas te donner LA commande, sinon ça serait trop facile. Et comme ça, tu regardes chaque commande, ce qu’elle fait, à quoi elle sert… »   

Daniel Bourdrez 

La commande « ls » liste le contenu du dossier, et la moitié du niveau est déjà faite (capture écran).

L’astuce : double-cliquer sur le mot de passe pour le copier, puis faire un clic droit pour le coller.

Pour atteindre Bandit2, jouer avec les noms de fichier

Le mot de passe pour le niveau suivant se trouve dans un fichier appelé « -« . Or, ce caractère est habituellement réservé pour ce que l’on appelle une « entrée standard ». Le bon apprenti hacker précisera donc à son ordinateur qu’il veut ouvrir un fichier qui s’appelle « -« , et non pas faire une entrée standard. Subtil…

La commande « ls » fonctionne, mais la commande « cat – » bloque le terminal (capture écran). 

Astuce : si le terminal semble bloqué, tapez Ctrl+C pour recommencer à entrer des commandes.

Pour Bandit3, jouer avec les espaces

Mince alors, des espaces dans le nom du fichier à ouvrir ! Il faut utiliser une petite technique… mais laquelle ? 

Comme au niveau précédent, il suffit d’une astuce pour obtenir le mot de passe (capture écran). 

Pour Bandit4, passer aux fichiers cachés

Pour accéder au prochain niveau, il faut ouvrir un fichier… caché ! Ici, nul besoin de nouvelles commandes à proprement parler, mais Daniel Bourdrez conseille de consulter le manuel de « ls »… 

Aucun fichier dans le dossier inhere ? (capture écran).

Pour Bandit5, ne pas «traumatiser le shell»…

Un dossier qui contient dix fichiers… oui mais lequel contient le mot de passe ? On peut toujours les ouvrir un à un, mais « tous sauf un contiennent des données brutes qui traumatiseront le shell », l’interface utilisateur du système d’exploitation. Pour faire les choses proprement, il faut trouver le seul fichier qui contient du texte, avec une commande qui n’a pas encore servi.

Dans un explorateur de fichier, comment faire pour trouver un type particulier de fichier ? (capture écran). 

Au niveau 25 (difficile), opter pour la méthode «brute force» 

Attention : niveau difficile. Certes, un démon (petit programme) peut fournir le code pour passer de Bandit24 à Bandit25. Mais on ne l’active qu’en échange du code pour le niveau 24 (obtenu en franchissant le niveau 23…), auquel il faut adjoindre un PIN (code à quatre chiffres).

Sans aucune indication, le seul moyen est d’essayer toutes les possibilités : c’est la méthode brute force. Heureusement, en informatique, on n’a pas à faire ce genre de choses à la main, on peut écrire un petit programme, un script, qui le fait pour nous et qui va essayer le PIN 0000, 0001, 0002… jusqu’à trouver le bon.

La solution pour ce niveau se trouve à cette adresse (attention spoiler).

Hors «Bandit», d’autres saluts

Côté français, le site root.me possède près de 200 challenges pour codeurs plus confirmés, et propose comme OverTheWire un classement par défi et par utilisateur. Sinon, il est toujours possible de contacter le hackerspace le plus proche de chez vous pour organiser des sessions avec ces jeux de hack.