Challenge
The challenge can be found here
Due to the learning objectives of the course, the challenge is designed to be doable for people who are new to CTFs. The challenge includes basic CTF skills including (but not limited to) cryptography and stenography.
CTF Walkthrough
- Query the terminal server using
remito read the initial story - Query the terminal server with
inventory find meatballsand download the image "meatballs.jpg" - Run
strings meatballs.jpgin your terminal to obtain a ciphertext "pASARFeDXPsj4V5u7qTOYoHzljCS+lc8YmSG/IiYJq74qKT3fcQAvuT24WJlMoMIinB9eKYGbR4FXRsAZ+kdbrytAmSDxFv33YARollK0IvXBVgVLsE9dmGghi71J9FP". Store this away for now. - Query the terminal server with
inventory find spaghettiand download the image "spaghetti.jpg" - Use
steghide -extract -sf spaghetti.jpgin your terminal with the password "spaghetti" to extract a file "recipe.txt" - Enter the contents of "recipe.txt" through an online Chef Esolang decoder to obtain the ciphertext "PurrflTneyvpXabg"
- Rot13 the ciphertext to obtain the key "CheesyGarlicKnot
- You can query the terminal server with
inventory find CheesyGarlicKnotto obtain more clues - AES-ECB decrypt the ciphertext obtained from "meatballs.jpg" with "CheesyGarlicKnot" as the key to obtain the ciphertext "6b6261721244591492597245de07dbef1626b472244f340614f9083c6e683a7c046c0f0a46360f5b"
- Query the terminal with
remi 6b6261721244591492597245de07dbef1626b472244f340614f9083c6e683a7c046c0f0a46360f5bto get a python file "door.py" - Decipher the plaintext by reverse-engineering “door.py” and un-map the ciphertext to get "4354467b346c6c5f6a3030725f663030647a5f3472335f62336c306e675f325f6d335f6e3077217d"
- Hex decode the ciphertext to get the flag “ctf{4ll_j00r_f00dz_4r3_b3l0ng_2_m3_n0w!}”