# Stapler

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsytZrRwxTCde2NTTk4AQ%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data.png?alt=media&#x26;token=e226b885-998e-4037-a8cd-80f9e7ba59fe" alt=""><figcaption></figcaption></figure>

## Enumeración

### Puertos abiertos

Comenzamos enumerando que servicios están abiertos en la máquina Stapler.

```
nmap -p- --open --min-rate 1000 -Pn -n -vvv 192.168.98.148
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F4TMy11nDhfMWZHVoaLul%2Fimage.png?alt=media&#x26;token=0bf8892f-eb7a-4db0-8475-39a0fc5a4d00" alt=""><figcaption></figcaption></figure>

La máquina tiene 8 puertos abiertos. El siguiente paso será la enumeración detallada de estos servicios.

```
nmap -p21,22,53,80,139,666,3306,12380 -Pn -n -sVC -vvv 192.168.98.148
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F1WP4xvfvJdA4mQD3J3Bq%2Fimage.png?alt=media&#x26;token=bd722340-c91f-4280-9c85-dfec5a417a2f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fld1erU7gE4e9rSj0sKxN%2Fimage.png?alt=media&#x26;token=a1d6a304-5b26-4262-a84f-096b790918bc" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQz5SdqC6ZrdlIdmiiB0V%2Fimage.png?alt=media&#x26;token=cd4f0f54-7dad-4f3c-90df-482409be691f" alt=""><figcaption></figcaption></figure>

A simple vista interesante, el login anonymous en el servicio FTP, que se está ejecutando un servicio MySQL en el puerto 3306, un puerto extraño, el 666 y un servidor Web que se está ejecutando en el puerto 12380.

### &#x20;Enumerando FTP

Identificamos que vSFTP se estaba ejecutando en el puerto 21 así que intentaremos acceder a él utilizando una conexión FTP anónima.

```
ftp 192.168.98.148
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsujaJFncJkJoeHKw4sam%2Fimage.png?alt=media&#x26;token=82f80f99-38a7-44de-8f93-81390872d877" alt=""><figcaption></figcaption></figure>

Al acceder descubrimos un directorio que vamos a descargar a nuestra máquina de ataque.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOwtidUNeZ49T0PcTHPTq%2Fimage.png?alt=media&#x26;token=0c2c781c-a3ba-4e70-92ab-c7086d8af720" alt=""><figcaption></figcaption></figure>

Obtenemos dos posibles nombres de usuarios y la existencia de otra cuenta de usuario para el servicio FTP.

### Enumerando SMB (Puerto 139)

En la máquina objetivo se está ejecutando un servicio de SMB en el puerto 139. Con enum4linux vamos a tratar de extraer información interesante del sistema&#x20;

```
enum4linux 192.168.98.148
```

Obtenemos una lista con usuarios del sistema.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FjHqSc1eH34Z5zt24i7no%2Fimage.png?alt=media&#x26;token=c085750e-f529-43a2-b9a4-eba9c795bdc1" alt=""><figcaption></figcaption></figure>

Vamos a tratar de limpiar esta lista para dejar únicamente los nombres.

```
cat users.txt | cut -d '\' -f2 | cut -d ' ' -f1 > user_list.txt
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FjjaMfCtUZtwuk7Sgz4TA%2Fimage.png?alt=media&#x26;token=586f7b0e-ff8e-4201-ad17-23e627c97d1b" alt=""><figcaption></figcaption></figure>

## Explotación

Tenemos una lista de posibles usuarios. Al mismo tiempo, esta máquina está ejecutando un servicio SSH en el puerto 22. Vamos a realizar un ataque de fuerza bruta para tratar de "encontrar" credenciales válidas. Vamos a hacer de dos maneras, utilizando la lista de usuarios que tenemos como lista de nombres y de passwords. Y si este no resulta exitoso, utilizaremos el diccionario "rockyou" como lista de contraseñas. Para realizar el ataque, utilizaremos la herramienta "hydra".

