# OffSec Pwned1

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

Primero que nada empezamos con lo tipico escaneo de puertos abiertos en el Host.

***

```javascript
# Nmap 7.94SVN scan initiated Wed Feb 21 11:56:43 2024 as: nmap -sCV -p21,22,80 -oN target.txt 192.168.217.95
Nmap scan report for 192.168.217.95
Host is up (0.047s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 fe:cd:90:19:74:91:ae:f5:64:a8:a5:e8:6f:6e:ef:7e (RSA)
|   256 81:32:93:bd:ed:9b:e7:98:af:25:06:79:5f:de:91:5d (ECDSA)
|_  256 dd:72:74:5d:4d:2d:a3:62:3e:81:af:09:51:e0:14:4a (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Pwned....!!
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Feb 21 11:56:52 2024 -- 1 IP address (1 host up) scanned in 9.06 seconds
```

Versiones y servicios que corren para cada uno de los puertos que estan abiertos.

***

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

1. Si fuzzeamos la pagina web encontramos el directorio robots.txt el mas tipico.
2. Ahora si con curl le lanzamos una peticion a donde esta ese robots.txt tenemos dos directorios mas que nos dan.&#x20;

***

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

1. Ahora si lanzamos una peticion igual usando curl, observamos que tenemos un archivo llamado secret.dic.
2. Ahora si lanzamos igualmente con curl, a todo el recurso, el secret.dic tenemos mas especie de directorios en la web.

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

El directorio pwned.vuln tiene un panel de login, pero si lanzamos una peticion observamos el codigo fuente de la pagina tenemos unas credenciales del ftp.

***

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

1. Nos conectamos al ftp con las credenciales encontradas.

Ahora estando dentro tenemos una nota y un id\_rsa, pues nos los descargamos a local.

***

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

Bueno si le hacemos un cat a la nota, tenemos un posible usuario ariana, le cambiamos los permisos a la id\_rsa.

***

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

Nos conectamos usando la id\_rsa y con el nombre de usuario encontrado, y tenemos la primera bandera.

***

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

Si hacemos un sudo -l como ariana, observamos que selena puede ejecutar un script escrito en bash sin proporcionar contraseña.

Entonces lo vamos a ejecutar como el usuario selena.

***

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

1. Si lo ejecutamos nos da un welcome, y tenemos una especie de formulario, le ponemos el nombre selena y hacemos un user-pivoting del usuario ariana a selena.
2. Ahora si hacemos un id, observamos que selena esta en el grupo de docker, podemos usar esto para escala privilegios.

***

## Escalda de privilegios docker&#x20;

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

1. Si hacemos un docker images observamos que tenemos tres imagenes.
2. Luego si introducimos la sintaxis que se observa se ejecuta el contenedos Privesc.

Observamos que todo lo que estaba en la maquina real ahora esta dentro del contenedor, si nos vamos a root, podemos ver la ultima bandera la de root.txt.

El comando `docker run` inicia un contenedor Docker basado en Privesc . Con `-v /:/host/`, se monta el sistema de archivos del host dentro del contenedor en `/host/`. Luego, `chroot /host/` cambia el root directory del sistema al del host. Finalmente, `bash` inicia un shell Bash dentro del directorio del host montado, permitiendo interactuar con el sistema de archivos del host desde el contenedor.

Maquina resuelta aca estas como root y todo lo del host montado en el contenedor.

***

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

Ahora si quieres tambien lo podemos hacer de la siguiente manera.

1. Estando en el contenedor si nos vamos a bin y le asignamos permisos SUID a la bash.
2. Ahora en la maquina host la orginal nos conectamos con id\_rsa y primero observamos que la bash no tiene permisos SUID pero luego se los asignamos, hacemos un bash -p y somos root, vamos a root y observamos la misma flag

Dos formas en una misma de hacer lo mismo llegar hasta root.


---

# 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://rodgar.gitbook.io/rodgar/plataformas/vulnhub/offsec-pwned1.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.
