Audit von sudo und SUID
Blitz-Logistik sortiert 40.000 Pakete am Tag, und niemand hat je ein Audit gemacht. Auf dem Server stecken mehrere Konfigurationsfehler, die für sich harmlos wirken, zusammen aber den Chargen-Tresor öffnen. Finde sie alle mit den Audit-Werkzeugen und sammle die Teile: Nur der letzte Schritt führt zum Bericht.
Labor 5 von 5 im Lernpfad Privilege Escalation. Wenn du feststeckst, hast du 3 Hinweise, vom vagesten bis zum genauesten: Sie kosten 0, 80 und 200 XP.
Was du lernst
Die Ziele erfüllen sich von selbst, während du im Terminal arbeitest; jedes bringt Erfahrungspunkte:
- Die sudo-Regeln lesen: Was darf dein Benutzer wirklich? (100 XP)
- Die Programme mit dem SUID-Bit auflisten (150 XP)
- Die laufenden Prozesse prüfen (150 XP)
- Den geschützten Schlüssel mit sudo lesen (250 XP)
Themen: privesc, sudo, suid, audit, boss.
Die Befehle, die du brauchst
Das Terminal ist simuliert und versteht etwa vierzig Linux-Befehle. In diesem Labor brauchst du vor allem diese:
cat: gibt den Inhalt einer Datei aus: der direkteste Weg, Konfigurationen, Notizen und Logs zu lesen.sudo: führt einen Befehl mit den Rechten eines anderen Benutzers aus, meist root; mit -l listet er auf, was dir erlaubt ist. Jede zu weite Regel ist ein Risiko.find: sucht Dateien nach Name, Typ oder Rechten in einem ganzen Verzeichnisbaum; bei einem Audit findet er Schlüssel, vergessene Kopien und Programme mit gefährlichen Rechten.ps: listet laufende Prozesse mit ihren Argumenten auf, die jeder Benutzer der Maschine sehen kann.ls: listet die Dateien eines Ordners auf; mit -l zeigt er Rechte und Besitzer, mit -a auch versteckte Dateien. Es ist der erste Befehl auf jeder Maschine.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.curl: stellt HTTP-Anfragen aus dem Terminal und zeigt die rohe Antwort des Servers samt Headern.
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.
- 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:
Kein einzelner Fehler öffnete den Tresor: sudo auf grep zum Lesen der Logs, ein gut geschützter Schlüssel, ein SUID-Programm, das nur eine Zahl ausgibt, ein Agent mit dem Benutzernamen in der Kommandozeile. Zusammen bilden sie eine Kette. Lehre für die Verteidigung: Konfigurationen gemeinsam prüfen, nicht eine Kontrolle nach der anderen; minimale Rechte (sudo grep liest jede Datei: besser eine Gruppe mit Leserecht nur auf die Logs), keine unnötigen SUID-Programme, keine Dienstdetails in Prozessargumenten, rotierte Schlüssel und das Audit nach jeder Änderung wiederholen.
Vor und nach diesem Labor
Um es zu öffnen, musst du gelöst haben:
- Programme mit dem SUID-Bit (Privilege Escalation, mittel)
- Geheimnisse in Prozessen und lokalen Diensten (Privilege Escalation, mittel)
Es ist eines der letzten Labore: Kein anderes Labor setzt es voraus.
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.