> For the complete documentation index, see [llms.txt](https://alerodriguezm99.gitbook.io/bariho/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alerodriguezm99.gitbook.io/bariho/walkthrough/tryhackme/25-convertmyvideo-linux.md).

# 25 \~ ConvertMyVideo - Linux

Lo primero que haremos será verificar que tenemos conexión con la maquina, mediante un ping, además mediante el TTL podemos intuir que sistema operativo esta operando

![](/files/pwf7lZywZFVe5Ai5pV2j)

En este caso el TTL es de 63 siendo de una maquina Linux, aunque realmente el TTL de un Sistema Linux es de 64, esto se debe a que pasa por varios nodos intermediarios que disminuyen el TTL.

![](/files/eWnaJLiBu7sythvrNPOs)

### 1. Escaneo de puertos

Para escanear los puertos utilizaremos la herramienta nmap.

![](/files/YEvB97C1p9rWgIBFDUPJ)

> Descripción de los parámetros:
>
> * **-p-** : Escanea los puertos especificados, en este caso escanea los 65535 puertos.
> * **--open** : Muestra solo los puertos abiertos.
> * **-sS** : Escanea mediante TCP SYN.
> * **--min-rate** : Envía paquetes no mas lentos que el número indicado por segundo en nuestro caso 5000.
> * **-Pn** : Omite el descubrimiento de host.
> * **-n** : No realiza resolución DNS.
> * **-vvv** : Muestra la información mientras se esta realizando el escaneo.
> * **IP** : La IP que queremos escanear.
> * **-oG** : Guarda la salida del escaneo en un formato grepeable.

![](/files/V4APch3TKaI2CWwwlJSX)

Una vez terminado el escaneo, haremos otro escaneo mas exhaustivo de los puertos encontrados, para saber mas información acerca de que servicios corren en dichos puertos.

![](/files/Rhh4DANCOGZNGOGrsMEA)

> Descripción de los parámetros:
>
> * **-p** : Escanea los puertos especificados.
> * **-sC** : Lanza varios scripts defaults de nmap.
> * **-sV**  : Determina los servicios que están corriendo en los puertos además de información extra.
> * **IP** : La IP que queremos escanear.
> * **-oN** : Guarda la salida en el formato de nmap.

![](/files/bRUXppGeHFm1oNejOfZY)

### 2. Recolección de información

Al abrir la pagina web, encontramos un convertidor de video, vamos a interceptar una petición para ver como se manda esa petición y ver si podemos manipularla.

![](/files/sqxay5b6cq0cextW7IOQ)

Con el complemente FoxyProxy, hacemos que las peticiones pasen por nuestro BurpSuite.

![](/files/emaQz61r75nfcmDn7gQm) ![](/files/PSl9kzFOnGYfW2Lv0PiZ)

Lo mandamos al Repeater (Ctrl +R), para poder trabajar mas cómodo con la petición. Probamos ha ejecutar un comando simple.&#x20;

![](/files/X0JhyjgcWIpcxSB2Bzya)

Y tenemos ejecución de comandos.&#x20;

![](/files/8mribYIC4staZKea8KqY)

Al intentar lanzar una reverse shell, no se ejecuta el comando, y esto es debido a los espacios que contiene el one liner.&#x20;

Cambiamos los espacios por una variable de entorno llamada **${IFS}** y ya podemos ejecutar comandos con espacios, pero seguimos sin poder ejecutar one liner, vamos a subir un archivo y ejecutarlo desde la propia maquina.

### 3. Ganando acceso a la maquina

Descargamos una [**reverse shell php**](https://github.com/pentestmonkey/php-reverse-shell)

Ahora, configuramos la reverse shell con nuestra IP y Puerto, y la subimos a la maquina mediante wget.&#x20;

Antes de ello levantamos un servidor con python para poder descargar la reverse shell en la maquina victima.&#x20;

![](/files/Opfft19tYLZVD8V1Px9F)

![](/files/pi15r39gF6D3eWOgfwZs)

Y recibimos un get en nuestro servidor de python, ahora nos queda ejecutar la reverse shell en la maquina victima.&#x20;

No antes ponernos en escucha con la herramienta nc por el puerto colocado en la reverse shell. Y ejecutamos el archivo.&#x20;

![](/files/A2hLuvzQdVbZqkG1aAmE)

> Descripción de los parámetros:
>
> * **-n :** Solo direcciones de IP numéricas.
> * **-I** : Modo de escucha, para conexiones entrantes.
> * **-v** : Muestra información por pantalla.
> * **-p** : Numero del puerto.
> * **PUERTO** : El puerto que se pondrá en escucha.

![](/files/JLfn0cS04qZ1TkiW7RPa)

Y estamos dentro de la maquina. \[16]

### Tratamiento de la TTy

![](/files/fbSGnqJyO7w6UKcV9UsQ)

### 4. Escalando privilegios

Enumerando el sistema vemos que hay un archivo .sh

&#x20;Y podemos manipularlo

![](/files/c8L8CHvS2XoPJbcS1rcm)

![](/files/ghqgGJzQ5cmKamrmqGoc)

Vamos a añadirle una línea para darle permiso SUID a la /bin/bash y ver si lo ejecuta root.

![](/files/himTINJXmGjWgU7TrGE5)

Ahora esperamos a ver si root lo ejecuta. Y si root ejecuta ese script, dándonos permiso SUID a la /bin/bash.

![](/files/DG8ag85u4PhMO6VQ4qSY)

Ahora con un simple bash -p, nos dara una shell temporal como root.&#x20;

Y somos root.

![](/files/417NH8CPw41tGGcSHHPB)
