# Podstawowe informacje o Tomcacie
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! * Czy pracujesz w **firmie z branży cyberbezpieczeństwa**? Chcesz zobaczyć swoją **firmę reklamowaną na HackTricks**? lub chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do [repozytorium hacktricks](https://github.com/carlospolop/hacktricks) i [repozytorium hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
**Grupa Try Hard Security**
{% embed url="https://discord.gg/tryhardsecurity" %} *** ### Unikaj uruchamiania jako root Aby nie uruchamiać Tomcata jako root, bardzo częstą konfiguracją jest ustawienie serwera Apache na porcie 80/443 i, jeśli żądana ścieżka pasuje do wyrażenia regularnego, żądanie jest przesyłane do Tomcata działającego na innym porcie. ### Domyślna struktura ``` ├── 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 ``` * Folder `bin` przechowuje skrypty i pliki binarne potrzebne do uruchomienia serwera Tomcat. * Folder `conf` przechowuje różne pliki konfiguracyjne używane przez Tomcat. * Plik `tomcat-users.xml` przechowuje dane uwierzytelniające użytkowników i ich przypisane role. * Folder `lib` zawiera różne pliki JAR potrzebne do poprawnego działania Tomcat. * Foldery `logs` i `temp` przechowują tymczasowe pliki dziennika. * Folder `webapps` jest domyślnym katalogiem głównym Tomcat i zawiera wszystkie aplikacje. Folder `work` działa jako pamięć podręczna i służy do przechowywania danych podczas działania. Oczekiwana struktura każdego folderu wewnątrz `webapps`. ``` 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 ``` Najważniejszym plikiem spośród nich jest `WEB-INF/web.xml`, który jest znany jako deskryptor wdrożenia. Ten plik przechowuje **informacje o trasach** używanych przez aplikację oraz klasy obsługujące te trasy.\ Wszystkie skompilowane klasy używane przez aplikację powinny być przechowywane w folderze `WEB-INF/classes`. Te klasy mogą zawierać ważną logikę biznesową oraz poufne informacje. Każda podatność w tych plikach może prowadzić do całkowitego skompromitowania strony internetowej. Folder `lib` przechowuje biblioteki potrzebne dla danej aplikacji. Folder `jsp` przechowuje [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), wcześniej znane jako `JavaServer Pages`, które można porównać do plików PHP na serwerze Apache. Oto przykładowy plik **web.xml**. ```xml AdminServlet com.inlanefreight.api.AdminServlet AdminServlet /admin ``` Konfiguracja `web.xml` powyżej definiuje **nowy serwlet o nazwie `AdminServlet`**, który jest odwzorowany do **klasy `com.inlanefreight.api.AdminServlet`**. Java używa notacji kropkowej do tworzenia nazw pakietów, co oznacza, że ścieżka na dysku dla powyższej klasy będzie: * **`classes/com/inlanefreight/api/AdminServlet.class`** Następnie tworzony jest nowy odwzorowanie serwletu, aby **odwzorować żądania na `/admin` z `AdminServlet`**. Ta konfiguracja przekieruje każde żądanie otrzymane dla **`/admin` do klasy `AdminServlet.class`** w celu przetworzenia. Deskryptor **`web.xml`** zawiera wiele **wrażliwych informacji** i jest ważnym plikiem do sprawdzenia podczas wykorzystywania podatności na **Lokalne Włączenie Pliku (LFI)**. ### tomcat-users Plik **`tomcat-users.xml`** jest używany do **zezwolenia** lub zabrania dostępu do stron administracyjnych **`/manager` i `host-manager`**. ```xml !-- user manager can access only manager section --> ``` Plik pokazuje, do czego dostęp zapewniają role `manager-gui`, `manager-script`, `manager-jmx` i `manager-status`. W tym przykładzie widzimy, że użytkownik `tomcat` z hasłem `tomcat` ma rolę `manager-gui`, a drugie słabe hasło `admin` jest ustawione dla konta użytkownika `admin`. ## Referencje * [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" %}
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! * Czy pracujesz w **firmie z branży cyberbezpieczeństwa**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? lub chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do [repozytorium hacktricks](https://github.com/carlospolop/hacktricks) i [repozytorium hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.