Pickle Rick
Created by 0xnotkyo

tryhackme.com - © TRYHACKME

Introducción
Pickle Rick es una máquina de TryHackMe con tématica de Rick y Morty donde explotamos un servidor web para encontrar 3 ingredientes o banderas (flags).
Reconocimiento con NMAP
Ejecutaremos la instrucción básica de reconocimiento con los parámetros que se explican a continuación:
-p-
Indicamos que queremos analizar el rango completo de puertos. Del 1 al 65535
-sS
Especificación del tipo de escaneo. En este caso SYN Scan es rápido y a la vez sigiloso ya que no termina de establecer la conexión y puede pasar desapercibido en los logs de conexión
--min-rate 5000
Acelera el proceso de escaneo ya que no tramita paquetes cuya velocidad sea inferior a 5000 paquetes por segundo. Esto puede hacer menos sigiloso el escaneo pero más rápido
-n
Indica que no queremos aplicar resolución DNS. Más velocidad de escaneo
-Pn
Escaneo de puertos incluso si el host no responde a los ping. Ignora si el host está o no online
-vvv
Triple verbose para que los resultados que vaya obteniendo los vaya mostrando por pantalla sin necesidad de acabar el escaneo
--open
Un puerto principalmente puede estar Abierto, Cerrado o Filtrado. En un principio nos centraremos en aquellos que están Abiertos.
El resultado del comando ejecutado sería el siguiente:

Podemos ver que tenemos dos puertos abiertos: http (80) y ssh (22).
Puerto 22 = ssh→ Protocolo de red que proporciona una conexión segura para acceder y gestionar servidores remotos.
Puerto 80 = http→ El servicio HTTP es el encargado de servir contenido web, permitiendo la interacción del usuario con la aplicación a través de un navegador.
SSH no suele ser vulnerable a menos que tengamos credenciales verificadas, así que vamos a centrarnos en HTTP.
HTTP

Como podemos ver, no hay mucha información aquí, así que vamos a revisar el código fuente de la página a ver si encontramos alguna pista o información que se hayan podido dejar.

¡Tenemos un nombre de usuario! Ahora necesitamos buscar la contraseña.
Entonces... ¿qué hacemos con esto?

Más enumeración, siempre es buena idea enumerar el sitio web con gobuster o alguna herramienta similar. En este caso vamos a usar gobuster.
Enumeración (Gobuster)
Vamos a utilizar gobuster para la búsqueda de directorios y archivos con los parámetros que se explican a continuación:
dir
Indica a Gobuster que realice un escaneo de directorios (Directory Brute Force)
-u
Especifica la URL de destino donde Gobuster debe realizar la búsqueda
-w /usr/share/wordlists/dirb/common.txt
Especifica la ruta al diccionario que se utilizará. Gobuster probará cada palabra de este archivo (common.txt) y la probará como un posible nombre de directorio o archivo en la URL destino
-q
Le dice a Gobuster que opere en modo silencioso. Significa que solo mostrará los resultados que encuentre (directorios o archivos existentes) y omitirá el banner de inicio y otros mensajes de información
-t 15
Establece el número de hilos (threads) de concurrencia a 15. Controla cuántas peticiones HTTP se envían al servidor simultáneamente.
-x php,html,txt
Añade estas extensiones de archivo a cada palabra probada de la wordlists. Esencial para encontrar archivos específicos
El resultado del comando ejecutado sería el siguiente:

Como podemos ver, nos ha dado algunos directorios que podrían ser interesantes. Por ejemplo /assets tenía archivos GIF, CSS y JSS que se están utilizando en el sitio web; pero nada interesante.

En el archivo robots.txt encontramos una frase.

En la página login.php encontramos un panel de inicio de sesión.

Utilizamos el usuario que encontramos con la frase en robots.txt y logramos obtener acceso al portal de la página.

Ingredientes
En el portal encontramos un input donde podemos ejecutar comandos. Al intentar ls se enumeran todos los archivos del directorio, incluyendo Sup3rS3cretPickl3Ingred.txt.
Vamos a utilizar cat para ver el contenido del archivo.


Como podemos ver, no nos deja utilizar el comando cat porque al parecer está bloqueado. Pero podemos usar less para leer los archivos, por lo que podemos leer tanto los archivos de la página como del sistema.
Primer Ingrediente
Encontramos el Primer ingrediente en el directorio actual. Utilizando el comando less.

Segundo Ingrediente
Cuando listamos el directorio actual, aparte del Primer Ingrediente, también vimos que había un archivo clue.txt. Vamos a ver que hay ahí.

Por el texto sabemos que el otro ingrediente también está en el sistema de archivos. Hice una suposición de que estaría en la carpeta de usuario y acerté.

Como podemos ver, hemos encontrado el Segundo Ingrediente en el directorio principal de rick, pero el dueño del archivo es root.
Hacemos una pequeña enumeración con sudo -l -l y vemos que tenemos permisos root (sudo) para ejecutar cualquier comando sin contraseña.

Y así es como podemos leer el segundo ingrediente:

Tercer Ingrediente
Haciendo otra suposición, busqué en el directorio principal del usuario root para ver si nuestro Tercer (y último) Ingrediente estaba allí.

Hemos acertado, así que vamos a repetir el mismo comando de antes.

Como podemos ver, ¡hemos capturado la bandera para esta máquina!

~Happy Hacking
Última actualización