Geheimnisse in Prozessen und lokalen Diensten
In der Wäscherei Blaue Blase sprechen Agenten und Dienste auf derselben Maschine miteinander. Sieh nach, was läuft (und mit welchen Argumenten), finde heraus, welche Dienste lokal lauschen, und prüfe, ob ein Geheimnis in falsche Hände geraten kann.
Labor 4 von 5 im Lernpfad Privilege Escalation. Wenn du feststeckst, hast du 3 Hinweise, vom vagesten bis zum genauesten: Sie kosten 0, 50 und 150 XP.
Was du lernst
Die Ziele erfüllen sich von selbst, während du im Terminal arbeitest; jedes bringt Erfahrungspunkte:
- Die laufenden Prozesse auflisten (100 XP)
- Das Banner des lokalen Dienstes auf Port 7070 lesen (150 XP)
- Sich mit dem gefundenen Geheimnis am Hub anmelden (200 XP)
Themen: privesc, processi, segreti, audit.
Die Befehle, die du brauchst
Das Terminal ist simuliert und versteht etwa vierzig Linux-Befehle. In diesem Labor brauchst du vor allem diese:
ps: listet laufende Prozesse mit ihren Argumenten auf, die jeder Benutzer der Maschine sehen kann.grep: findet die Zeilen, die ein Wort enthalten, mit -r auch in ganzen Ordnern. Es ist das wichtigste Werkzeug, um Text und Logs zu analysieren.nmap: entdeckt die aktiven Hosts eines Netzwerks und die offenen Ports einer Maschine, mit Diensten und Versionen. Die Verteidigung nutzt ihn, um das echte Netzwerk mit dem Inventar zu vergleichen.nc: netcat öffnet eine rohe Verbindung zu einem Port und zeigt, was der Dienst antwortet, einschließlich seiner Begrüßung (Banner).curl: stellt HTTP-Anfragen aus dem Terminal und zeigt die rohe Antwort des Servers samt Headern.|: der senkrechte Strich | verkettet Befehle: Die Ausgabe des ersten wird zur Eingabe des nächsten, so werden kleine Werkzeuge zu einer vollständigen Analyse.
Die simulierte Umgebung
Du arbeitest in einer simulierten Linux-Shell, im Home-Verzeichnis des Benutzers runner: erfundene Dateien und Ordner, kein Ziel im Netzwerk.
Neben dem Home-Verzeichnis gibt es ein vollständiges simuliertes System mit Konfigurationsdateien, Logs, Benutzern und Rechten, die du untersuchst.
Auf der Maschine laufen außerdem lokale Dienste:
- SSH: der verschlüsselte Fernzugang zur Befehlszeile; man schützt ihn mit Schlüsseln statt Passwörtern und ohne direkte root-Anmeldung.
- Datenbank: eine Datenbank (MySQL, MariaDB oder PostgreSQL), die nur den Diensten antworten sollte, die sie nutzen, und nie dem ganzen Netzwerk.
- Web (HTTP): ein Webserver mit Seiten, APIs oder Verwaltungsoberflächen: der am stärksten exponierte Teil fast jeder Organisation.
Die Lektion zur Abwehr
Ist das Labor gelöst, erklärt der Bericht, was schiefging und wie man sich schützt:
Prozessargumente sind öffentlich: ps zeigt sie jedem Benutzer (und sie landen auch in Audit-Logs). Ein per --token übergebenes Token ist, als würde man es auf ein Schild schreiben. Lehre für die Verteidigung: Übergib Geheimnisse über Umgebungsvariablen des Dienstes, Dateien mit Rechten 600 oder einen Secrets-Manager, nie als Argumente; binde /proc mit hidepid=2 ein, erneuere das Token, sobald es offenliegt, und gib lokalen Diensten Zugangsdaten pro Client mit minimalem Umfang.
Vor und nach diesem Labor
Um es zu öffnen, musst du gelöst haben:
- Vergessene Geheimnisse (Privilege Escalation, mittel)
- Dienst-Banner (Recon & Scanning, leicht)
Nach diesem Labor kannst du weitermachen mit:
- Audit von sudo und SUID (Privilege Escalation, schwer)
Der Lernpfad Privilege Escalation
Privilege Escalation ist hier ein Audit-Lernpfad: Du bist als normaler Benutzer auf einem Server und prüfst, ob eine Fehlkonfiguration mehr Rechte erlaubt als vorgesehen. Du untersuchst sudo-Regeln, Programme mit dem SUID-Bit, im Verlauf und in Dateien vergessene Zugangsdaten und Geheimnisse, die als Prozessargumente übergeben werden. Es sind dieselben Prüfungen, die durchführt, wer ein System absichert, und jedes Labor endet mit dem Prinzip, das sie alle zusammenfasst: minimale Rechte.