Mr. Robot CTF – TryHackMe

Mr. Robot CTF – TryHackMe

Hoy vamos a realizar la máquina “Mr. Robot” de TryHackMe, en ella gracias a la falta de actualización e inseguridad en el wordpress que está instalado en su servicio web podremos obtener un primer acceso y gracias a una versión antigua de nmap pordremos escalar privilegios, eso sí, para obtener las credenciales del wordpress mejor búscate una buena peli porque va a tardar.

Dificultad asignada por THM: Media

La ip de la máquina en mi caso será: 10.10.96.41

Esta sala la dividiré es los siguientes apartados:

Enumeración:

Hagamos un escaneo con nmap para detectar todos los puertos abiertos:

nmap -p1-65535 <IP>  o nmap -p- <IP>

Ya con esta información, haremos otro escaneo, pero esta vez más detallado sobre esos tres puertos detectados (ACT: Recomendable el uso de furious para la tarea anterior, más rápido que nmap en este sentido, o, mi recomendación personal es usar el cybexrecon de Cybex), bueno siguiendo con los resultados arrojados:

Como dije,  con esta información, haremos otro escaneo, pero esta vez más detallado sobre esos tres puertos detectados:

 nmap -sC -sV -T4 -p22,80,443 <IP>

Vemos que está el puerto 22 (SSH) y los puertos puertos 80 (HTTP) y 443 (HTTPS) ejecutándose:

En el sitio web no hay mucha información útil, es más algo interactivo con temática de la serie:

Ya que no podemos obtener información relevante ahí, probemos hacer una búsqueda de directorios, para ello y si tienes instalado gobuster ejecuta lo siguiente (si no lo tienes instalado ni sabes qué es, aquí tienes un artículo sobre el tema):

gobuster dir –url http://<IP> –wordlist /usr/share/wordlists/dirb/big.txt

Al hacerlo, veremos que hay directorios bastante llamativos y que nos hacen pensar que probablemente sea un blog en wordpress, ignoraremos los que nos devuelven un código 301 y nos centraremos en los que devuelven un 200:

Después de inspeccionar los directorios, podemos ver que en robots.txt hay información útil, lo que parece ser el nombre de un diccionario y la primera bandera:

Bandera 1:

Simplemente mira el archivo con la bandera 1:

En cuanto al diccionario que encontramos, lo descargamos ya que posiblemente lo necesitemos para conseguir las credenciales de acceso:

Bandera 2:

En este punto, necesitamos obtener acceso para obtener la segunda bandera, que lo más probable es que esté dentro del sistema de archivos, así que intentemos logearnos en /wp-login, probemos con algo simple admin:admin :

Al hacerlo verás que nos arroja un error diciendo que el usuario no es correcto, eso significa que el usuario admin no existe en este wordpress:

Pero entonces ¿existirán más usuarios?, esta sala está basada en Mr Robot, por ende, los usuarios deben ser personajes de la serie ¿no?, probemos con el protagonista, elliot:

Ahora esto se ve mejor, nos dice que la contraseña del usuario Elliot es incorrecta (porque lo es) por ende, ya sabemos que el usuario “elliot” sí existe.

Ahora lo que podemos hacer es un ataque de diccionario usando el diccionario que descargamos antes, para esto puedes usar wpscan, medusa, hydra, etc, yo usaré hydra, pero necesitamos saber el parámetro POST utilizado, así que capturemos el tráfico primero con Burp, para ello configure el proxy de su navegador:

O, use una extensión con las configuraciones previamente guardadas:

Luego inicia burp y captura un intento de inicio de sesión:

 Partiendo de esto, para hacer el ataque de diccionario con hydra, usa el siguiente comando:

hydra -l Elliot -P fsocity.dic <IP> http-post-form “/wp-login/:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2Fmrrobot.thm%2Fwp-admin%2F&testcookie=1:S=302” -vV -f

