Secrets dans les processus et les services locaux
À la Laverie Bulle Bleue, les agents et les services se parlent sur la même machine. Regarde ce qui tourne (et avec quels arguments), découvre quels services écoutent en local et vérifie si un secret peut finir entre de mauvaises mains.
Laboratoire 4 sur 5 du parcours Privilege Escalation. Si tu bloques, tu as 3 indices, du plus vague au plus précis : ils coûtent 0, 50 et 150 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 :
- Lister les processus en cours (100 XP)
- Lire la bannière du service local sur le port 7070 (150 XP)
- S'authentifier auprès du hub avec le secret trouvé (200 XP)
Thèmes : privesc, processi, segreti, audit.
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 :
ps: liste les processus en cours avec leurs arguments, visibles par tous les utilisateurs de la machine.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.nmap: découvre les hôtes actifs d’un réseau et les ports ouverts d’une machine, avec services et versions. La défense l’utilise pour comparer le vrai réseau avec l’inventaire.nc: netcat ouvre une connexion brute vers un port et montre ce que répond le service, y compris son message d’accueil (bannière).curl: envoie des requêtes HTTP depuis le terminal et montre la réponse brute du serveur, en-têtes compris.|: 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.
En plus du dossier personnel, il y a un système simulé complet, avec des fichiers de configuration, des journaux, des utilisateurs et des permissions à examiner.
Des services locaux tournent aussi sur la machine :
- SSH: l’accès distant chiffré à la ligne de commande ; on le protège avec des clés plutôt que des mots de passe et sans connexion directe en root.
- Base de données: une base de données (MySQL, MariaDB ou PostgreSQL), qui ne devrait répondre qu’aux services qui l’utilisent et jamais à tout le réseau.
- Web (HTTP): un serveur web avec des pages, des API ou des panneaux d’administration : la partie la plus exposée de presque toute organisation.
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 :
Les arguments des processus sont publics : ps les montre à tous les utilisateurs (et ils finissent aussi dans les journaux d'audit). Un jeton passé avec --token, c'est comme l'écrire sur une pancarte. Leçon défensive : passe les secrets par les variables d'environnement du service, des fichiers en permissions 600 ou un gestionnaire de secrets, jamais en arguments ; monte /proc avec hidepid=2, renouvelle le jeton dès qu'il est exposé et donne aux services locaux des identifiants par client à portée minimale.
Avant et après ce laboratoire
Pour l’ouvrir, tu dois avoir résolu :
- Secrets oubliés (Privilege Escalation, moyen)
- Bannières des services (Recon & Scanning, facile)
Après ce laboratoire, tu peux passer à :
- Audit sudo et SUID (Privilege Escalation, difficile)
Le parcours Privilege Escalation
Privilege Escalation est ici un parcours d'audit : tu es sur un serveur en tant qu'utilisateur normal et tu vérifies si une mauvaise configuration permet d'obtenir plus de privilèges que prévu. Tu examines les règles sudo, les programmes avec le bit SUID, les identifiants oubliés dans l'historique et dans des fichiers, et les secrets passés en arguments des processus. Ce sont les mêmes contrôles que ceux de qui sécurise un système, et chaque laboratoire se termine par le principe qui les résume tous : le moindre privilège.