Einführung
Willow Workshop benötigt die Anmeldeliste für CLAY-OPEN. Der Listenclient verweist jedoch noch auf einen alten, geschlossenen Port. Dieselbe Trainingsumgebung enthält einen nützlichen Referenzdienst und ein Archiv, das verfügbar bleiben muss. Finde den aktuellen Dienst, verbinde den Client neu und speichere die vollständige aktuelle Liste.
Mit Nmap unterscheidest du offene Ports, erkannte Protokolle und den tatsächlich benötigten Geschäftsdienst. Grundkenntnisse zu Terminal und Pfaden reichen; die Optionen werden erklärt. Alle Personen und Datensätze sind synthetisch. Die echten HTTP-Dienste laufen in einem Trainingscontainer, nicht auf getrennten Rechnern. Verwende durchgehend Terminal. Scanne nur 127.0.0.2, TCP-Ports 8100-8199, und lasse Dienste sowie Plattformeinstellungen unverändert.
Eine funktionierende Liste lesen
In diesem Schritt siehst du eine erfolgreiche Geschäftsabfrage, bevor du die defekte Verbindung untersuchst. Beginne in Terminal. cd ändert das Arbeitsverzeichnis dieser Shell. Alle folgenden relativen Pfade beziehen sich darauf; wiederhole den Befehl, wenn du ein anderes Terminal öffnest:
cd /home/labex/project/workshop
Der vorbereitete workshop-client ist ein kleiner HTTP-Client. ./ wählt das Programm im aktuellen Verzeichnis. Es liest eine Basis-URL aus einer Endpunktdatei, fordert /roster.tsv an, zeigt Datensätze und speichert die exakte Antwort. Es sucht keine anderen Server und repariert keine Konfiguration. --endpoint wählt die Endpunktdatei, --save die Ausgabedatei. Lies die Referenzadresse mit cat, das eine Textdatei anzeigt:
cat reference.txt
Erwartet wird http://127.0.0.2:8120. Die Adresse bezeichnet das Ziel; der Port hinter dem Doppelpunkt wählt einen lauschenden Dienst. HTTP ist das Anfrage-Antwort-Protokoll dieses Clients.
./workshop-client --endpoint reference.txt --save reference-roster.tsv
Achte auf Session: ORIENTATION, zwei Datensätze und Saved 2 records to reference-roster.tsv. Die Datei ist TSV: eine Kopfzeile und Datensätze mit durch Tabulatoren getrennten Spalten. session_id bezeichnet die Veranstaltung; die anderen Spalten beschreiben Teilnehmer und Gegenstand. Dies ist eine funktionierende Referenz, nicht das Ergebnis für CLAY-OPEN.
Ohne --endpoint liest der Client endpoint.txt. Sieh dir die Datei an:
cat endpoint.txt
Probiere die aktuelle Konfiguration:
./workshop-client --save roster.tsv
Dieser Befehl soll mit Client error und einer Erklärung zur verweigerten Verbindung scheitern. Am alten Port lauscht kein Programm. Es ist ein Verbindungsfehler, keine HTTP-Zugriffsverweigerung oder fehlerhafte Liste. Bei Fehlern wird keine Liste gespeichert. Lasse reference.txt, Clientprogramm und alle Dienste unverändert. Du darfst endpoint.txt bearbeiten und Nachweis- oder Downloaddateien im Arbeitsverzeichnis erstellen.
Dienstports im erlaubten Bereich entdecken
In diesem Schritt findest du Kandidatenports, ohne deren Anwendungen zu erraten. Bleibe in Terminal unter /home/labex/project/workshop. Ein TCP-Port mit open hat eine Verbindung angenommen; welche Veranstaltung er bedient, ist damit noch unbekannt.
Nmaps Standardsuche prüft häufige Ports, nicht sämtliche Ports. Die Freigabe umfasst den gesamten Bereich 8100-8199. -sT wählt TCP-Connect-Scanning, das hier keine Rohpaketrechte benötigt. -n überspringt rückwärtige Namensauflösung. -p bestimmt den Bereich. -oX speichert strukturiertes XML; gleichzeitig zeigt Nmap lesbare Ergebnisse. XML hält Ziel, Protokoll, Port und Zustand für die spätere Prüfung zusammen.
nmap -sT -n -p 8100-8199 -oX ports.xml 127.0.0.2
Du solltest die TCP-Ports 8120, 8142 und 8187 offen finden; die übrigen Ports im Bereich sind geschlossen. In SERVICE kann ein üblicher Name oder unknown stehen. Ohne aktive Erkennung ist das ein Hinweis aus der Portdatenbank, kein Beweis für die Anwendung. Wähle keinen Dienst allein wegen eines offenen Ports oder vertrauten Standardnamens.
Ein Tippfehler im Ziel oder Bereich kann irreführen. Wiederhole den korrigierten Befehl, um ports.xml zu ersetzen. Fehlt später eine Datei, zeigt pwd dein aktuelles Verzeichnis; kehre mit dem cd aus Schritt 1 zurück. Erweitere den Scan nicht auf Plattformadressen oder -ports.
Die Dienstkandidaten identifizieren
In diesem Schritt identifizierst du die Kandidaten und vergleichst ihre fachlichen Beschreibungen. Bleibe in Terminal. -sV sendet Anwendungsproben; --version-light verwendet weniger Proben und begrenzt unnötige Arbeit. Eine fehlende Produktversion beweist keinen defekten Dienst.
Die Nmap Scripting Engine, NSE, kann eine gezielte Anwendungsanfrage ausführen. Lies die Hilfe zum einzigen benötigten Skript:
nmap --script-help http-title
http-title ruft den Titel einer HTML-Seite ab. Die Übergabeinformationen bezeichnen diese drei Kandidaten als HTTP-Endpunkte des Workshops. Das vorangestellte + führt genau dieses Skript auch dann aus, wenn die ältere Protokolldatenbank ungewöhnliche Ports oder Header nicht erkennt. Das passt zum bekannten HTTP-Umfang, rechtfertigt aber keine beliebigen erzwungenen Skripte gegen fremde Dienste. --script-args übergibt ein benanntes Argument; http-title.url=/about fordert die Beschreibungsseite statt des Standardpfads an.
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
Warte auf Nmap done. Vergleiche die http-title-Zeilen: Orientation ist die Referenz, Clay Archive die alte Veranstaltung und Clay Open Studio der Kandidat für CLAY-OPEN. Der aktuelle Endpunkt nutzt Port 8187. VERSION kann unterschiedlich ausfallen; selbst bei erfolgreichem explizitem HTTP-Skript ist unknown möglich. Lies die tatsächliche Skriptantwort, statt eine Softwareversion zu erfinden.
Titel schränken die Auswahl ein, beweisen aber weder Identität noch Vollständigkeit der Liste. Das bestätigst du als Nächstes mit dem Client. Ändere keine Servertitel oder Datensätze, um einen falschen Dienst passend erscheinen zu lassen. Bei unterbrochenem Scan wiederhole ihn und warte bis zum Ende; unvollständiges XML ist kein brauchbarer Nachweis.
Neu verbinden und die aktuelle Liste speichern
In diesem Schritt machst du aus dem Scanbefund eine funktionierende Clientkonfiguration. Bleibe in Terminal. Die Endpunktdatei enthält nur eine HTTP-Basis-URL, ohne /about oder /roster.tsv; der Client ergänzt den Ressourcenpfad.
printf schreibt formatierten Text. Hier bedeutet '%s\n' eine Zeichenfolge mit anschließendem Zeilenumbruch. Einfache Anführungszeichen erhalten den Inhalt wörtlich. > ersetzt die angegebene Datei durch die Ausgabe; verwende daher nur die bearbeitbare endpoint.txt:
printf '%s\n' 'http://127.0.0.2:8187' > endpoint.txt
cat endpoint.txt
Frage den konfigurierten Dienst ab und speichere seine vollständige Originalantwort:
./workshop-client --save roster.tsv
Erwarte Session: CLAY-OPEN, drei Teilnehmerdatensätze und Saved 3 records to roster.tsv. Lies die tatsächlich gespeicherte Datei:
cat roster.tsv
Nach der Kopfzeile müssen W01/Ana/Clay kit, W02/Sam/Glaze kit und W03/Lee/Clay kit folgen, jeweils für CLAY-OPEN. Ein Archiv kann HTTP 200 und eine gültige Liste liefern und dennoch fachlich falsch sein. Bei einer anderen Veranstaltung korrigiere den Endpunkt und starte den Client erneut. Eine fehlerhafte Basis-URL führt zu einem erklärenden Client error; ersetze die eine URL, statt das bereitgestellte Programm zu ändern.
Lies abschließend die Referenz erneut, um die nützliche bestehende Funktion zu bestätigen:
./workshop-client --endpoint reference.txt --save reference-roster.tsv
Die Abfrage muss weiterhin ORIENTATION liefern. Deine aktuelle Liste bleibt in roster.tsv. Auch das Archiv behält seinen ursprünglichen Zweck. Serverneustart, Reparatur der Serverkonfiguration oder Entfernen eines Dienstes sind nicht nötig.
Zusammenfassung
Du hast die erlaubten TCP-Ports entdeckt, aktive Dienst- und HTTP-Nachweise gesammelt und einen echten Client mit der richtigen Veranstaltung verbunden. Vollständige Liste, korrekter Endpunkt und erhaltene Referenz- und Archivdienste belegen das Ergebnis. Ein offener Port, vertrauter Name, eine Produktversion oder HTTP 200 allein würden nicht genügen.



