hacktricks/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md
2024-02-11 02:07:06 +00:00

169 lines
9.2 KiB
Markdown

# Basiese Tomcat-inligting
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### Vermy om met root te hardloop
Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regulêre uitdrukking, word die versoek na Tomcat gestuur wat op 'n ander poort hardloop.
### Standaardstruktuur
```
├── 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
```
* Die `bin`-map hou skripte en binaire lêers wat nodig is om 'n Tomcat-bediener te begin en te laat loop.
* Die `conf`-map hou verskeie konfigurasie lêers wat deur Tomcat gebruik word.
* Die `tomcat-users.xml`-lêer hou gebruikerslegitimasie en hul toegewysde rolle.
* Die `lib`-map bevat die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
* Die `logs`- en `temp`-mappe hou tydelike loglêers.
* Die `webapps`-map is die verstek webwortel van Tomcat en bevat al die toepassings. Die `work`-map dien as 'n kas en word gebruik om data tydens uitvoering te stoor.
Daar word verwag dat elke map binne `webapps` die volgende struktuur sal hê.
```
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 belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die implementeringsbeskrywer. Hierdie lêer stoor **inligting oor die roetes** wat deur die toepassing gebruik word en die klasse wat hierdie roetes hanteer.\
Alle gekompileerde klasse wat deur die toepassing gebruik word, moet in die `WEB-INF/classes`-vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot die totale kompromittering van die webwerf. Die `lib`-vouer stoor die biblioteke wat deur daardie spesifieke toepassing benodig word. Die `jsp`-vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), voorheen bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Hier is 'n voorbeeld van 'n **web.xml**-lêer.
```xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>com.inlanefreight.api.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
</web-app>
```
Die `web.xml`-konfigurasie hierbo definieer 'n **nuwe servlet genaamd `AdminServlet`** wat gekoppel is aan die **klas `com.inlanefreight.api.AdminServlet`**. Java gebruik die puntnotasie om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Daarna word 'n nuwe servlet-kartering geskep om versoeke na `/admin` met `AdminServlet` te **karteer**. Hierdie konfigurasie sal enige versoek wat ontvang word vir **`/admin` na die `AdminServlet.class`-klas stuur vir verwerking**. Die **`web.xml`**-beskrywer bevat baie **sensitiewe inligting** en is 'n belangrike lêer om te ondersoek wanneer 'n **Local File Inclusion (LFI) kwesbaarheid** benut word.
### tomcat-gebruikers
Die **`tomcat-users.xml`**-lêer word gebruik om toegang tot die **`/manager` en `host-manager` administrasiebladsye** toe te laat of te verbied.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<SNIP>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
Built-in Tomcat manager roles:
- manager-gui - allows access to the HTML GUI and the status pages
- manager-script - allows access to the HTTP API and the status pages
- manager-jmx - allows access to the JMX proxy and the status pages
- manager-status - allows access to the status pages only
The users below are wrapped in a comment and are therefore ignored. If you
wish to configure one or more of these users for use with the manager web
application, do not forget to remove the <!.. ..> that surrounds them. You
will also need to set the passwords to something appropriate.
-->
<SNIP>
!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="admin" roles="manager-gui,admin-gui" />
</tomcat-users>
```
Die lêer wys ons wat elkeen van die rolle `manager-gui`, `manager-script`, `manager-jmx`, en `manager-status` toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker `tomcat` met die wagwoord `tomcat` die `manager-gui` rol het, en 'n tweede swak wagwoord `admin` is ingestel vir die gebruikersrekening `admin`.
## Verwysings
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>