J'ai joué ce jeu de compétences linux gratuits et j'ai appris 6 nouvelles commandes
Je suis un grand fan de l'apprentissage gamifié. Cela m'a amené à essayer un jeu d'apprentissage Linux populaire: Overthewire. Ce qui a commencé comme une curiosité rapide s'est transformée en heures de résolution de puzzle, de magie terminale et du genre de «aha!» Les moments vous n'obtenez que lorsque vous ne trouvez quelque chose pour de vrai.
Sommaire
Pourquoi j'aime tellement trop
Overthewire est une collection de jeux de guerre. Les jeux de guerre sont essentiellement des défis de style CTF où vous devez effectuer une tâche particulière pour obtenir un jeton spécial comme preuve que vous avez effacé ce niveau. Dans le contexte de Overthewire Bandit, dont je vais principalement parler, vous devez rechercher et trouver un mot de passe secret pour passer au niveau suivant.
J'ai exploré de nombreux jeux qui enseignent Linux jusqu'à présent. Mais Overthewire se démarque vraiment en raison de la mise en place de son environnement et de la façon dont il remet en question vos connaissances dans de vrais défis basés sur les scénarios. Vous êtes tombé dans de vrais systèmes Linux à explorer. Que vous soyez nouveau sur Linux ou un utilisateur intermédiaire, il y a quelque chose pour vous dans le jeu.
Les niveaux sont conçus pour augmenter en douceur en difficulté. Une chose que j'admire est qu'un niveau particulier peut également nécessiter des commandes et des techniques à partir des niveaux précédents. Cela vous aide à conserver votre apprentissage plus longtemps et à le solidifier.
Ce que j'aime le plus dans Overthewire, c'est comment il vous traite comme un apprenant capable. Il n'essaie pas de vous transformer en robot qui mémorise les commandes et les techniques. Au contraire, cela vous aide à devenir quelqu'un qui peut enquêter, résoudre des problèmes et raison à travers un territoire inconnu. Ce sont des compétences qui vont au-delà du terminal et apparaissent partout dans la technologie.
Il vous apprend la compétence Linux la plus importante
S'il y a une chose que Overthewire enseigne mieux que n'importe quel tutoriel ou vidéo YouTube, c'est apprendre à comprendre les choses par vous-même.
Lorsque vous jouez à Bandit, le jeu ne vous tient pas la main. On vous dit quel est votre objectif, et vous pourriez obtenir un indice ou deux sur les commandes pourraient aider. Mais c'est tout. Il n'y a pas de procédure pas à pas intégrée dans le niveau, aucune infraction à petit expliquant le fonctionnement de la commande XYZ, et certainement pas de pop-up vous montrant la syntaxe exacte à utiliser. Vous devez aller le chercher. Vous devez essayer, échouer, modifier votre approche et réessayer. Et c'est exactement ce qui le rend si bon.
Pour moi, c'est la compétence Linux essentielle. Être d'accord pour ne pas savoir quelque chose, puis le comprendre en recherchant, en lisant les pages et en expérimentant. C'est le genre de compétence qui sépare quelqu'un qui copie simplement Stack Overflow Commandes de quelqu'un qui comprend ce qu'il fait réellement.
Vous apprenez plus que des commandes Linux
Overthewire ne concerne pas seulement les commandes Linux. Même si Bandit est techniquement à ce sujet, la vérité est que vous finissez par apprendre bien plus qu'une simple syntaxe.
En rapport
15 Commandes inutiles Linux que tout le monde a besoin de savoir
Tout vrai Linux Pro devrait connaître ces 15 commandes inutiles!
Par exemple, vous êtes exposé à des choses comme les autorisations de fichiers, les protocoles de réseau, la technologie Internet et l'encodage de texte. J'ai dû décoder des chaînes hexagonales, jeter un œil à l'intérieur de fichiers binaires étranges, me connecter aux ports obscurs et comprendre comment le système de fichiers Linux est structuré à un niveau plus profond.
Une fois que vous avez terminé Bandit, Overthewire s'ouvre encore plus. Le Léviathan entre dans l'escalade des privilèges. Il y a Narnia, qui plonge dans l'exploitation de la mémoire et les débordements de tampon. Krypton se concentre sur les bases de la cryptographie. Le labyrinthe contient des défis de l'ingénierie et de l'exploitation inverse. Chaque Wargame s'appuie sur un aspect différent de la sécurité, de la programmation ou d'autres concepts informatiques.
Commandes que j'ai apprises
Maintenant, je ne dirais pas que Overthewire était le tout premier endroit où j'ai vu ces commandes, mais c'était la première fois depuis un moment que je devais les utiliser avec un but. Certains que j'avais partiellement oubliés comment utiliser, d'autres que je n'avais utilisés qu'avec une syntaxe à copie et une vague idée de ce qui se passait. Jouer à Bandit m'a forcé à ralentir et à apprendre ce que chaque commande fait vraiment, et comment les utiliser de manière plus intelligente et plus intentionnelle. En voici six qui se sont démarqués.
En rapport
11 commandes Linux négligées que vous devriez vraiment utiliser
Ces commandes pourraient améliorer considérablement votre flux de travail!
ssh
SSH signifie Secure Shell. C'est le moyen standard de se connecter à distance au terminal d'une autre machine, en particulier sur Internet. C'est comme téléporter votre session de ligne de commande sur un autre ordinateur, en toute sécurité et avec cryptage, afin que vos données et votre mot de passe ne soient pas exposés pendant le transit. Voici la syntaxe la plus basique de la commande SSH:
ssh username@hostname
SSH est la première commande que vous utiliseriez dans Overthewire Bandit. En fait, vous devez même l'utiliser pour commencer, car vous devez vous connecter à leur serveur pour jouer au jeu. Vous devez l'utiliser à tous les niveaux, donc cela devient votre deuxième nature. Voici comment:
ssh bandit0@bandit.labs.overthewire.org -p 2220
Ici, vous vous connectez au serveur bandit.labs.overthewire.org en tant qu'utilisateur Bandit0 sur le port 2220. Une fois connecté, vous obtenez un shell sur cette machine distante et accédez au système.
trouver
Find est un outil de ligne de commande pour rechercher dans les répertoires et localiser des fichiers qui correspondent aux critères spécifiques tels que le nom, la taille, les autorisations, le temps de modification, etc. C'est un peu comme la version Linux d'une fonction de recherche, mais beaucoup plus puissante. La syntaxe de base:
find (path) (options)
Par exemple, disons que vous souhaitez rechercher un fichier nommé «mot de passe.txt». Voici la commande à ce sujet:
find . -name "password.txt"
Cela indique à la recherche de regarder dans le répertoire actuel (.) Et toutes ses sous-répertoires pour un fichier nommé exactement Password.txt. Dans l'un des premiers niveaux de Bandit, vous avez dû rechercher un fichier lisible par l'homme, 1033 octets et non exécutable. La commande Find était adaptée à ce scénario.
find dir_name -type f -size 1033c ! -executable
Cela recherche des fichiers dans le répertoire particulier qui sont exactement 1033 octets (C représente les octets) et exclut les fichiers non exécutables.
trier
L'utilitaire de ligne de commande de tri organise des lignes de texte dans un ordre spécifique. Il peut être alphabétique, numérique ou sur la base d'autres règles que vous définissez. C'est trompeusement simple, mais lorsqu'il est combiné avec d'autres outils comme UNIQ, Cut ou AWK, il devient une puissance pour le traitement des données de texte. La syntaxe de base est la suivante:
sort (options) (filename)
Par exemple:
sort file.txt
Cela triera alphabétiquement les lignes dans file.txt et les imprimera à votre terminal. Dans l'un des niveaux, vous rencontrez un fichier contenant de nombreux mots de passe. Pour trouver le bon rapidement, vous avez dû trier le fichier par ordre alphabétique et filtrer les valeurs uniques. La commande de tri était utile pour cela:
sort data.txt | uniq -u
Étant donné que UNIQ ne fonctionne que sur des lignes en double consécutives, nous devions d'abord le trier. Maintenant, il ne sortira que des lignes qui apparaissent exactement une fois.
xxd
La commande xxd crée un vidage hexagonal d'un fichier ou convertit un vidage hexagonal en sa forme binaire d'origine. C'est un peu un utilitaire de niche, mais extrêmement utile lorsque vous avez affaire à des données cachées, à des fichiers encodés ou à essayer d'inspecter le contenu brut de quelque chose. Dans la forme la plus élémentaire, vous y transmettez un nom de fichier.
xxd (filename)
Donc, si vous avez un fichier secret.txt:
xxd secret.txt
Cela sortira le contenu de Secret.txt en hexadécimal le long de la représentation ASCII. Vous pouvez également transmettre le drapeau -r pour convertir un vidage hexagonal en un fichier binaire. À un certain niveau, on vous donne le vidage hexadécimal d'un fichier binaire. En utilisant XXD, vous devez le transformer en fichier zip.
xxd -r data.txt data
Cela convertit le fichier texte en fichier binaire, à condition que le vidage hexagonal soit dans le bon format.
cordes
Strings est un outil de ligne de commande qui extrait le texte imprimable des fichiers binaires. Si vous ouvrez jamais un fichier d'aspect étrange et voyez un mur de charabia, les cordes aident à retirer les bits lisibles comme les mots de passe, les indices ou les messages cachés. Il est particulièrement utile lorsqu'un fichier n'est pas techniquement un fichier texte, mais contient toujours du texte lisible quelque part à l'intérieur.
strings secret_file
Cela parcourera Secret_file et imprimera toutes les séquences de caractères imprimables qu'il trouve. Dans l'un des niveaux, il y a un fichier qui contient du texte lisible par l'homme caché parmi un gros morceau de charabia. Pour filtrer le texte réel, vous devez utiliser la commande Strings sur ce fichier.
Caroline du Nord
NC, abréviation de NetCAT, est un utilitaire de mise en réseau polyvalent qui peut lire et écrire des données sur les connexions réseau à l'aide de TCP ou UDP. Il est souvent appelé le « couteau suisse de l'armée » des outils de réseautage car il peut faire tant de choses, comme la configuration d'un serveur simple, le débogage des ports ou la lecture de données à partir d'une prise.
nc host_ip port_number
Cela relie votre machine au port 1234 sur localhost, vous permettant d'envoyer et de recevoir des textes ou des données brutes. À un niveau, il vous est demandé de soumettre un mot de passe au port 30000 de LocalHost. Vous pouvez accomplir cela en utilisant la commande NC.
nc localhost 30000
(Prompt to enter password)
Cela soumet votre mot de passe ou toute autre donnée au port choisi du nom d'hôte choisi.
Ma façon recommandée de jouer à Overthewire
Tout le monde n'apprend pas de la même manière. Et c'est bien. Si quelqu'un est absolument nouveau pour Linux, il peut trouver un peu plus difficile au début. Cependant, il existe un moyen de le rendre un peu plus facile. Cela vous aidera également à tirer le meilleur parti de ce jeu.
Chaque niveau a une liste de commandes et certains concepts de base que vous devrez peut-être effacer pour passer ce niveau. Mon conseil pour vous n'est pas de précipiter le niveau juste pour le terminer. Au lieu de cela, prenez votre temps pour lire chaque concept pour le comprendre correctement. Les niveaux relient déjà les ressources. Si vous avez encore des doutes, faites des recherches supplémentaires.
Il en va de même pour les commandes Linux. Lisez les pages de l'homme pour comprendre chaque commande et expérimentez avec eux pour comprendre leur comportement. Après cela, sautez au premier niveau et commencez votre voyage à partir de là.
Que vous soyez nouveau à Linux ou que vous l'aimiez déjà, vous devriez certainement consulter Overthewire. Peu importe vos compétences, vous apprendrez certainement quelque chose de nouveau aussi. Il y a tellement d'autres grandes ressources pour apprendre à explorer Linux.
