Break Out The Cage es una maquina de TryHackMe, presenta retos para obtener credenciales y acceso a la maquina, para el movimiento lateral analizamos un script y modificamos un archivo dependiente. Un reto nos permitió obtener la contraseña del usuario root.
Room
Titulo | Break Out The Cage |
---|---|
Descripción | Help Cage bring back his acting career and investigate the nefarious goings on of his agent! |
Puntos | 240 |
Dificultad | Facil |
Maker |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto ftp (21), http (80) y el puerto ssh (22) abiertos.
|
|
HTTP
Encontramos una pagina web en el puerto 80.
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
|
|
Encontramos un directorio en donde hay un archivo mp3.
Utilizamos Sonic Visualiser
para verificar que el archivo no tenga algo dentro agregando una capa de espectrograma. Logramos ver una palabra que seguramente nos servira. Puede que alguna de las letras sea engañosa, audacity
tambien trae la opcion de agregar una capa de espectrograma.
FTP - Task 1
Nos conectamos al servicio FTP con las credenciales de anonymous:anonymous y encontramos un archivo que esta codificado en base64.
Utilizamos CyberChef
para decodificar el mensaje, al realizar esto vemos el mensaje “descompuesto”. Utilizamos Vigenere Cipher
con la palabra que encontramos para obtener el mensaje real. Task 1
USER - WESTON -> CAGE
Ahora que encontramos la contraseña de weston iniciamos sesion en el servicio ssh. Hacemos una pequeña enumeracion con sudo -l -l
y vemos que tenemos permisos root (sudo) para ejecutar el comando /usr/bin/bees
. El archivo contiene un comando, pero este no puede ser editado por el usuario actual.
Utilizamos pspy64
para ver si existe algun cronjob en la maquina, esto porque durante la enumeracion de los archivos se imprimia un mensaje diferente en pantalla.
Encontramos un archivo que se ejecuta y se encuentra en el directorio /opt/
.
El codigo del script en python lee el archivo .quotes
en el que hay una larga lista de frases, elige una aleatoria, la imprime mediante el comando wall
.
Para poder tomar ventaja de este script deberia de quedar de la siguiente forma para poder ejecutar comandos y una posible shell inversa.
Renombramos el archivo .quotes
, creamos uno nuevo con una frase y nuestra shell inversa.
Ponemos a la escucha netcat en nuestra maquina, esperamos, y logramos obtener una shell con el usuario cage.
Y nuestra flag user.txt.
PRIVILEGE ESCALATION
En la carpeta principal de cage encontramos el archivo id_rsa
que nos da acceso a una shell en el servicio ssh. En la carpeta email_backup
encontramos varios correos en tres archivos. En uno de ellos hablan sobre una nota y lo que esta decia.
Intentamos utilizarla como contraseña del usuario root pero no funcionó, por lo que utilizamos nuevamente vignere cipher
pero esta vez no teniamos la clave y utilizamos dcode.fr ya que nos muestra una lista de posibles claves y su resultado. Logramos encontrar su clave y el mensaje real.
Utilizamos el mensaje real como contraseña del usuario root y logramos obtener acceso con este usuario, además encontramos nuevamente un backup de correos en su carpeta principal y en uno de ellos nuestra flag *root.txt.