Zum Inhalt springen
PURPLEDUEL

Geheimnisse in einer ausführbaren Datei

Kodierungen & Geheimnisse · Schwierigkeit mittel · 5 Ziele · 600 XP insgesamt

Eine Firma hat dir ein kompiliertes Programm übergeben, den Tresor, und schwört, dass niemand seine Geheimnisse lesen kann. Beweise das Gegenteil: Hol den Servicecode heraus, der in der Datei geblieben ist.

Labor 4 von 6 im Lernpfad Kodierungen & Geheimnisse. Wenn du feststeckst, hast du 3 Hinweise, vom vagesten bis zum genauesten: Sie kosten 0, 40 und 120 XP.

Was du lernst

Die Ziele erfüllen sich von selbst, während du im Terminal arbeitest; jedes bringt Erfahrungspunkte:

  • Das README lesen (50 XP)
  • file fragen, was cassaforte ist (100 XP)
  • Den lesbaren Text mit strings herausziehen (150 XP)

Themen: codici, strings, binari.

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.
  • file: erkennt am Inhalt, nicht am Namen, welche Art von Datei vor dir liegt (Text, Programm, Bild).
  • strings: zieht den lesbaren Text aus einer Binärdatei: Er verrät Passwörter und Adressen, die in einem Programm zurückgeblieben sind.
  • 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.
  • |: 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.

Die Lektion zur Abwehr

Ist das Labor gelöst, erklärt der Bericht, was schiefging und wie man sich schützt:

Ein Programm zu kompilieren macht es nicht zur verschlossenen Schublade: Jeder darin stehende Text (Passwörter, API-Schlüssel, Tokens, interne Adressen) lässt sich mit strings in einer Sekunde auslesen, ohne das Programm auszuführen. Geheimnisse gehören weder in den Code noch in ausführbare Dateien: Man liest sie beim Start aus Umgebungsvariablen oder einem Secret-Manager, wechselt sie bei einem Leck aus und sucht vor der Veröffentlichung mit Secret-Scanning-Werkzeugen danach.

Vor und nach diesem Labor

Um es zu öffnen, musst du gelöst haben:

Nach diesem Labor kannst du weitermachen mit:

Der Lernpfad Kodierungen & Geheimnisse

Kodierungen & Geheimnisse lehrt einen Unterschied, der viele Daten rettet: Kodieren ist nicht Verschlüsseln. Base64, Hexadezimal, ROT13 und Spiegelschrift verändern das Aussehen von Informationen, schützen sie aber nicht, denn jeder kann sie ohne Schlüssel zurück in Klartext verwandeln. In den Laboren erkennst du diese Formate an ihrem Aussehen, entfernst sie Schicht für Schicht, auch wenn sie gestapelt sind, ziehst lesbaren Text aus einem kompilierten Programm und verstehst, warum echter Schutz echte Verschlüsselung, gesalzene Hashes und einen Secrets-Manager braucht.

Alle Labore im Lernpfad Kodierungen & Geheimnisse

Mehr in den Guides (auf Englisch)

Alle Guides (auf Englisch)