# Library

### 🔍 **RECONOCIMIENTO**

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 172.17.0.2
```

para verificar la conectividad de red.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FBbVVUIsVhcfLwLqQ2Kt6%2Fimage.png?alt=media&#x26;token=abf2e149-fe26-4b97-81a5-0f179b8283bb" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

```bash
nmap -p- --open -sT --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FCnFL5mXbJJltoObzW36n%2Fimage.png?alt=media&#x26;token=3af9a2a9-1563-4a2b-92e5-de8da32533e3" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo, el puerto **22** perteneciente al servicio **SSH** y el puerto **80** perteneciente al servicio **HTTP** están abiertos, por lo que se procederá a indagar más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p22,80 -v 172.17.0.2
```

para obtener más información sobre esos puertos específicamente.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FPTdKhXWdnqgS8udsw8jx%2Fimage.png?alt=media&#x26;token=5d7eda0a-e815-41d1-8109-e5ae13295a9b" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Se ingresó la dirección IP en el navegador, lo que llevó a que la página web sobre la página por defecto Apache2.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FoavX8loc4oA9jwzduNtJ%2Fimage.png?alt=media&#x26;token=29829774-c2e3-4139-a457-d5e389481fa6" alt=""><figcaption></figcaption></figure>

De primeras, no se nos muestra nada, por lo que revisamos el código fuente por si hay alguna información oculta relevante pero no vemos nada.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F8F4cB2dCFTW8ncJL7Hia%2Fimage.png?alt=media&#x26;token=2346b024-199f-41c4-8183-ec7ef370abb9" alt=""><figcaption></figcaption></figure>

Ahora buscaremos directorios con la herramienta **Gobuster** a través de:&#x20;

```bash
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,htm,php,txt,xml,js -u http://172.17.0.2
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FQrFgZm4BR8jZISWOEVqP%2Fimage.png?alt=media&#x26;token=44893feb-5132-4e16-8427-9f9c109e9d86" alt=""><figcaption></figcaption></figure>

Hemos identificado un archivo `index.php` en el sistema. Vamos a examinar su contenido para obtener más información.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F0eQRTqKHAzSZbG5KKWC4%2Fimage.png?alt=media&#x26;token=3dbe3e53-6690-450b-8ae2-967a126047f5" alt=""><figcaption></figcaption></figure>

Al revisar el archivo `index.php`, encontramos una cadena que parece ser una posible contraseña. Dado que el puerto **22** (SSH) está abierto, y no hemos encontrado otros elementos de interés, procederemos a realizar un ataque de fuerza bruta para intentar encontrar un usuario que esté utilizando esta contraseña para acceder por **SSH**.

### 🚀 **EXPLOTACIÓN**

Con la información obtenida anteriormente, realizamos el comando:

```bash
hydra -L /opt/SecLists/Usernames/xato-net-10-million-usernames.txt -p JIFGHDS87GYDFIGD ssh://172.17.0.2 -t 64
```

que utiliza la herramienta **Hydra** para realizar un ataque de fuerza bruta contra el servicio **SSH** de una máquina con la IP **172.17.0.2** para obtener el usuario con esa contraseña.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F7fboUwjn4EK3Of9qNll2%2Fimage.png?alt=media&#x26;token=1f9445c3-4ba6-49ef-ac10-667c83e39492" alt=""><figcaption></figcaption></figure>

Al realizar el ataque de fuerza bruta, hemos descubierto el **usuario** de esa contraseña. Sabiendo esto, nos conectamos a través de **SSH** al usuario con el comando:

```bash
ssh carlos@172.17.0.2
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F7YJ2UYAnyfI9Ln0K6uyk%2Fimage.png?alt=media&#x26;token=e85659f0-799d-41c5-a987-8b117a1a0255" alt=""><figcaption></figcaption></figure>

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FytbBZH6gMXdT5hp8oWvl%2Fimage.png?alt=media&#x26;token=9238e10b-d5e8-477d-aa24-320ef02d580a" alt=""><figcaption></figcaption></figure>

Carlos tiene permisos para ejecutar un script con privilegios de **root** utilizando el comando `sudo`. Vamos a investigar cómo funciona este script con el objetivo de identificar una posible manera de escalar nuestros privilegios en el sistema.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FrSugpEgBA3u5wPHaNjMJ%2Fimage.png?alt=media&#x26;token=1633836a-d3ca-49c9-b061-e256e7017de4" alt=""><figcaption></figcaption></figure>

Contamos con un script que se encarga de copiar archivos a una ruta específica. Lo interesante es que este script depende de una librería particular. Dado que la máquina se llama *Library*, podemos inferir que es posible llevar a cabo un ataque de ***Library Hijacking***. Esto implica que, si logramos crear una librería maliciosa, podríamos hacer que el script ejecute nuestras órdenes al intentar acceder a ella.

Además, como tenemos la capacidad de ejecutar el script con privilegios de **root**, podemos utilizar esta técnica para realizar cualquier cambio en el sistema. En este caso, emplearemos el ataque para otorgar permisos **SUID** al binario `bash`, lo que nos permitirá escalar privilegios de manera efectiva.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fa8eHRLhqS1zinQCtfXUV%2Fimage.png?alt=media&#x26;token=6813579f-f92b-400d-9526-f1e0b40b2bf2" alt=""><figcaption></figcaption></figure>

Hemos identificado que tenemos permisos de escritura en el directorio `/opt`. Aprovecharemos esta situación creando una librería maliciosa con el mismo nombre que la librería requerida por el script. Dentro de esta librería, incluiremos las instrucciones que deseamos ejecutar.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FOqF1hxi36yz0m6JYXnaN%2Fimage.png?alt=media&#x26;token=383ebd8b-2d42-4da4-a128-1e8330e4b55f" alt=""><figcaption></figcaption></figure>

Con todo listo, simplemente necesitamos ejecutar el script con `sudo`. Cuando el script intente acceder a la librería, buscará primero en el directorio actual, lo que activará nuestra carga maliciosa.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FDBWMyjoyO8wqquA1aJ5B%2Fimage.png?alt=media&#x26;token=beb71980-f5f2-43d8-a3a0-1e778a686a04" alt=""><figcaption></figcaption></figure>

Hemos logrado modificar los permisos del binario `bash`. Ahora, solo queda utilizar el comando `bash -p` para iniciar una **shell** con privilegios de **root**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FFMn1IUxUx8vCrFnOQajx%2Fimage.png?alt=media&#x26;token=b6cac12c-28ea-40d2-932e-9e9a062e3a41" alt=""><figcaption></figcaption></figure>
