> For the complete documentation index, see [llms.txt](https://1gnotus.gitbook.io/ignotus_pwn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://1gnotus.gitbook.io/ignotus_pwn/proving-ground-practice-and-play/writeup/maquina-pelican-rce-zookeeper-v1-web-ui-+-rce-+-privesc-gcore-pid-+-extract-password-strings-root.md).

# MAQUINA PELICAN (RCE ZooKeeper v1 Web UI + RCE + PrivEsc 'gcore pid + extract password 'strings' = root)

Envié un ping para verificar la conectividad y según el ttl puedo ver que estoy ante una maquina linux.

![](/files/wkGt60BQ4FfGIDvv1BqW)

Ejecute nmap con lo siguientes comandos para ver los puertos abiertos:

![](/files/mB9MuR8uXWCkipMRU04g)

```
sudo nmap -p- --open -sS --min-rate 4000 -vvv -n -Pn 192.168.134.98 -oG Basicscan.tx
# -p-: escaneo todo el rango de puertos (65535)
# --open: le solicitamos a nmap que me escaneo solo los puertos abiertos
# -sS: Realiza un escaneo sigiloso (SYN scan), lo que hace es enviar un paquete de s
# --min-rate: es la contidad de paquetes que queremos enviar (velocidad)
# -vvv: muestra informacion a medidad que vaya encontrando los puertos.
# -n: no realiza solicitudes DNS.
# -Pn: evita la exploracion de puertos y solo realiza la exploracion del host.
```

Seguido ejecuto una serie de scripts básicos de reconocimientos incluidos en nmap como también unos script para ver las versiones de esos servicios.}

![](/files/nKSleNCTaiPWA3PQsj4V)

```
nmap -p <puertos encontrados> -sCV <IP> -On fullscan.txt
```

![](/files/WZFtxAnUHqHhZmZuV2X1)

Ya terminado el escaneo, observo muchas cosas interesante:

&#x20;`En el puerto 22 es vulnerable a enumeración n de usuarios, pero no poseo usuarios, lo mismo con el puerto 2222.`

`En el puerto 139/445 esta corriendo una version samba 4.9.5`

Actualmente no contiene nada.

![](/files/NWbCpiXtK99GwFtziZGs)

`En el puerto 631 esta corriendo un servico IPP 2.1`

`llamado CUPS 2.2.10`

Procedo a buscar info sobre este servicio, lo que también veo es que contiene una vulnerabilidad "CVE-2018-4300"

![](/files/9lKeqacdj4ESFokTRi1Z)

`En el puerto 2181 esta corriendo un servicio zookeeper 3.4.6`

Esto es interesante porque al parecer contiene datos criticos.

![](/files/3U1Ta3VTOcOn2RIKOflV)

`El puerto 8080 http contiene un pagina web "jetty 1.0" que no contiene nada interesante`

`El puerto 8081 corre otro servidor web ngix este contiene una interfaz grafica de zookeeper con su version 1.0`&#x20;

<figure><img src="/files/dfbOFjTyHyFzauMrWWaK" alt=""><figcaption></figcaption></figure>

Como ya tengo una visión sobre lo que tengo, lo que realizo es una búsqueda de exploit o vulnerabilidades de lo encontrado, mientras tanto dejo correr enum4linux para ver mas info sobre la maquina.

```
enum4linux-ng 192.168.134.98
```

<div><figure><img src="/files/Gewwra4FUw3KHwxmu1Cf" alt=""><figcaption></figcaption></figure> <figure><img src="/files/9VXNehs2Yk6F6N5eafgj" alt=""><figcaption></figcaption></figure> <figure><img src="/files/QoiGljb53tzxCvVpwCRw" alt=""><figcaption></figcaption></figure></div>

Para el servicio IPP > CUPS encontré varias vulnerabilidades las siguientes:

<figure><img src="/files/4FwSP2WolMqJmNK7hw6u" alt=""><figcaption></figcaption></figure>

Para zookeeper lo siguiente:

<figure><img src="/files/Rqktx9TR1VznjiBUg2oW" alt=""><figcaption></figcaption></figure>

Me centre en la vulnerabilidad de ZooKeeper para ellos busque información sobre esta vuln y encontré que se puede realizar un RCE, para CUPS también se podría realizar un RCE.

INFO:

<figure><img src="/files/pOdO3vCJTEzvPfakf856" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TtBWHkwjD5lFuZl7wsHn" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/OP7iz0eqUGUAGbmwZHR3" alt=""><figcaption></figcaption></figure>

Para realizar la explotación del zookeeper segun la Prueba de concepto realizo lo siguiente:

* . Me dirijo a Config
* . Activo la sección editing a ON
* . Luego coloco mi revershell dentro del apartado "java.env strings"
* . guardo la modificación con commit > all at once > OK
* . y en otra terminal me pongo a la escucha con netcat.

<figure><img src="/files/cHrNnD9WviFB9LXFngih" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/n1Es9mwbMi6GAyOfNFVw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/pGCMGmS7reLR9LrHhi8W" alt=""><figcaption></figcaption></figure>

Luego de unos momentos se realiza la conexión, y ya me encuentro dentro de la maquina.&#x20;

Realizo un breve reconocimiento de la maquina.

```
uname -a; lsb_release -a; cat /etc/passwd | grep 'sh$', id
```

<figure><img src="/files/cbG8jg4hyrqn3oCMqfLn" alt=""><figcaption></figcaption></figure>

Busco la forma de escalar privilegios, para ellos ejecuto el siguiente comando:

```
find / -user root -perm /4000 2>/dev/null
```

<figure><img src="/files/3CIoHVzt8AcEkFACfSYz" alt=""><figcaption></figcaption></figure>

En esta parte lo que me llamo la atención fueron estos binarios, tanto como ntfs-3g y bwrap son vulnerables a escalada de privilegios.

ntfs-3g se puede abusar de esto pero el ubuntu debe ser de version 7/8/9 y esta version es 10.

Por lo que me centro en ntfs-3g.

<figure><img src="/files/GRvHLXeHrShqELSl2p9i" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ArDQ8roF9oRo2ztOnLKJ" alt=""><figcaption></figcaption></figure>

Ejecute un sudo -l y vi algo interesante:

<figure><img src="/files/Vkivq3nTqR9Azjo6xJvd" alt=""><figcaption></figcaption></figure>

El binario gcore no requiere contraseña para ser ejecutado por lo que paso a buscar este binarios en gtfobins.

<figure><img src="/files/m9o30quHfaGsMIj5irF0" alt=""><figcaption></figcaption></figure>

Como no se el PID ya que me lo requiere, con el comando ps aux listo todos los procesos.

`ps aux`

<figure><img src="/files/Y6L4PZev76F5rrumJmJz" alt=""><figcaption></figcaption></figure>

Ese binario se encuentra en la búsqueda de binario que realice con el comando find.

Con sudo ejecuto lo requiero por gtfobins y al parecer me crea un archivo llamado core.494.

<figure><img src="/files/7vM2bc223eO2uAWNalcl" alt=""><figcaption></figcaption></figure>

Con el comando strings leo el contenido y observo que hay una ruta siendo ejecutado como root.

<figure><img src="/files/WDlMElQmiOv8xq7mjG3Z" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/lz9VIOrNq5tmgzT03GzL" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/5OaYYgu45IxBim7qzU1Q" alt=""><figcaption></figcaption></figure>

Realizo un su root y coloco esta contraseña y ya soy root.
