Des secrets dans un exécutable
Une entreprise t'a remis un programme compilé, le coffre-fort, et jure que personne ne peut en lire les secrets. Prouve qu'elle se trompe : extrais le code de service resté dans le fichier.
Laboratoire 4 sur 6 du parcours Encodages et secrets. Si tu bloques, tu as 3 indices, du plus vague au plus précis : ils coûtent 0, 40 et 120 XP.
Ce que tu apprends
Les objectifs se valident tout seuls pendant que tu travailles dans le terminal ; chacun rapporte des points d’expérience :
- Lire le README (50 XP)
- Demander à file ce qu'est cassaforte (100 XP)
- Extraire le texte lisible avec strings (150 XP)
Thèmes : codici, strings, binari.
Les commandes que tu utiliseras
Le terminal est simulé et comprend une quarantaine de commandes Linux. Dans ce laboratoire, tu auras surtout besoin de celles-ci :
cat: affiche le contenu d’un fichier : la façon la plus directe de lire configurations, notes et journaux.file: reconnaît quel type de fichier tu as devant toi (texte, exécutable, image) d’après son contenu, pas son nom.strings: extrait le texte lisible d’un fichier binaire : il révèle les mots de passe et adresses restés dans un programme.grep: cherche les lignes qui contiennent un mot, même dans des dossiers entiers avec -r. C’est l’outil principal pour analyser du texte et des journaux.|: la barre verticale | enchaîne les commandes : la sortie de la première devient l’entrée de la suivante, et de petits outils forment une analyse complète.
L’environnement simulé
Tu travailles dans un shell Linux simulé, dans le dossier personnel de l'utilisateur runner : fichiers et dossiers imaginaires, aucune cible réseau.
La leçon de défense
Une fois le laboratoire résolu, le compte rendu explique ce qui a mal tourné et comment se protéger :
Compiler un programme n'en fait pas un tiroir fermé : tout texte écrit à l'intérieur (mots de passe, clés d'API, jetons, adresses internes) se récupère avec strings en une seconde, sans même l'exécuter. Les secrets n'ont leur place ni dans le code ni dans les exécutables : on les lit au démarrage depuis des variables d'environnement ou un gestionnaire de secrets, on les change s'ils fuitent et on les cherche avec des outils d'analyse de secrets avant la livraison.
Avant et après ce laboratoire
Pour l’ouvrir, tu dois avoir résolu :
- Hexadécimal (Encodages et secrets, facile)
- Chercher dans le texte (Bases de Linux, moyen)
Après ce laboratoire, tu peux passer à :
- Le rébus final (Encodages et secrets, difficile)
Le parcours Encodages et secrets
Encodages et secrets enseigne une distinction qui sauve beaucoup de données : encoder n'est pas chiffrer. Base64, hexadécimal, ROT13 et texte en miroir changent l'aspect des informations sans les protéger, car n'importe qui les remet en clair sans aucune clé. Dans les laboratoires, tu reconnais ces formats à leur aspect, tu les retires couche par couche même quand ils sont empilés, tu extrais le texte lisible d'un programme compilé et tu comprends pourquoi protéger vraiment un secret demande un vrai chiffrement, des hachages salés et un gestionnaire de secrets.