Day 9: A Cracking Christmas - Advent of Cyber 2025
xhetic
@xhetic
📚 Esta publicación pertenece a las colecciones:
Day 9: A Cracking Christmas - Advent of Cyber 2025
Este writeup pertenece al evento Advent of Cyber 2025 de TryHackMe. Si quieres seguir toda la serie, consulta nuestra colección completa del Advent of Cyber 2025.
Hoy nos ponemos el sombrero de "password cracker". Nos encontramos con archivos protegidos que contienen información vital, y nuestra misión es romper esa protección. Además, para los más curiosos, hay un reto extra que nos llevará a la Side Quest 2.
Room: Passwords - A Cracking Christmas
Dificultad: Easy
Objetivo: Crackear contraseñas de archivos PDF y ZIP, y recuperar la clave de acceso para la Side Quest 2 desde un archivo KeePass.
🔓 Rompiendo el PDF
El primer desafío es un archivo flag.pdf protegido por contraseña. Para esto, usaremos una herramienta específica llamada pdfcrack.
La estrategia es simple: un ataque de diccionario. Usaremos la famosa lista de palabras rockyou.txt, que contiene millones de contraseñas filtradas.
pdfcrack -f flag.pdf -w /usr/share/wordlists/rockyou.txtCruzamos los dedos y... ¡éxito! En cuestión de segundos, la herramienta encuentra la coincidencia.

La contraseña es naughtylist. Al abrir el PDF desencriptado, encontramos la primera flag.
Pregunta: What is the flag inside the encrypted PDF?
Respuesta: THM{Cr4ck1ng_PDFs_1s_34$y}
🤐 Abriendo el ZIP
El siguiente en la lista es flag.zip. Para este, usaremos la navaja suiza del cracking: John the Ripper.
John no entiende archivos ZIP directamente, necesita un "hash" (una representación de la contraseña). Por suerte, tiene una herramienta auxiliar llamada zip2john para extraerlo.
-
Extraer el hash:
zip2john flag.zip > ziphash.txt -
Crackear el hash: Ahora le damos ese hash a John junto con nuestra fiel
rockyou.txt.john --wordlist=/usr/share/wordlists/rockyou.txt ziphash.txt
Como antes, la suerte está de nuestro lado. John rompe el hash casi instantáneamente.

La contraseña es winter4ever. Descomprimimos el archivo y leemos el flag.txt interior.
Pregunta: What is the flag inside the encrypted zip file?
Respuesta: THM{Cr4ck1n6_z1p$_1s_34$yyyy}
🗝️ Bonus: En busca de la Side Quest 2
La room menciona un reto adicional: "For those who want another challenge, have a look around the VM to get access to the key for Side Quest 2!". Obviamente, no nos vamos a quedar con las ganas.
Explorando el directorio /home/, encontramos un archivo oculto interesante: .Passwords.kdbx.
ls -la /home/La extensión .kdbx corresponde a KeePass, un gestor de contraseñas. Es muy probable que la clave que buscamos esté ahí dentro, pero... también está protegida por una contraseña maestra.
Crackeando KeePass
Repetimos el proceso de John the Ripper, pero esta vez con keepass2john.
-
Extraer el hash:
# La herramienta se encuentra en /Desktop/john/run/keepass2jhon ./keepass2john .Passwords.kdbx > keepass.txt -
Crackear:
john --wordlist=/usr/share/wordlists/rockyou.txt keepass.txt
¡Bingo! La contraseña maestra es harrypotter.
Extrayendo las contraseñas
Ahora usamos keepassxc-cli para interactuar con la base de datos desde la terminal.
Listamos las entradas:
keepassxc-cli ls .Passwords.kdbx
# Cuando nos pida la password, la escribimos.Vemos una entrada llamada "Key". Vamos a ver sus detalles:
keepassxc-cli show -s .Passwords.kdbx "Key"El output nos muestra un campo Uuid: {368ed39e-b162-44cd-b8aa-13093233202a}, pero los campos de Password y UserName están vacíos.
Pensé: "¿Será el UUID la contraseña?". Fui corriendo a la room de la Side Quest 2: Scheme Catcher a probarlo. Resultado: Fallo. No es la contraseña. Qué extraño...
Pruebo a decodificar el uuid con UUID Decoder pero solo observo un string, el cual tampoco es lo que buscamos.
La revelación gráfica
Decidí dejar la terminal un momento y abrir la base de datos con la interfaz gráfica keepassxc.
Al abrir la entrada "Key", me di cuenta de algo que había pasado por alto en la terminal: ¡La contraseña no es texto, es una imagen adjunta!
Hay una imagen adjunta llamada sq2.png. Si volvemos a la terminal y miramos con más atención usando el flag --show-attachments:
keepassxc-cli show --show-attachments .Passwords.kdbx Key
Ahí está:
Attachments:
sq2.png (408.9 KiB)Al visualizar esa imagen, obtenemos finalmente la clave necesaria para acceder a la Side Quest 2.

🏁 Conclusión
Hoy hemos aprendido que:
- Las contraseñas débiles o muy comunes no duran ni un segundo contra un ataque de diccionario (
rockyou.txtes el rey). - Herramientas como
John the Ripperson modulares y pueden atacar casi cualquier formato si tienes el "extractor" adecuado (*2john). - Lección aprendida: A veces algunos detalles se nos pueden pasar por alto. Es el momento de pensar bien todo el abanico de opciones que tenmos y seguir investigando. No subestimes el valor de revisar las cosas con una GUI o leer la documentación completa de la herramienta CLI.
Mañana publicaré el writeup del Día 10.
Si te perdiste la entrada de ayer sobre IA Agéntica y Prompt Injection, puedes leer el Día 8: Sched-yule Conflict aquí. Y si quieres empezar desde el principio, tienes el Día 1: Shells Bells.
También puedes consultar todos los días del Advent of Cyber directamente en la colección completa del Advent of Cyber 2025.
¡Nos vemos mañana! 🎄