> For the complete documentation index, see [llms.txt](https://rodgar.gitbook.io/rodgar/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rodgar.gitbook.io/rodgar/plataformas/the-hackers-labs/the-hackers-labs-templo.md).

# The Hackers Labs Templo

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FvUGPvUXGvXFB8x7Xy0yl%2F1.png?alt=media&amp;token=3550816d-526a-456b-b3d1-cfd4d64acd18" alt=""><figcaption></figcaption></figure>

Primero escaneo de puertos para observar cuantos tiene abiertos el host.

***

```javascript
# Nmap 7.94SVN scan initiated Wed Aug  7 12:13:09 2024 as: nmap -sCV -p22,80 -oN target.txt 172.16.241.182
Nmap scan report for 172.16.241.182
Host is up (0.00072s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 bc:8f:97:fa:60:eb:ed:b2:8c:3b:c0:65:3b:48:69:f1 (ECDSA)
|_  256 f9:b0:9b:20:8f:3a:7b:33:e7:95:a5:43:e7:9b:c6:59 (ED25519)
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-title: RODGAR
|_http-server-header: Apache/2.4.58 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Aug  7 12:13:23 2024 -- 1 IP address (1 host up) scanned in 13.31 seconds
```

Ahora hacemos un escaneo mas profundo para observar las versiones y servicios que corren para cada uno de los dos puertos en cuestion.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2F8HU42uSvJoezBl8Y30Bd%2F2.png?alt=media&amp;token=eca1ee3f-f077-4595-b605-0e244e6c035c" alt=""><figcaption></figcaption></figure>

Si nos vamos al sitio web observamos una web simple, haciendo enfoque en el tipo de fuente de algunas palabras.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FJMUyKEB0S3ZIO4afJ47H%2F3.png?alt=media&amp;token=809e56a9-81b0-4571-aa6d-4858e0befa15" alt=""><figcaption></figcaption></figure>

Si fuezzeamos la web observamos que hay un directorio wow que es el mas extraño ya que los demas son mas comunes de encontrar.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FbHLSH1tfOQMPyoUKrx9i%2F4.png?alt=media&amp;token=2817c7c9-27cf-4441-ab35-61141f4b4493" alt=""><figcaption></figcaption></figure>

Si vamos al directorio wow, observamos que nada mas un archivo de texto con una especie de pista vamos al /opt. Cosa que no es de ayuda ahora mismo.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FDAfbyRcZcS507jGb5Yck%2F5.png?alt=media&amp;token=0e092486-d5db-476e-acda-6defa2f24792" alt=""><figcaption></figcaption></figure>

Recuerdas que la web hacia enfoque en algunas palabras, pues si usamos NAMARI como directorio, nos dirige a esta web donde podemos observar una subida de archivos y un LFI en el formulario Archivo ah Incluir, observamos que podemos leer el /etc/passwd.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FxPqH0C68aiK6pn4PO4i8%2F6.png?alt=media&amp;token=acc7610b-f8f4-4a74-9534-ec1693c7ca2a" alt=""><figcaption></figcaption></figure>

Nos vamos ah local, y vamos ah intentar subir un archivo php a la web.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FUjMIfq1xZ2SjICRo1AMt%2F7.png?alt=media&amp;token=399cb55b-0400-46c3-9655-21cd13e2bee8" alt=""><figcaption></figcaption></figure>

Observamos que el php se subio correctamente.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FniQUpNudv4oFo2mUYG5q%2F8.png?alt=media&amp;token=63b21e89-d5c6-4cd5-bb53-395548d9a9b4" alt=""><figcaption></figcaption></figure>

Ahora si fuzzeamos el directorio actual en el que estamos trabajando, observamos que encontramos un uploads donde seguramente se subio nuestra archivo php.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2Fn0x75jWm9OLBVr5OgbmG%2F9.png?alt=media&amp;token=e9e9c438-68d6-45e5-a009-8999273bd2a4" alt=""><figcaption></figcaption></figure>

Vamos al directorio, y buscamos nuestro archivo php, pero observamos que no lo encuentra donde se supone que debio haberse subido.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FDZnrphR4SmlmFaStjBnP%2F10.png?alt=media&amp;token=bd6e7e6e-f405-41c0-ae59-95336b06feb6" alt=""><figcaption></figcaption></figure>

Bueno como tenemos un LFI, vamos a ver como esta montado esto usando wrappers pa leer el index.php y traernoslo codificado, para tratar de entender que esta pasando, porque mi php se perdio.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FPPK0f1iAuOPDrmpQ5Kno%2F11.png?alt=media&amp;token=25a32ea4-7734-4f77-9564-f42d9bbe963f" alt=""><figcaption></figcaption></figure>

1. Decodificamos lo que extraimos.

Y bueno observamos que en las lineas marcadas lo que esta haciendo es formateando el nombre original con el que se sube al servidor y luego basado en el nombre lo cifra en root13.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FzxuMz0sI77xyTTUqwrnr%2F12.png?alt=media&amp;token=b9c08905-064c-4531-a24e-1d39d8739509" alt=""><figcaption></figcaption></figure>

Entendiendo lo anterior vamos ah pasar nuestro nombre del php que subimos ah root13, el resultado del cifrado seria el como se guardo en el servidor.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FBpCC7pBUjEb0WYCynUED%2F13.png?alt=media&amp;token=225fa2d6-4c1a-4a64-8eb9-2279700b502e" alt=""><figcaption></figcaption></figure>

Ahora si encuntra nuestro php, y bueno que hacemos, pues nos enviamos una rever a nuestra maquina atacante.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2F7OfhDyGzEoFz9Vt0omsS%2F14.png?alt=media&amp;token=8a723b53-831c-4127-a87e-7a76d4043a2b" alt=""><figcaption></figcaption></figure>

Ya dentro recordar la pista vamos al /opt, encontramos un directorio con un backup.zip.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FPKfOyOQ7r6DWWKwxSMG1%2F15.png?alt=media&amp;token=89592793-f737-4460-8dbc-775fa89f7f14" alt=""><figcaption></figcaption></figure>

Nos traemos al local ese .zip para tratarlo.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2Fl3DTqhYLgoGSLx5M5UOl%2F16.png?alt=media&amp;token=346026f3-acb7-4998-9789-57a8efb565f3" alt=""><figcaption></figcaption></figure>

Observamos que si intentamos extraer el contenido nos pide contraseña.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FSjZiAFihO185Snoo1UVE%2F17.png?alt=media&amp;token=9b2fd13a-09ab-4b39-9dfb-857a86bd213c" alt=""><figcaption></figcaption></figure>

1. Nos creamos un hash para el .zip.
2. Haciendo uso de john obtenemos la contraseña. Si la estas resolviendo por primera vez tu consulta es tipo john -w:/usr/share/wordlist/rockyou.tx hash.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FRRWW0tcCnkIRmDExRn7W%2F18.png?alt=media&amp;token=77b17d1e-bbb8-484f-a9b9-f593149f2e0b" alt=""><figcaption></figcaption></figure>

Con la contraseña, extraemos el contenido del .zip, tenemos un backup el cual contiene un rodgar.txt con una especie de contraseña.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FJyWzpS34GAQa3yRmoa6X%2F19.png?alt=media&amp;token=cf7978fd-f496-436d-94f9-5fc54b7735b0" alt=""><figcaption></figcaption></figure>

Si leemos el passwd hay un usuario rodgar, intentamos migrar al usuario rodgar con la contraseña encontrada y funciona haciendo un userPivoting, Mientras que observamos que rodgar esta el grupo lxd lo cual nos ayudara ah escalar privilegios.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2F2jDCdmyk5ibBX9ifzWYr%2F20.png?alt=media&amp;token=1d671c35-98f2-4204-b8eb-f4bd1c66c515" alt=""><figcaption></figcaption></figure>

1. Nos vamos ah searchsploit y buscamos lxd encontramos un script.
2. Nos lo descargamos ah local.
3. Y bueno nos creamos un directorio lxd pa trabajar mas limpio.

Le haces un cat al .sh y sigue las instrucciones que se te proporcionan.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FW2tHlmOE2pPGd13HcZXA%2F21.png?alt=media&amp;token=ceb6b5da-376b-4652-86e1-3db064312a4b" alt=""><figcaption></figcaption></figure>

Ahora el alpine y el script nos los transferimos a la maquina victima al directorio /dev/shm.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FyeT4BocFarPqaYqAPelm%2F22.png?alt=media&amp;token=6df50324-b0db-435c-bd45-4ef1f9a090bd" alt=""><figcaption></figcaption></figure>

Ejecutamos .sh, observamos que si hacemos un whoami somos root y lo somos pero en el contenedor no en el host.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2F7Fw78VYx2NfMJrEBJCX0%2F23.png?alt=media&amp;token=c61ee230-1b09-44b1-88c0-79e67b977123" alt=""><figcaption></figcaption></figure>

* Punto numero uno en una nueva terminal nos conectamos por ssh, con el usuario rodgar y su contrasña si hacemos un ls de bash observamos que no es SUID.
* Entonces en el contenedor nos dirigimos ah /mnt/root/bin porque en el codigo arrastra source=/ path=/mnt/root recursive=true y le damos permisos SUID a la bash.
* Ahora desde la otra terminal si hacemos lo del primer paso observamos que la bash ya es SUID.

***

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FYccdmwguZD8aPhq3YtbM%2F24.png?alt=media&amp;token=0b610fc7-e06a-436b-82f7-aae5ad521575" alt=""><figcaption></figcaption></figure>

Ahora hacemos un bash -p y somos root en el host no en el contenedor y pues buscamos nuestras banderas.

MAQUINA RESUELTA