(recuerda poner la ruta completa al diccionario que se usará para adivinar la contraseña, o en su defecto, poner el nombre del diccionario si es que estás ejecutando el comando en el mismo directorio que se encuentra el diccionario).

Y empezará el ataque, llegados a este punto, te recomiendo irte a ver todas las películas de Harry Potter porque esto va a tardar:

Después de un buen rato y de descubrir que en realidad Snape era bueno, ya tenemos la contraseña del usuario elliot:

Ahora accedamos al panel de administración de wordpress:

Ahora simplemente subamos una shell reversa a través de un “plugin”, para ello usaremos esta reverse shell de pentestmonkey a la cual le modificaremos la ip y añadiremos unos comentarios que son necesarios para que wordpress entienda esto como un plugin:

Lo dejaré por aquí:

/*

Plugin Name:  Shell Reversa

Plugin URI: http://reversa.com

Description: Shell

Version: 1.0

Author: Yo mismo

Author URI: http://yo.com

Text Domain: Shell

Domain Path: /languages

*/

Luego comprímelo:

Pon a la escucha el puerto que definiste en la shell, en mi caso el 1234 con el comando:

nc -lvnp <PUERTO>

Debería quedar algo así:

Ahora el .zip, súbelo a wordpress como si fuese cualquier otro plugin:

 E instalalo:

Luego ve a los plugins instalados, búscalo y actívalo:

Verás que al activarlo ya obtenemos una shell:

Ahora vamos a actualizar un poco esa shell a una shell algo más interactiva, este artículo puede ser muy útil, bien, lo primero es obtener una shell pty, para ello en la shell que hemos conseguido escribe:

 python -c ‘import pty; pty.spawn(“/bin/bash”)’

Pasará esto:

Luego pulsa Ctrl + Z para detener netcat y luego en el terminal de tú máquina escribe:

stty raw -echo; fg

Luego de unos breves segundos pulsa enter y listo:

Bueno, a lo que vinimos, la bandera 2, está en el directorio del usuario robot, pero no tenemos permisos para leerla, solo el usuario robot puede:

Pero fíjate que también está lo que parece ser el hash de la contraseña de este usuario y podemos leerlo:

Vamos a copiarlo y pegarlo en un archivo en nuestra máquina que llamaremos contraseña.txt y luego lo crackearemos con John the Ripper usando el siguiente comando:

john contraseña.txt –wordlist=/usr/share/wordlists/rockyou.txt –format=Raw-MD5

Y obtenemos la contraseña.

Ahora solo hay que cambiar de usuario a robot y leer la bandera 2:

Bandera 3

Llegados a este punto, lo más probable es que la tercera bandera este en /root, pero no tenemos permisos para entrar, por lo que tenemos que escalar privilegios, primero probemos con sudo -l para ver que podemos ejecutar como sudo:

Bueno, no funcionó.

Sigamos, ahora busquemos archivos SUID, para ello usa el siguiente comando:

find / -perm -u=s -type f 2>/dev/null

Y mira nada más que tenemos aquí, nmap se ejecuta como root:

La versión instalada de nmap es la 3.81:

En esta versión existe un modo interactivo, con ello podemos escalar privilegios, para ello usa:

nmap –interactive

y en la consola que te da nmap, escribe:

¡sh

Y tendrás una shell como root:

Ahora solo lee la tercera bandera:

Y ya estaría lista la sala.

Opinión personal:

  • Difícultad de acceso 49% 49%
  • Difícultad de escalación de privilegios 21% 21%

He hecho esta puntuación en opinión personal, basándome en estos valores:

Fácil: 1% – 30%

Medio: 31% – 70%

Difícil: 71% – 100%

Sobre el Autor

C0ldd

Founder of Coldd Security

Sponsor By

Coldd Security

REDES SOCIALES

Newsletter

Estadísticas

  • 55.908
  • 43

TheHackerSnow

0

Share This