```
hydra -L 'user_list.txt' -P 'user_list.txt' -f 192.168.98.148 -s22 ssh
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Ftwe7nYZyo6zMBJ37vYOB%2Fimage.png?alt=media&#x26;token=3d48701b-855d-4dd0-9387-56ae937661c0" alt=""><figcaption></figcaption></figure>

Obtenemos un resultado. SHayslett:SHayslett. Vamos a tratar de acceder al sistema a través de SSH.

```
ssh SHayslett@192.168.98.148
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fw3OxZrXrPMKCMsdf7aLl%2Fimage.png?alt=media&#x26;token=3ecbf933-720c-4657-b4f7-c82f3a6da969" alt=""><figcaption></figcaption></figure>

Localizamos la flag local.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F01tifYD5XroPvOLjgVBS%2Fimage.png?alt=media&#x26;token=7d02a0aa-9ecb-4907-bcce-1872ba266530" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Comenzaremos enumerando que puede ejecutar el usuario "SHayslett" como usuario "root".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FUg4v9khl9nKEQ9kZHYDs%2Fimage.png?alt=media&#x26;token=26f189d7-3b41-442a-8f68-c763bb516a6a" alt=""><figcaption></figcaption></figure>

El usuario "SHayslett" no puede ejecutar ningún comando como sudo. La siguiente enumeración que puede ser interesante, es enumerar los binarios con permisos SUID.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7I5iRTdtEXBHMqbzXhL6%2Fimage.png?alt=media&#x26;token=7f509e82-957a-4fbb-94d0-c1dff6c9a16b" alt=""><figcaption></figcaption></figure>

Pero tampoco obtenemos ningún resultado interesante.

Enumeramos la versión de Kernel pero tampoco es vulnerable.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FTzv7LpexgHvlCrNdvG5H%2Fimage.png?alt=media&#x26;token=b9325ee0-a958-43aa-8181-875cb664cda7" alt=""><figcaption></figcaption></figure>

El objetivo tiene múltiples usuarios en el sistema. Normalmente, no se debería permitir la lectura de archivos en los directorios de inicio de otros usuarios, pero parece que este sistema está mal configurado para permitirlo. Podríamos explorar esta situación revisando cada uno de los directorios de los usuarios.

```
find -name ".bash_history" -exec cat {} \;
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKhaNGx8ULqkQLTYwId5g%2Fimage.png?alt=media&#x26;token=36300731-63a5-423f-ace0-c0de8e4acc0c" alt=""><figcaption></figcaption></figure>

De esta manera obtenemos dos posibles usuarios con sus respectivas contraseñas. Comenzamos por el usuario "JKanode", pero al igual que ocurre con el usuario "SHayslett" no puede ejecutar comandos como "root" ni tampoco tiene acceso a binarios con bit SUID.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fd45F0sQvzvLWEJkoaZZB%2Fimage.png?alt=media&#x26;token=cd906edf-3ebb-46f8-8848-3069f80e1b97" alt=""><figcaption></figcaption></figure>

Enumeramos permisos de sudoers

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPkgM3emzT0dtXkR0cTrs%2Fimage.png?alt=media&#x26;token=bdc5e5f4-dff9-4ce4-bd3a-5a977108abb5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fstxfqdp0q9JSNe5boTBJ%2Fimage.png?alt=media&#x26;token=a276a89f-3895-482e-b1ad-e379323693f3" alt=""><figcaption></figcaption></figure>

El usuario "peter" está en el grupo "sudoers"

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPhXODGeEdpYAs54ChoAI%2Fimage.png?alt=media&#x26;token=803da841-8627-42dc-8bb0-8146c25c92dc" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag proof.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FkjjZOuK3iqtfxZE1fLby%2Fimage.png?alt=media&#x26;token=92802213-eb6e-44f4-8d13-f9efc8d89be1" alt=""><figcaption></figcaption></figure>

Ya estaría finalizada la máquina Stapler.

{% embed url="<https://www.youtube.com/watch?v=m6Yfoj0XrS0>" %}
