Versteckte Dateien
Wichtig ist es, zu wissen, dass es verborgene oder versteckte Dateien gibt, die nicht sofort in der Standardansicht des Dateisystems erscheinen.
Sie beginnen mit einem Punkt ., was sie von normalen Dateien unterscheidet.
Mit folgendem Befehl werden alle Dateien und Verzeichnisse, also auch die versteckten, angezeigt:
ls -a
Alternativ kannst du auch gezielt nach Dateien suchen.
Dafür gibt es den Befehl find:
find [Pfad] [Optionen] [Suchkriterien]
Der Pfad gibt an, in welchem Verzeichnis die Suche beginnen soll.
Wird kein Pfad angegeben, wird das aktuelle Verzeichnis (.) durchsucht.
Optionen steuern das Verhalten des find-Befehls, z. B. wie die Suche ausgeführt wird oder wie Ergebnisse gefiltert werden.
Einige häufige Optionen sind:
-name: Sucht nach Dateien mit einem bestimmten Namen-type: Sucht nach Dateien eines bestimmten Typs (z. B.ffür reguläre Dateien,dfür Verzeichnisse)-mtime: Sucht nach Dateien, die in einem bestimmten Zeitraum geändert wurden
Das Suchkriterium spezifiziert, nach welchen Eigenschaften gesucht wird. Es wird häufig in Kombination mit Optionen verwendet, um nach bestimmten Dateien zu filtern. Beispiele sind:
-name <pattern>: Sucht nach Dateien, die mit einem bestimmten Muster übereinstimmen Das Sternchen*kann dabei als Platzhalter für beliebige Zeichen eingesetzt werden-mtime -7: Sucht nach Dateien, die in den letzten 7 Tagen geändert wurden
Stelle wieder mit dem Befehl nc -lp <Port> eine Reverse Shell zum LUPFER her.
Dafür musst du die Seite https://lupfer.pentest.samsmart.hosts.openinc.de/usermanagement erneut laden.
Nun hast du nur gezielt nach versteckten Dateien in einem Verzeichnis gesucht und die Datei .placeholder gefunden.
Diese Datei hat für die weitere Untersuchung keinen Mehrwert.
Das Gleiche gilt für alle anderen versteckten Dateien, auf die du zurzeit zugreifen kannst.
Ausführbare Dateien
Versteckte Dateien und Verzeichnisse enthalten unter Umständen sensible Daten. Daneben sind auch ausführbare Dateien potentiell von Interesse und dabei insbesondere solche, die ein Benutzer erstellt oder hochgeladen hat. Ausführbare Shell-Skripte und Binärdateien findest du mit folgenden Befehlen:
find / -type f -name "*.sh" -executable
find / -type f -name "*.bin" -executable
Der Benutzer www-data hat nur eingeschränkte Rechte.
Setzt er den Befehl find ein, dann werden unter Umständen Fehlermeldungen generiert, weil er auf Verzeichnisse und Dateien nicht zugreifen darf.
Um diese Fehlermeldungen nicht auf dem Terminal auszugeben, können sie umgeleitet werden.
Der find-Befehl muss dafür erweitert werden:
find [Pfad] [Optionen] [Suchkriterien] 2>/dev/null
2 steht dabei für die Standardfehlerausgabe, die wegen > an die spezielle Datei /dev/null weitergeleitet und damit verworfen wird.
Auch die Suche nach ausführbaren Dateien wirkt auf den ersten Blick nicht vielversprechend. Als Nächstes solltest du noch nach Konfigurationsdateien suchen.
Konfigurationsdateien
Konfigurationsdateien speichern Systemeinstellungen wie Pfade, Benutzernamen, Ports oder Lizenzen. Sie können also Zugangsdaten oder Informationen zu Netzwerkverbindungen enthalten. Unter Umständen sind diese Daten im Klartext gespeichert, da dies ihre Verarbeitung erleichtert.
Konfigurationsdateien werden standardmäßig im Verzeichnis /etc gespeichert.
Einige dieser Konfigurationsdateien sind:
| Datei | Beschreibung |
|---|---|
/etc/crontab |
Enthält die Konfiguration des Cron-Dienstes, der wiederkehrende Aufgaben (Cron-Jobs) zu festgelegten Zeiten ausführt |
/etc/group |
Enthält Informationen zu Gruppen |
/etc/passwd |
Enthält grundlegende Informationen über Benutzerkonten |
/etc/shadow |
Enthält sicherheitsrelevante Informationen über Benutzerkonten, insbesondere verschlüsselte Passwörter |
/etc/sudoers |
Enthält Informationen über Benutzer oder Gruppen mit erhöhten Rechten |
Wenn du das Verzeichnis /etc untersuchst, wirst du feststellen, dass es viele Dateien und Verzeichnisse enthält, auf die du jedoch keinen Zugriff hast.
Ausgenommen davon ist die Datei /etc/passwd, die du dir daher während der Enumeration anschauen wirst.
Als Letztes wirst du noch nach Logdateien suchen.
Logdateien
Logdateien sind für einen Angreifer aus folgenden Gründen interessant:
- Logdateien können sensible Informationen wie Datenbankzugangsdaten, API-Schlüssel oder Passwörter enthalten.
- Fehlermeldungen und Warnungen können Hinweise auf bekannte Schwachstellen oder falsch konfigurierte Systeme liefern.
- Gegebenenfalls möchte ein Angreifer Spuren seiner Aktivitäten verwischen, indem er Logdateien manipuliert.
Logdateien werden standardmäßig im Verzeichnis /var/log gespeichert.
Auch hier ist es wieder so, dass der Benutzer www-data auf die meisten Dateien keinen Zugriff hat.
Anders ist das bei den Logdateien für die Webapplikation.
Dies wirst du daher in der Enumeration weiter untersuchen.
