> For the complete documentation index, see [llms.txt](https://b4zh.gitbook.io/b4zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://b4zh.gitbook.io/b4zh/ejpt-xerosec/2.-doc.md).

# 2. DOC

ESTÁ MÁQUINA SOLO TIENE EL PUERTO 80 ABIERTO EN DONDE CORRE UN SERVIDOR WEB NGINX CON UN SITIOW WEB.

AL ENTRAR AL SITIO VEREMOS QUE ESTE NO CARGA BIEN, ASI QUE INSPECCIONAMOS EL CÓDIGO FUENTE Y VEREMOS QUE MUCHOS DE LOS RECURSOS INTENTAN RESOLVERSE A TRAVES DE UN NOMBRE DE DOMINIO, EL CUAL ES doc.hmv.

POR LO QUE SIN DUDA ESTO SE TRATA DE UN VIRTUAL HOSTING, ASI QUE EN EL FICHERO /etc/hosts VINCULAMOS LA DIRECCIÓN IP DE LA MÁQUINA CON EL NOMBRE DE DOMINIO.

ENTRAMOS NUEVAMENTE AL SITIO WEB Y VEREMOS QUE AHORA SI CARGA CORRECTAMENTE.

***

Si hacemos una enumeración de directorios ya sea con dirb o gobuster no encontraremos nada relevante.

```bash
dirb http://doc.hmv wordlist.txt
```

```bash
gobuster dir -u http://doc.hmv -w wordlist.txt
```

***

Al hacer un escaneo con nikto. Nikto es una herramienta que nos permite escanear un sitio web en busca de potenciales vulnerabilidades.

```bash
nikto -u http://doc.hmv
```

En este caso nikto logro enumerar algunos recursos interesantes:

* config.php
* admin/login.php
* .htaccess

***

De todas formas desde el sitio web un boton nos redirige al panel de login, asi que pa saber como se envian los datos en la peticion, la capturamos con BurpSuite.

Y veremos que la peticion es a través del método POST, y los datos se envían en el cuerpo de la petición.

Mandamos al Repeater la petición capturada y vemos que en el cuerpo de la respuesta se nos hes devuelto la consulta que se hace a la base de datos, increible jaja.

Así que intentamos hacer una SQLi toda culera para intentar iniciar sesión sin proporcionar credenciales.

```sql
' OR "pepe"="pepe" #
' OR 4=4 -- -
```

Y pum, tenemos acceso como el jodido admin de mierda

(

Como extra también podriamos usar SQLMAP en busca de posibles SQLi.

Primero interceptariamos la peticion con BurpSuite y luego guardariamos la peticion en un fichero de texto para pasarselo a SQLMAP

```bash
sqlmap -r post-request.txt
```

En este caso SQLMAP se pasa de listo, de todas formas sabemos que con una inyección toda rancia pudimos burlar el login del sitio web.

)

***

Perfecto, ahora lo que podemos hacer, es intentar un ataque de File Upload, es decir, subir un fichero malicioso al servidor, en este caso subiremos un reverse shell escrita en PHP, usaremos la PHP PENTEST MONKEY:

{% embed url="<https://www.revshells.com/>" %}

Configuramos la dirección IP y el puerto de escucha en donde recibiremos la shell reversa, y guardamos el fichero en nuestra máquina.

Luego en el sitio web subimos el fichero en algún lugar que permite la subida de ficheros, en este caso reemplazaremos la foto de perfil por la shell reversa.

Una vez hecho esto, nos ponemos a la escucha con netcat:

```bash
nc -lnvp ip port
```

Y en el navegador vamos a la ruta del servidor en donde se haya guardado el recurso malicioso que hemos subido.

En este caso el servidor interpreta el código php, es decir ejecuta el fichero malicioso que nos envía una shell bash a nosotros a través de la ip y puerto en escucha.

***

Ahora para estar más cómodo haremos un tratamiento de la TTY

[TRATAMIENTO DE LA TTY](/b4zh/pentesting/antes-del-pentesting/tratamiento-de-la-tty.md)

```bash
script /dev/null -c bash
[Ctrl] + [Z]
stty raw -echo; fg
reset
export SHELL=/bin/bash
export TERM=xter
stty rows [num] columns [num]
```

***

Muy bien, ahora lo siguiente sería pivotar a otro usuario con mayores privilegios, así que enumeramos todos los usuarios que existen en el sistema

```bash
cat /etc/passwd
```

En este caso, encontramos que de entre los demás usuarios que se crean por defecto, existe un usuario llamado bella, y un usuario www-data que es con el que estamos actualmente conectados, así que intentaremos pivotar al usuario bella.

Buscamos archivos de configuración en el sitio web que puedan contener credenciales por ejemplo: credenciales para la base de datos del sitio.

En el caso de esta máquina, ese fichero de configuración se llama initialize.php, asi que leemos su contenido pa ver que contiene:

```bash
cat initialize.php
```

Este fichero contiene el usuario y la contraseña para conectarnos  a la base de datos, pero podemos pensar que este usuario reutiliza sus queridas contraseñas, así que intentamos conectarnos en la máquina comprometida como el usuario bella usando la contraseña encontrada.

Cambiamos de usuario con el comando su.

```bash
su - bella
```

Y si, este reutiliza sus contraseñas.

\[Leemos la flag user.txt]

***

{% embed url="<https://dise0.gitbook.io/h4cker_b00k/ctf/hackmyvm/doc-hackmyvm-easy-linux>" %}
