# Grundlegende Tomcat-Informationen
Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)! * Arbeiten Sie in einem **Cybersicherheitsunternehmen**? Möchten Sie Ihr **Unternehmen in HackTricks beworben sehen**? Oder möchten Sie Zugriff auf die **neueste Version des PEASS oder HackTricks als PDF herunterladen**? Überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com) * **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) bei oder der [**Telegram-Gruppe**](https://t.me/peass) oder **folgen** Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das [HackTricks-Repository](https://github.com/carlospolop/hacktricks) und das [HackTricks-Cloud-Repository](https://github.com/carlospolop/hacktricks-cloud)** einreichen.
**Try Hard Security Group**
{% embed url="https://discord.gg/tryhardsecurity" %} *** ### Vermeiden Sie das Ausführen als Root Um Tomcat nicht als Root auszuführen, ist eine sehr verbreitete Konfiguration, einen Apache-Server auf Port 80/443 einzurichten und, wenn der angeforderte Pfad mit einem regulären Ausdruck übereinstimmt, wird die Anfrage an Tomcat gesendet, der auf einem anderen Port läuft. ### Standardstruktur ``` ├── bin ├── conf │ ├── catalina.policy │ ├── catalina.properties │ ├── context.xml │ ├── tomcat-users.xml │ ├── tomcat-users.xsd │ └── web.xml ├── lib ├── logs ├── temp ├── webapps │ ├── manager │ │ ├── images │ │ ├── META-INF │ │ └── WEB-INF | | └── web.xml │ └── ROOT │ └── WEB-INF └── work └── Catalina └── localhost ``` * Der `bin`-Ordner speichert Skripte und Binärdateien, die zum Starten und Ausführen eines Tomcat-Servers benötigt werden. * Der `conf`-Ordner speichert verschiedene Konfigurationsdateien, die von Tomcat verwendet werden. * Die Datei `tomcat-users.xml` speichert Benutzeranmeldeinformationen und ihre zugewiesenen Rollen. * Der `lib`-Ordner enthält die verschiedenen JAR-Dateien, die für das korrekte Funktionieren von Tomcat benötigt werden. * Die Ordner `logs` und `temp` speichern temporäre Protokolldateien. * Der `webapps`-Ordner ist das Standard-Webroot von Tomcat und hostet alle Anwendungen. Der `work`-Ordner fungiert als Cache und wird verwendet, um Daten während der Laufzeit zu speichern. Es wird erwartet, dass jeder Ordner innerhalb von `webapps` die folgende Struktur hat. ``` webapps/customapp ├── images ├── index.jsp ├── META-INF │ └── context.xml ├── status.xsd └── WEB-INF ├── jsp | └── admin.jsp └── web.xml └── lib | └── jdbc_drivers.jar └── classes └── AdminServlet.class ``` Die wichtigste Datei unter diesen ist `WEB-INF/web.xml`, die als Bereitstellungsbeschreibung bekannt ist. Diese Datei speichert **Informationen über die Routen**, die von der Anwendung verwendet werden, und die Klassen, die diese Routen verarbeiten.\ Alle kompilierten Klassen, die von der Anwendung verwendet werden, sollten im Ordner `WEB-INF/classes` gespeichert werden. Diese Klassen können wichtige Geschäftslogik sowie sensible Informationen enthalten. Jede Schwachstelle in diesen Dateien kann zu einem vollständigen Kompromittieren der Website führen. Der `lib`-Ordner speichert die für diese bestimmte Anwendung benötigten Bibliotheken. Der `jsp`-Ordner speichert [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), früher bekannt als `JavaServer Pages`, die mit PHP-Dateien auf einem Apache-Server verglichen werden können. Hier ist ein Beispiel für eine **web.xml**-Datei. ```xml AdminServlet com.inlanefreight.api.AdminServlet AdminServlet /admin ``` Die obige Konfiguration in der `web.xml` definiert einen **neuen Servlet mit dem Namen `AdminServlet`**, der auf die **Klasse `com.inlanefreight.api.AdminServlet`** abgebildet ist. Java verwendet die Punkt-Notation, um Paketnamen zu erstellen, was bedeutet, dass der Pfad auf der Festplatte für die oben definierte Klasse wäre: * **`classes/com/inlanefreight/api/AdminServlet.class`** Als nächstes wird ein neues Servlet-Mapping erstellt, um Anfragen an `/admin` mit `AdminServlet` abzubilden. Diese Konfiguration leitet jede Anfrage für **`/admin` an die Klasse `AdminServlet.class`** zur Verarbeitung weiter. Der **`web.xml`**-Deskriptor enthält viele **sensible Informationen** und ist eine wichtige Datei, die überprüft werden sollte, wenn eine **Local File Inclusion (LFI)-Schwachstelle** ausgenutzt wird. ### tomcat-users Die Datei **`tomcat-users.xml`** wird verwendet, um den Zugriff auf die **Admin-Seiten `/manager` und `host-manager`** zu **ermöglichen** oder zu verweigern. ```xml !-- user manager can access only manager section --> ``` Die Datei zeigt uns, auf welche Ressourcen die Rollen `manager-gui`, `manager-script`, `manager-jmx` und `manager-status` Zugriff gewähren. In diesem Beispiel sehen wir, dass ein Benutzer `tomcat` mit dem Passwort `tomcat` die Rolle `manager-gui` hat, und ein zweites schwaches Passwort `admin` für das Benutzerkonto `admin` festgelegt ist. ## Referenzen * [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090) **Try Hard Security Group**
{% embed url="https://discord.gg/tryhardsecurity" %}
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)! * Arbeiten Sie in einem **Cybersicherheitsunternehmen**? Möchten Sie Ihr **Unternehmen in HackTricks beworben sehen**? Oder möchten Sie Zugriff auf die **neueste Version des PEASS oder HackTricks als PDF herunterladen**? Überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com) * **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das [HackTricks-Repository](https://github.com/carlospolop/hacktricks) und das [HackTricks-Cloud-Repository](https://github.com/carlospolop/hacktricks-cloud)** einreichen.