# Basic Tomcat Info
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer 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 [**produtos oficiais 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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
### Evite executar com root Para não executar o Tomcat com root, uma configuração muito comum é definir um servidor Apache na porta 80/443 e, se o caminho solicitado corresponder a uma expressão regular, a solicitação é enviada para o Tomcat em execução em uma porta diferente. ### Estrutura Padrão ``` ├── 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 ``` * A `WEB-INF` folder that contains the `web.xml` file, which is the deployment descriptor for the web application. * A `classes` folder that contains the compiled Java classes. * A `lib` folder that contains the JAR files needed for the web application. * Any other files or folders that are part of the web application. * A pasta `bin` armazena scripts e binários necessários para iniciar e executar um servidor Tomcat. * A pasta `conf` armazena vários arquivos de configuração usados pelo Tomcat. * O arquivo `tomcat-users.xml` armazena as credenciais do usuário e suas funções atribuídas. * A pasta `lib` contém vários arquivos JAR necessários para o correto funcionamento do Tomcat. * As pastas `logs` e `temp` armazenam arquivos de log temporários. * A pasta `webapps` é a raiz do Tomcat e hospeda todas as aplicações. A pasta `work` atua como um cache e é usada para armazenar dados durante a execução. Cada pasta dentro de `webapps` deve ter a seguinte estrutura. * Uma pasta `WEB-INF` que contém o arquivo `web.xml`, que é o descritor de implantação para a aplicação web. * Uma pasta `classes` que contém as classes Java compiladas. * Uma pasta `lib` que contém os arquivos JAR necessários para a aplicação web. * Quaisquer outros arquivos ou pastas que fazem parte da aplicação web. ``` 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 ``` O arquivo mais importante entre eles é o `WEB-INF/web.xml`, que é conhecido como descritor de implantação. Este arquivo armazena **informações sobre as rotas** usadas pela aplicação e as classes que lidam com essas rotas.\ Todas as classes compiladas usadas pela aplicação devem ser armazenadas na pasta `WEB-INF/classes`. Essas classes podem conter lógica de negócios importantes, bem como informações confidenciais. Qualquer vulnerabilidade nesses arquivos pode levar à comprometimento total do site. A pasta `lib` armazena as bibliotecas necessárias para essa aplicação específica. A pasta `jsp` armazena [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), anteriormente conhecido como `JavaServer Pages`, que pode ser comparado a arquivos PHP em um servidor Apache. Aqui está um exemplo de arquivo **web.xml**. ```xml AdminServlet com.inlanefreight.api.AdminServlet AdminServlet /admin ``` A configuração `web.xml` acima define um **novo servlet chamado `AdminServlet`** que é mapeado para a **classe `com.inlanefreight.api.AdminServlet`**. Java usa a notação de ponto para criar nomes de pacotes, o que significa que o caminho no disco para a classe definida acima seria: * **`classes/com/inlanefreight/api/AdminServlet.class`** Em seguida, é criado um novo mapeamento de servlet para **mapear solicitações para `/admin` com `AdminServlet`**. Essa configuração enviará qualquer solicitação recebida para **`/admin` para a classe `AdminServlet.class`** para processamento. O descritor **`web.xml`** contém muitas informações **sensíveis** e é um arquivo importante para verificar ao aproveitar uma vulnerabilidade de **Inclusão de Arquivo Local (LFI)**. ### tomcat-users O arquivo **`tomcat-users.xml`** é usado para **permitir** ou negar o acesso às páginas de administração **`/manager` e `host-manager`**. ```xml !-- user manager can access only manager section --> ``` O arquivo nos mostra para que cada um dos papéis `manager-gui`, `manager-script`, `manager-jmx` e `manager-status` fornecem acesso. Neste exemplo, podemos ver que um usuário `tomcat` com a senha `tomcat` tem o papel `manager-gui`, e uma segunda senha fraca `admin` é definida para a conta de usuário `admin`. ## Referências * [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de cibersegurança**? Você 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)! * 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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live). * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).