Tomcat
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Discovery
Normalmente se ejecuta en el puerto 8080
Error común de Tomcat:
Enumeration
Identificación de versión
Para encontrar la versión de Apache Tomcat, se puede ejecutar un simple comando:
Esto buscará el término "Tomcat" en la página de índice de documentación, revelando la versión en la etiqueta de título de la respuesta HTML.
Ubicación de Archivos del Administrador
Identificar las ubicaciones exactas de los directorios /manager
y /host-manager
es crucial ya que sus nombres podrían ser alterados. Se recomienda una búsqueda de fuerza bruta para localizar estas páginas.
Enumeración de Nombres de Usuario
Para versiones de Tomcat anteriores a la 6, es posible enumerar nombres de usuario a través de:
Credenciales Predeterminadas
El /manager/html
directorio es particularmente sensible ya que permite la carga y despliegue de archivos WAR, lo que puede llevar a la ejecución de código. Este directorio está protegido por autenticación HTTP básica, siendo las credenciales comunes:
admin:admin
tomcat:tomcat
admin:
admin:s3cr3t
tomcat:s3cr3t
admin:tomcat
Estas credenciales se pueden probar usando:
Otro directorio notable es /manager/status
, que muestra la versión de Tomcat y del sistema operativo, ayudando en la identificación de vulnerabilidades.
Ataque de Fuerza Bruta
Para intentar un ataque de fuerza bruta en el directorio del administrador, se puede usar:
Along with setting various parameters in Metasploit to target a specific host.
Vulnerabilidades Comunes
Divulgación de Contraseña en Backtrace
Acceder a /auth.jsp
puede revelar la contraseña en un backtrace bajo circunstancias afortunadas.
Codificación Doble de URL
La vulnerabilidad CVE-2007-1860 en mod_jk
permite la codificación doble de URL para la traversía de rutas, lo que permite el acceso no autorizado a la interfaz de gestión a través de una URL especialmente diseñada.
Para acceder a la web de gestión de Tomcat, ve a: pathTomcat/%252E%252E/manager/html
/examples
Las versiones de Apache Tomcat de 4.x a 7.x incluyen scripts de ejemplo que son susceptibles a la divulgación de información y ataques de scripting entre sitios (XSS). Estos scripts, listados de manera exhaustiva, deben ser revisados para detectar accesos no autorizados y posibles explotaciones. Encuentra más información aquí
/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
Explotación de Traversía de Ruta
En algunas configuraciones vulnerables de Tomcat puedes obtener acceso a directorios protegidos en Tomcat usando la ruta: /..;/
Así que, por ejemplo, podrías acceder a la página del gestor de Tomcat accediendo a: www.vulnerable.com/lalala/..;/manager/html
Otra forma de eludir rutas protegidas usando este truco es acceder a http://www.vulnerable.com/;param=value/manager/html
RCE
Finalmente, si tienes acceso al Gestor de Aplicaciones Web de Tomcat, puedes subir y desplegar un archivo .war (ejecutar código).
Limitaciones
Solo podrás desplegar un WAR si tienes suficientes privilegios (roles: admin, manager y manager-script). Esos detalles se pueden encontrar en tomcat-users.xml generalmente definido en /usr/share/tomcat9/etc/tomcat-users.xml
(varía entre versiones) (ver sección POST).
Metasploit
MSFVenom Reverse Shell
Crear el war para desplegar:
Sube el archivo
revshell.war
y accede a él (/revshell/
):
Shell bind y reverse con tomcatWarDeployer.py
En algunos escenarios esto no funciona (por ejemplo, versiones antiguas de sun)
Descargar
Shell inversa
Shell de enlace
Usando Culsterd
Método manual - Web shell
Crea index.jsp con este contenido:
También podrías instalar esto (permite la carga, descarga y ejecución de comandos): http://vonloesch.de/filebrowser.html
Método Manual 2
Obtén un shell web JSP como este y crea un archivo WAR:
POST
El nombre del archivo de credenciales de Tomcat es tomcat-users.xml
Otras formas de recopilar credenciales de Tomcat:
Otras herramientas de escaneo de tomcat
Referencias
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated