Tryhackme: Pickle Rick

s3cureroy
6 min readJan 25, 2023

--

Máquina que homenajea a la famosa serie Rick y Morty, y en ella se tienen que buscar ciertos ingredientes a través de una webshell para que Rick pueda hacer sus experimentos.

La máquina es sencilla, pero permite practicar técnicas básicas de enumeración web y la ejecución de comandos a través de la mencionada webshell. Eludiendo ciertos controles de seguridad, se deben encontrar y mostrar los diferentes ficheros que contienen los ingredientes.

Enumeración

Como en todas las máquinas de estos CTF, se debe descubrir los puertos que tiene abiertos para ver los diferentes vectores de ataque, para ello, se lanza el comando nmap con los parámetros que muestran el versionado y que ejecutan los scripts nse, descubriendo el puerto 22 (SSH) y el 80 (HTTP).

Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-19 11:57 GMT
Nmap scan report for 10.10.33.136
Host is up (0.13s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 f3:b2:83:56:59:53:ae:cd:08:18:bb:ce:b2:fd:98:fe (RSA)
| 256 cd:40:93:91:74:2d:1a:f1:d0:c3:6e:da:b6:0f:d1:7f (ECDSA)
|_ 256 6b:17:73:a4:e3:c9:03:ee:56:f3:1f:f9:dd:94:f0:6a (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Rick is sup4r cool
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.56 seconds

Enumeración WEB

Al descubrir únicamente esos dos puertos, se decide empezar por el puerto 80 y enumerar el código de la WEB, fuzzear directorios, etc.

Se puede observar al entrar que en lugar de las típicas flag de las máquinas de CTF, se deben buscar “ingredientes” para que Rick, que se ha vuelto a convertir en pepinillo, vuelva a su forma humana.

Rick se ha vuelto a convertir en pepinillo y necesita 3 ingredientes para volver a su estado.

Por tanto, se comienza por enumerar el código de la propia página, donde se obtiene un posible usuario (R1ckRul3s).

Posible usuario encontrado en el código de la WEB.

Otra de las técnicas de la fase de descubrimiento es mirar el fichero “robots.txt” para ver si existe algún directorio o recurso que no se desee indexar de las arañas de los buscadores, y que en ocasiones pueden tener recursos sensibles.

En dicho fichero, se encuentra la palabra Wubbalubbadubdub usada mucho por Rick en la serie, pudiendo ser una posible contraseña.

Como no se dispone de más información, se procede a enumerar los recursos de la web para descubrir nuevos recursos, directorios, etc.

dirsearch -u http://10.10.33.136 -t50 -e "html,php,txt" 

_|. _ _ _ _ _ _|_ v0.4.2
(_||| _) (/_(_|| (_| )


Target: http://10.10.33.136/

[11:39:36] Starting:
[11:39:40] 403 - 300B, /.htaccessBAK
[11:39:40] 403 - 302B, /.htpasswd_test
[11:39:40] 403 - 301B, /.htaccessOLD2
[11:39:40] 403 - 299B, /.httr-oauth
[11:39:40] 403 - 292B, /.htm
[11:39:40] 403 - 303B, /.htaccess_extra
[11:39:40] 403 - 304B, /.htaccess.sample
[11:39:40] 403 - 302B, /.htaccess_orig
[11:39:40] 403 - 300B, /.htaccess_sc
[11:39:40] 403 - 298B, /.htpasswds
[11:39:40] 403 - 302B, /.htaccess.save
[11:39:40] 403 - 302B, /.htaccess.orig
[11:39:41] 403 - 302B, /.htaccess.bak1
[11:39:41] 403 - 299B, /.ht_wsr.txt
[11:39:41] 403 - 300B, /.htaccessOLD
[11:39:41] 403 - 293B, /.html
[11:39:43] 403 - 292B, /.php
[11:39:43] 403 - 293B, /.php3
[11:40:12] 301 - 315B, /assets -> http://10.10.33.136/assets/
[11:40:12] 200 - 2KB - /assets/
[11:40:37] 200 - 1KB - /index.html
[11:40:43] 200 - 882B, /login.php
[11:41:05] 200 - 17B, /robots.txt
[11:41:07] 403 - 302B, /server-status/
[11:41:07] 403 - 301B, /server-status

Task Completed

Se descubren varios directorios, que se proceden a verificar.

Directorio /assets

El primero es el recurso “assets”, que dispone de listado de directorios pero no se encuentra nada relevante, más allá de esta apreciación.

Recurso assets.

Recurso login.php

El recurso login.php, al acceder, solicita una credenciales de lo que parece un panel de administración.

Acceso inicial

Se intenta acceder al panel mediante el usuario obtenido en el código de la página y como contraseña se introduce la palabra que siempre usa Rick, encontrada en el fichero robots. Obteniendo acceso satisfactoriamente.

Si se cambia a la pestaña Commands en el panel, se puede obtener ejecución de comandos en la máquina y por lo tanto, se puede comenzar a buscar los ingredientes que necesita Rick.

Pestaña commands.

Hay que tener en cuenta que todos los comandos que muestran el contenido de los ficheros como cat, head, tail, etc. están restringidos, menos el comando strings.

Primer ingrediente

Dentro de la ruta donde se encuentra la webshell alojada existe un fichero llamado Sup3rS3cretPickl3Ingred.txt obtenido mediante la ejecución de un comando ls.

Ficheros en la ruta de la webshell.

Se accede al fichero mediante la ruta en el navegador o mediante el comando strings, obteniendo el primer ingrediente (mr. meeseek hair)

Primer ingrediente.

Segundo ingrediente

Dentro de la misma ruta donde se aloja el primer ingrediente, existe un fichero llamado clue.txt que recomienda mirar por todo el sistema de ficheros para encontrar el resto de los ingredientes.

Fichero clue.txt.

Se hace la búsqueda mediante la palabra “ingred”, encontrando el obtenido previamente, y otro en el directorio /home del usuario de Rick, que se muestra mediante el comando strings, obteniendo 1 jerry tear.

Segundo ingrediente.

Tercer ingrediente

Se intenta verificar si existen más usuarios para poder obtener el tercer ingrediente, pero mirando en el fichero /etc/passwd no se ven más usuarios (ni siquiera está el usuario rick visto previamente para el acceso a la interfaz de administración).

Se verifican los permisos que tiene el usuario que ejecuta comandos mediante la webshell mediante el comando “sudo -l” y se puede ver que el usuario tiene la posibilidad de ejecutar comandos como root sin contraseña. Por tanto, se puede ver que contiente el directorio home del usuario root.

Permisos usuario root.

Se listan los ficheros del directorio home del usuario root, obteniendo un fichero que hace alusión al tercer ingrediente (3rd.txt)

Ficheros del directorio home de root.

Se obtiene el contenido del fichero mediante el comando strings, consiguiendo el tercer ingrediente (fleeb juice) y completando la máquina.

Contenido del tercer ingrediente.

Y hasta aquí el Writeup de la máquina de Rick y Morti, espero que os haya gustado, a mi me ha gustado porque aparte de que me encanta la serie, me ha parecido original el planteamiento de interacción mediante una webshell en todo momento.

--

--

s3cureroy

Apasionado de la seguridad informática, actualmente trabajando como analista de seguridad, pero con ganas de afrontar nuevos retos.