APACHE TOMCAT (RCE)
Explotar apache tomcat para obtener acceso remoto al servidor.
Última actualización
Explotar apache tomcat para obtener acceso remoto al servidor.
Última actualización
Estrictamente hablando, Tomcat no es un servidor web como Apache HTTPS Server o NGINX.
Comenzado en 1999 y desarrollado como un proyecto de código abierto por la Apache Software Foundation (ASF), Apache Tomcat es un contenedor Java Servlet, o contenedor web, que proporciona la funcionalidad extendida para interactuar con Java Servlets, al tiempo que implementa varias especificaciones técnicas de la plataforma Java: JavaServer Pages (JSP), Java Expression Language (Java EL) y WebSocket.
Este es un software que permite que un servidor web maneje contenido web dinámico basado en Java utilizando el protocolo HTTP. JSP es una tecnología similar que permite a los desarrolladores crear contenido dinámico utilizando documentos HTML o XML. En términos de su capacidad para habilitar contenido dinámico, los Servlets de Java y JSP son ampliamente comparables a PHP o ASP.NET, solo basados en el lenguaje de programación Java.
Al reunir todas estas tecnologías basadas en Java, Tomcat ofrece un entorno de servidor web «Java puro» para ejecutar aplicaciones creadas en el lenguaje de programación Java.
Si bien Apache es un servidor web HTTPS tradicional, optimizado para manejar contenido web estático y dinámico (muy a menudo basado en PHP), carece de la capacidad de administrar Servlets Java y JSP. Tomcat, por otro lado, está casi totalmente orientado al contenido basado en Java. De hecho, Tomcat se desarrolló originalmente como un medio para proporcionar la funcionalidad JSP que Apache carecía.
En muchas ocasiones nos topamos con servidores que contienen una instancia de Apache Tomcat con credenciales conocidos o con los credenciales por defecto. Esto nos permite obtener fácilmente acceso remoto al servidor de las maneras que vamos a ver a continuación.
admin
password
admin
[en blanco]
admin
Password1
admin
password1
admin
admin
admin
tomcat
both
tomcat
manager
manager
role1
role1
role1
tomcat
role
changethis
root
Password1
root
changethis
root
password
root
password1
root
r00t
root
root
root
toor
tomcat
tomcat
tomcat
s3cret
tomcat
password1
tomcat
password
tomcat
[en blanco]
tomcat
admin
tomcat
changethis
La primera vulnerabilidad que vamos a ver es mod_jk en CVE-2007-1860. Esta vulnerabilidad permite realizar path traversal mediante doble encoding de la URL.
Es decir, para acceder al Tomcat app manager vamos a:
[rutaTomcat]/%252E%252E/manager/html
Puede ser que para enviar una webshell tengamos que utilizar este truco y mandar una coockie o una token SSRF.
Para acceder a una backdoor puede ser que lo necesitemos tambien.
Algunos de los ejemplos de este directorio (incluido en Apache Tomcat v4.x - v7.x) pueden ser utilizados por el atacante para obtener información del objetivo.
Algunos de ellos son vulnerables a XSS:
/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
En algunas versiones vulnerables de Tomcat podemos acceder a directorios protegidos utilizando la ruta /..;/
o /;param = value
Por ejemplo:
www.vulnerable.com/lalala/..;/manager/html
www.vulnerable.com/;param=value/manager/html
Por último, si tienes acceso al Tomcat app Manager puedes subir y desplegar un archivo .war (ejecutable).
Solo podrás desplegar un archivo WAR si tienes suficientes privilegios (roles: admin, manager, manager-script).
Estos detalles se pueden ver normalmente en:
/usr/share/tomcat9/etc/tomcat-users.xml
Después debes subir este archivo y acceder a www.vulnerable.com/revshell
Creamos un archivo index.jsp con el siguiente contenido:
Luego lo convertimos a WAR con los siguientes comandos:
DespuésDespués debes subir este archivo y acceder a www.vulnerable.com/webshell