Day 1: Shells Bells - Advent of Cyber 2025

xhetic

xhetic

@xhetic

TryHackMeAdventOfCyberLinux
Day 1: Shells Bells - Advent of Cyber 2025

📚 Esta publicación pertenece a las colecciones:

Day 1: Shells Bells - Advent of Cyber 2025

¡Arranca oficialmente el Advent of Cyber 2025! 🎄

La historia comienza con una noticia terrible: McSkidy ha sido secuestrada. Sin ella, las defensas de Wareville se tambalean. Nuestra primera pista apunta al servidor tbfc-web01, un servidor Linux encargado de procesar las listas de deseos navideños.

En este primer día, nos enfrentamos a una introducción práctica a la CLI de Linux (Command Line Interface). Si eres nuevo en esto, es el momento perfecto para perderle el miedo a la terminal. Si ya eres veterano, prepárate porque al final del post resolvemos la Sidequest (el reto extra no guiado).

Room: Linux CLI - Shells Bells
Dificultad: Easy
Objetivo: Investigar el servidor comprometido y encontrar pistas sobre el paradero de McSkidy.


🐧 Parte 1: Conceptos Básicos de Linux (Guiado)

La primera parte de la room nos guía a través de comandos esenciales para movernos por el sistema y encontrar evidencias.

Con esa información, tenemos la respuesta a la pregunta "Which CLI command would you use to list a directory?"

1. Navegación y Archivos Ocultos

El primer paso es explorar el sistema de archivos. Nos movemos al directorio Guides pero parece vacío. En Linux, los archivos que empiezan por un punto (.) están ocultos por defecto.

Comando clave:

ls -la
  • -l: Formato de lista (detalles).
  • -a: All (muestra todo).

Al ejecutarlo, encontramos .guide.txt. Al leerlo con cat .guide.txt, obtenemos la primera flag.

Flag 1: {learning-linux-cli}

2. Análisis de Logs con Grep

McSkidy nos dejó una pista: "let the logs become your guide". Los logs de autenticación suelen estar en /var/log/auth.log. Leer un archivo gigante línea por línea es ineficiente, así que usamos grep para filtrar.

Con esa información, tenemos la respuesta a la pregunta "Which command helped you filter the logs for failed logins?"

Comando clave:

grep "Failed password" /var/log/auth.log

Esto nos muestra los intentos fallidos de inicio de sesión.

3. Buscando Malware con Find

Sospechamos que los atacantes dejaron algún "regalo" malicioso. Usamos el comando find para buscar archivos por nombre. Sabiendo que el tema va de "eggs" (huevos), buscamos en el directorio del usuario socmas.

Comando clave:

find /home/socmas -name "*egg*"

Encontramos /home/socmas/2025/eggstrike.sh. Al leer su contenido, vemos que es un script que reemplaza la lista de deseos legítima por una falsa ("EASTMAS"). Dentro del script está la segunda flag.

Flag 2: THM{sir-carrotbane-attacks}

4. Escalada a Root y Bash History

Para investigar a fondo, necesitamos privilegios de superusuario (root). Cambiamos de usuario con:

sudo su

Justo con esa información, tenemos la respuesta a la pregunta "Which command would you run to switch to the root user?"

Una vez somos root, revisamos el historial de comandos (.bash_history) para ver qué ejecutó el atacante.

cat /root/.bash_history

El historial revela las acciones de "Sir Carrotbane" y nos entrega la última flag de la parte guiada.

Flag 3: THM{until-we-meet-again}


🌶️ Parte 2: The Sidequest (Reto Extra)

Aquí es donde la cosa se pone interesante. TryHackMe nos propone un reto adicional sin guía para conseguir acceso a una room secreta.

La Pista Inicial

En /home/mcskidy/Documents/ encontramos un archivo llamado read-me-please.txt. McSkidy nos dice que ha escondido 3 fragmentos de una contraseña en la cuenta del usuario eddi_knapp. Estos fragmentos, unidos, desencriptarán un mensaje importante.

Credenciales dadas:

  • User: eddi_knapp
  • Pass: S0mething1Sc0ming

Nos logueamos:

su eddi_knapp

Buscando los Fragmentos (Easter Eggs)

McSkidy nos dejó tres acertijos poéticos para encontrar cada fragmento. Vamos a resolverlos uno a uno.

Fragmento 1: Variables de Entorno

"I ride with your session, not with your chest of files. Open the little bag your shell carries when you arrive."

Este acertijo hace referencia a las variables de entorno.

  • "Ride with your session": Las variables de entorno existen en la memoria de la sesión actual, no son archivos en el disco ("chest of files").
  • "Little bag your shell carries": Es una metáfora del entorno (env) que la shell carga al iniciar.

Para verlas, ejecutamos el comando env:

env

Entre la salida, encontramos la primera parte: PASSFRAG1=3ast3r

Fragmento 2: Historial de Git

"The tree shows today; the rings remember yesterday. Read the ledger’s older pages."

  • "The tree": Se refiere al árbol de directorios o de trabajo.
  • "The rings remember yesterday": Los anillos de un árbol cuentan su historia. En informática, esto suena a control de versiones (Git), que recuerda el pasado del código.

Exploramos el sistema buscando archivos ocultos y encontramos un directorio sospechoso llamado .secret_git.bak. Al listar su contenido con tree -a, confirmamos que es un repositorio Git.

cd .secret_git.bak
git log

El historial (git log) muestra commits interesantes en el archivo secret_note.txt, uno menciona un secreto y el commit posterior lo borra.

Para ver qué cambió en ese commit específico (Haciendo referencia a la parte del acertijo: "Read the ledger's older pages"):

git show d12875c8b62e089320880b9b7e41d6765818af3d

Ahí encontramos la segunda parte de la contraseña, la cual en un commit posterior se borró: PASSFRAG2=-1s-

Fragmento 3: Esteganografía (o el camino rápido)

"When pixels sleep, their tails sometimes whisper plain words. Listen to the tail."

Este acertijo sugiere esteganografía o datos ocultos al final ("tail") de un archivo de imagen ("pixels"). La forma "correcta" sería buscar imágenes y analizar sus metadatos o contenido binario.

Sin embargo, como buenos hackers, a veces el camino más rápido es el mejor. Sabiendo el formato de las anteriores (PASSFRAG), decidí buscar directamente la cadena en todo el directorio home:

grep -r "PASSFRAG3" ~/

¡Bingo! grep encontró la cadena dentro de un archivo oculto en la carpeta de imágenes: /home/eddi_knapp/Pictures/.easter_egg:PASSFRAG3: c0M1nG

A veces, buscar atajos nos ahorra tiempo. 😉

Contraseña completa: 3ast3r-1s-c0M1nG

Desencriptando el Mensaje

Con la contraseña, desencriptamos la nota que McSkidy dejó protegida con GPG:

gpg --batch --passphrase "3ast3r-1s-c0M1nG" -d ~/Documents/mcskidy_note.txt.gpg

El mensaje desencriptado nos da las siguientes instrucciones:

  1. Reemplazar el contenido de /home/socmas/2025/wishlist.txt con una lista específica de herramientas de seguridad.
  2. Esto arreglará el "glitch" del sitio web y nos dará un texto cifrado.
  3. Nos da una UNLOCK_KEY (91J6X7R4FQ9TQPM9JX2Q9X2Z) y el comando OpenSSL para descifrar ese texto.

Arreglando la Wishlist

Sobrescribimos el archivo wishlist.txt con la lista correcta (usando cat y un heredoc para hacerlo rápido):

cat > /home/socmas/2025/wishlist.txt << 'EOF'
Hardware security keys (YubiKey or similar)
Commercial password manager subscriptions (team seats)
Endpoint detection & response (EDR) licenses
Secure remote access appliances (jump boxes)
Cloud workload scanning credits (container/image scanning)
Threat intelligence feed subscription
Secure code review / SAST tool access
Dedicated secure test lab VM pool
Incident response runbook templates and playbooks
Electronic safe drive with encrypted backups
EOF

Al hacer esto, el sitio web (que corre en el puerto 8080) deja de mostrar el glitch y nos muestra un bloque de texto cifrado en Base64.

Captura Web

Obteniendo la Flag Final

Copiamos el texto cifrado y usamos el comando OpenSSL que nos dio McSkidy:

echo "U2FsdGVkX1/..." | openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 -salt -base64 -a -pass pass:'91J6X7R4FQ9TQPM9JX2Q9X2Z'

Resultado:

"Well done — the glitch is fixed... Take this flag THM{w3lcome_2_A0c_2025}"

Acceso a la Sidequest Room

El mensaje final nos dice que usemos esa flag como contraseña para desencriptar un archivo oculto en /home/eddi_knapp/.secret/dir.

Nos situamos en la ruta y desencriptamos el archivo comprimido:

cd /home/eddi_knapp/.secret/
gpg --batch --passphrase "THM{w3lcome_2_A0c_2025}" -d dir.tar.gz.gpg > dir.tar.gz

Luego, descomprimimos el archivo:

tar xzf dir.tar.gz

Dentro del archivo comprimido encontramos una imagen sq1.png. Al abrirla, vemos una imagen que nos revela la contraseña para acceder a la Side Quest 1 Room.

Sidequest Image
Click para ver imagen

¡Reto completado! Hemos recuperado el control del servidor y tenemos acceso a la siguiente fase de la investigación.

La contraseña mostrada en la imagen, nos permite comenzar la room The Great Disappearing Act.

🔗 Enlace al día 2: Día 2: Mery Clickmas (Phishing).

Happy Hacking! 🎄

~ Xhetic