Basic Tomcat Info
Grupo de Seguridad Try Hard
Evitar ejecutar con root
Para no ejecutar Tomcat con root, una configuración muy común es establecer un servidor Apache en el puerto 80/443 y, si la ruta solicitada coincide con una expresión regular, la solicitud se envía a Tomcat que se ejecuta en un puerto diferente.
Estructura Predeterminada
La carpeta
bin
almacena scripts y binarios necesarios para iniciar y ejecutar un servidor Tomcat.La carpeta
conf
almacena varios archivos de configuración utilizados por Tomcat.El archivo
tomcat-users.xml
almacena las credenciales de usuario y sus roles asignados.La carpeta
lib
contiene varios archivos JAR necesarios para el correcto funcionamiento de Tomcat.Las carpetas
logs
ytemp
almacenan archivos de registro temporales.La carpeta
webapps
es la raíz web predeterminada de Tomcat y alberga todas las aplicaciones. La carpetawork
actúa como una caché y se utiliza para almacenar datos durante la ejecución.
Se espera que cada carpeta dentro de webapps
tenga la siguiente estructura.
El archivo más importante entre estos es WEB-INF/web.xml
, conocido como el descriptor de despliegue. Este archivo almacena información sobre las rutas utilizadas por la aplicación y las clases que manejan estas rutas.
Todas las clases compiladas utilizadas por la aplicación deben almacenarse en la carpeta WEB-INF/classes
. Estas clases pueden contener lógica empresarial importante, así como información sensible. Cualquier vulnerabilidad en estos archivos puede llevar a la compromisión total del sitio web. La carpeta lib
almacena las bibliotecas necesarias para esa aplicación en particular. La carpeta jsp
almacena Jakarta Server Pages (JSP), anteriormente conocidas como JavaServer Pages
, que se pueden comparar con archivos PHP en un servidor Apache.
Aquí tienes un ejemplo del archivo web.xml.
El archivo de configuración web.xml
anterior define un nuevo servlet llamado AdminServlet
que está mapeado a la clase com.inlanefreight.api.AdminServlet
. Java utiliza la notación de punto para crear nombres de paquetes, lo que significa que la ruta en disco para la clase definida anteriormente sería:
classes/com/inlanefreight/api/AdminServlet.class
A continuación, se crea un nuevo mapeo de servlet para mapear las solicitudes a /admin
con AdminServlet
. Esta configuración enviará cualquier solicitud recibida para /admin
a la clase AdminServlet.class
para su procesamiento. El descriptor web.xml
contiene mucha información sensible y es un archivo importante para verificar al aprovechar una vulnerabilidad de Inclusión de Archivos Locales (LFI).
tomcat-users
El archivo tomcat-users.xml
se utiliza para permitir o denegar el acceso a las páginas de administración /manager
y host-manager
.
El archivo nos muestra a qué tiene acceso cada uno de los roles manager-gui
, manager-script
, manager-jmx
y manager-status
. En este ejemplo, podemos ver que un usuario tomcat
con la contraseña tomcat
tiene el rol manager-gui
, y se establece una segunda contraseña débil admin
para la cuenta de usuario admin
.
Referencias
Grupo de Seguridad Try Hard
Última actualización