Introduction
Willow Workshop a besoin de la liste d’inscription de CLAY-OPEN, mais son client pointe encore vers un ancien port fermé. Le même environnement héberge un service de référence utile et des archives qui doivent rester disponibles. Trouvez le service actuel, reconnectez le client et enregistrez la liste actuelle complète.
Avec Nmap, vous distinguerez port ouvert, protocole identifié et service métier recherché. Des bases de terminal et de chemins suffisent ; les options sont expliquées ici. Toutes les personnes et données sont synthétiques. Ces vrais services HTTP fonctionnent dans un seul conteneur de formation, pas sur des machines séparées. Utilisez Terminal tout au long du laboratoire. Ne scannez que 127.0.0.2, ports TCP 8100-8199, sans modifier les services ni les réglages de la plateforme.
Lire une liste fonctionnelle
Dans cette étape, vous observerez une requête métier réussie avant d’étudier la connexion défaillante. Commencez dans Terminal. cd change le répertoire de ce shell. Les chemins relatifs suivants partent de cet espace de travail ; répétez la commande si vous ouvrez un autre terminal :
cd /home/labex/project/workshop
Le programme fourni workshop-client est un petit client HTTP. ./ sélectionne le programme du répertoire courant. Il lit une URL de base dans un fichier de destination, demande /roster.tsv, affiche les enregistrements et sauvegarde la réponse exacte. Il ne cherche pas d’autres serveurs et ne répare pas sa configuration. --endpoint choisit le fichier de destination ; --save nomme le fichier de sortie. Lisez l’adresse de référence avec cat, qui affiche un fichier texte :
cat reference.txt
Vous devez obtenir http://127.0.0.2:8120. L’adresse identifie la destination ; le port après les deux-points sélectionne le service à l’écoute. HTTP est le protocole requête/réponse du client.
./workshop-client --endpoint reference.txt --save reference-roster.tsv
Repérez Session: ORIENTATION, deux enregistrements et Saved 2 records to reference-roster.tsv. Le format TSV comporte un en-tête et des lignes dont les colonnes sont séparées par des tabulations. session_id identifie la session ; les autres colonnes décrivent la personne et l’article. Cette référence fonctionne, mais ce n’est pas le résultat CLAY-OPEN.
Sans --endpoint, le client lit endpoint.txt. Examinez-le :
cat endpoint.txt
Essayez la configuration actuelle :
./workshop-client --save roster.tsv
Cette commande doit échouer avec Client error et une explication de connexion refusée. Aucun programme n’écoute sur l’ancien port. Il s’agit d’un échec de connexion, pas d’un refus HTTP ni d’une liste mal formée. Aucun fichier de liste n’est enregistré lors de l’échec. Gardez reference.txt, le client et tous les services inchangés. Vous pouvez modifier endpoint.txt et créer des preuves ou téléchargements dans cet espace.
Découvrir les ports autorisés
Dans cette étape, vous trouverez des ports candidats sans deviner leurs applications. Restez dans Terminal, dans /home/labex/project/workshop. Un port TCP open a accepté une connexion ; cela ne dit pas quelle session il dessert.
Le scan par défaut de Nmap examine un ensemble de ports courants, pas tous les ports. Le périmètre autorise toute la plage 8100-8199. -sT choisit un scan TCP connect qui ne nécessite ici aucun privilège de paquets bruts. -n évite la résolution inverse des noms. -p définit la plage. -oX enregistre du XML structuré, tandis que Nmap affiche aussi un résultat lisible. XML conserve ensemble cible, protocole, port et état pour la suite.
nmap -sT -n -p 8100-8199 -oX ports.xml 127.0.0.2
Les ports TCP 8120, 8142 et 8187 doivent être ouverts ; les autres ports de la plage sont fermés. La colonne SERVICE peut contenir un nom conventionnel ou unknown. Sans identification active, c’est un indice de la base des ports, pas une preuve de l’application. Ne choisissez pas un service simplement parce que son port est ouvert ou son nom habituel familier.
Une faute dans la cible ou la plage peut induire en erreur. Relancez la commande corrigée pour remplacer ports.xml. Si un fichier manque ensuite, utilisez pwd pour afficher le répertoire courant, puis revenez avec le cd de l’étape 1. N’élargissez pas le scan aux adresses ou ports de la plateforme.
Identifier les services candidats
Dans cette étape, vous identifierez les candidats et comparerez leurs descriptions métier. Restez dans Terminal. -sV envoie des sondes applicatives ; --version-light utilise un ensemble réduit pour limiter le travail inutile. L’absence de version produit ne prouve pas une panne.
Le moteur de scripts Nmap, NSE, peut effectuer une requête applicative ciblée. Lisez l’aide du seul script nécessaire :
nmap --script-help http-title
http-title récupère le titre d’une page HTML. Les informations de passation identifient ces trois candidats comme des services HTTP de l’atelier. Le préfixe + exécute explicitement ce script même si l’ancienne base ne reconnaît pas un port ou un en-tête inhabituel. Cela convient à ce périmètre HTTP connu, sans justifier de forcer des scripts arbitraires sur d’autres services. --script-args transmet un argument nommé ; http-title.url=/about demande la page descriptive plutôt que le chemin par défaut.
nmap -sT -n -sV --version-light --script=+http-title --script-args=http-title.url=/about -p 8120,8142,8187 -oX services.xml 127.0.0.2
Attendez Nmap done. Comparez les lignes http-title : Orientation est la référence, Clay Archive l’ancienne session, et Clay Open Studio le candidat pour CLAY-OPEN. Le service actuel utilise le port 8187. La colonne VERSION peut varier et unknown peut apparaître même si le script HTTP explicite fonctionne. Lisez la réponse réelle au lieu d’inventer une version.
Les titres réduisent le choix, mais ne prouvent ni l’identité ni l’exhaustivité de la liste. Vous les confirmerez avec le client. Ne modifiez pas un titre ou les enregistrements du serveur pour faire passer le mauvais service pour le bon. Si vous interrompez le scan, relancez-le et attendez sa fin : un XML incomplet n’est pas une preuve exploitable.
Reconnecter le client et enregistrer la liste actuelle
Dans cette étape, vous transformerez la découverte en configuration fonctionnelle. Restez dans Terminal. Le fichier de destination contient une URL de base HTTP, sans /about ni /roster.tsv ; le client fournit son chemin de ressource.
printf écrit du texte formaté. Ici, '%s\n' représente une chaîne suivie d’un saut de ligne. Les apostrophes conservent le contenu littéral. > remplace le fichier indiqué par la sortie : n’utilisez que le fichier modifiable endpoint.txt :
printf '%s\n' 'http://127.0.0.2:8187' > endpoint.txt
cat endpoint.txt
Interrogez le service configuré et enregistrez sa réponse originale complète :
./workshop-client --save roster.tsv
Vous devez voir Session: CLAY-OPEN, trois participants et Saved 3 records to roster.tsv. Examinez le véritable fichier enregistré :
cat roster.tsv
L’en-tête doit être suivi de W01/Ana/Clay kit, W02/Sam/Glaze kit et W03/Lee/Clay kit, tous pour CLAY-OPEN. Des archives peuvent répondre HTTP 200 avec une liste valide et rester un mauvais résultat métier. Si vous avez une autre session, corrigez la destination et relancez le client. Une URL de base mal formée donne un Client error explicatif ; remplacez cette URL au lieu de modifier le programme fourni.
Enfin, relisez la référence pour confirmer que les fonctions utiles restent disponibles :
./workshop-client --endpoint reference.txt --save reference-roster.tsv
Cette requête doit toujours renvoyer ORIENTATION. Votre liste actuelle reste dans roster.tsv. Les archives conservent également leur usage initial. Aucun redémarrage de serveur, réparation de configuration serveur ou retrait de service n’est nécessaire.
Résumé
Vous avez découvert les ports TCP autorisés, collecté des preuves actives de services et HTTP, puis reconnecté un vrai client à la bonne session. La liste complète, la bonne destination et les services de référence et d’archive préservés établissent le résultat. Un port ouvert, un nom familier, une version ou HTTP 200 ne suffiraient pas.



