CSIRT-CAN – Centro de Respuesta a Incidentes de Seguridad de Canarias

Vulkanforschungsstation Teide

Die Teide-Vulkanforschungsstation (EIVT) ist eine fiktive Forschungseinrichtung, die die vulkanische Aktivität auf den Kanarischen Inseln überwacht. Vor Kurzem ist Dr. Mencey Guanche, der leitende Forscher, auf mysteriöse Weise verschwunden – zusammen mit wichtigen Daten über einen möglicherweise unmittelbar bevorstehenden Vulkanausbruch.

Die neuesten Systemprotokolle weisen verdächtige Aktivitäten auf. Ihre Mission: Infiltrieren Sie die Systeme der Station, folgen Sie den von Dr. Guanche hinterlassenen Hinweisen und finden Sie heraus, was wirklich geschehen ist.

Wurde er entführt? Ist er mit wertvollen Informationen geflohen? Oder steckt etwas Finstereres dahinter?

Hauptziel: Root-Zugriff erlangen und Dr. Guanches versteckten „Schatz“ finden.

Stufe 1: Aufklärung

Techniken: Dienstauflistung, Fuzzing.

Der Benutzer muss die aktiven Dienste auflisten. Dazu kann er Tools wie „nmap“ verwenden, um die aktiven Ports des Systems zu ermitteln. Nach der Auflistung findet er folgende aktive Dienste: FTP, SSH und zwei Webserver.

Dem Benutzer wird SSH-Zugriff auf das System gewährt. Mit diesem Zugriff kann er zwar nicht viel herausfinden, aber er kann die Benutzer des Systems auflisten.

Der Webserver auf Port 8081 enthält lediglich eine nicht funktionierende Anmeldeseite, die den Benutzer in die Irre führen soll. Der Zugriff auf den Webserver über Port 80 führt zu einer Website mit verschiedenen Seiten, die Informationen über die Teide-Vulkanforschungsstation enthalten, jedoch keine für deren Betrieb relevanten Informationen. Der Benutzer muss die Seiten der Website durchsuchen, um die relevanten Informationen zu finden.

Websites enthalten üblicherweise eine Datei namens „robots.txt“, die Anweisungen für Suchmaschinen-Roboter wie Google enthält, welche Bereiche der Website gecrawlt werden dürfen und welche nicht.

Durch den Zugriff auf diese Datei findet der Benutzer die erste Flagge sowie zwei Ordner (/admin und /mencey_private), die über die Links auf der Hauptseite nicht erreichbar waren. Der Ordner /admin und seine Dateien könnten auch durch Enumeration oder Fuzzing von Websites gefunden werden.

Stufe 2: Web-Exploitation
Techniken: SQL-Injection.

Der zuvor gefundene Ordner /mencey_private enthält eine geschützte und nicht zugängliche Datei. Der Ordner /admin hingegen enthält die zugängliche Datei login.php.

Auf der Seite admin/login.php können Sie versuchen, das Anmeldeformular auf verschiedene Weise zu kompromittieren, beispielsweise durch einen Brute-Force-Angriff. Dieser wird jedoch nicht erfolgreich sein.

Für einen erfolgreichen Angriff muss der Benutzer eine SQL-Injection-Attacke durchführen. SQL-Injection ist eine Angriffsart, bei der Schadcode in SQL-Abfragen eingeschleust wird, um Schwachstellen in Webanwendungen auszunutzen und so auf Datenbanken zuzugreifen oder diese zu manipulieren.

Das Formular verarbeitet Benutzereingaben nicht korrekt. Wird eine SQL-Abfrage eingegeben, kann diese den Anmeldevalidierungsprozess verändern und dem Angreifer ermöglichen, diesen zu umgehen und auf das Dashboard zuzugreifen. In diesem Fall genügt eine einfache Eingabe wie „‘ OR 1=1– -“.

Sobald Sie Zugriff auf das Dashboard erlangt haben, finden Sie einen Link, der Sie zu der zuvor unzugänglichen Datei weiterleitet. Darin finden Sie die zweite Flagge und einige Zugangsdaten.

Stufe 3: Kryptografie
Techniken: Dekodierung, versteckte Dateien.

Da der Benutzer die verschiedenen Systembenutzer kennt, sollte er die zuvor gefundenen Zugangsdaten ausprobieren, bis er sich mit einem von ihnen per SSH anmelden kann. Diese Zugangsdaten funktionieren für den Benutzer „mencey“.

Im Benutzerverzeichnis befindet sich eine Datei mit verschlüsseltem Inhalt. Außerdem gibt es einen Ordner mit verschiedenen Unterordnern und Dateien, die keine relevanten Informationen enthalten. In einem der Unterordner befindet sich eine versteckte Datei namens „.secreto“, die den Entschlüsselungsschlüssel und Hinweise auf die verwendete Verschlüsselungsmethode enthält.

Die verwendete Verschlüsselung ist Vigenère. Mithilfe einer Webplattform wie „Cyberchef“ kann der Inhalt der Datei entschlüsselt werden, wodurch neue Zugangsdaten gewonnen werden.

Stufe 4: Steganografie
Techniken: Metadatenanalyse

Mit den in der vorherigen Stufe erhaltenen Zugangsdaten kann der Benutzer als Ermittler auf das System zugreifen. Im Benutzerverzeichnis findet er eine Textdatei mit einer Historie und Hinweisen. Der Hinweis fordert den Benutzer auf, ALLE Details einiger Bilder zu überprüfen. Da der FTP-Dienst aktiv ist, kann der Benutzer versuchen, mit den Zugangsdaten darauf zuzugreifen. Der FTP-Dienst erlaubt diesem Benutzer den Zugriff auf sein Verzeichnis, sodass er die Bilder auf seinen Computer übertragen kann.

Um relevante Informationen zu erhalten, muss der Benutzer die Metadaten der Bilder mit einem Tool wie „exiftool“ überprüfen und nach Flag Nr. 4 suchen.

Stufe 5: Rechteausweitung
Techniken: Missbrauch von SUID-Berechtigungen.

- SUID-Binärdateien mit dem Befehl `find / -perm -4000 2>/dev/null` finden
- `-perm -4000`: Dateien mit SUID-Berechtigungen finden
- Unter den aufgelisteten Binärdateien befindet sich `/usr/bin/time`
- Berechtigungen für die Binärdatei mit dem Befehl `ls -l /usr/bin/time` abrufen

- Die Binärdatei gehört zur Forschergruppe, der auch der aktuelle Forscher-Benutzer angehört. Daher kann er die Binärdatei mit Superuser-Rechten ausführen.

Die Binärdatei missbrauchen, um eine Superuser-Shell mit dem Befehl `/usr/bin/time /bin/bash -p` zu erhalten

Zugriff auf das System als privilegierter Benutzer erlangen

Auf das Verzeichnis `/root` zugreifen, in dem sich die endgültige Auflösungsdatei befindet