Find Eve 1

Flag: HACKDAY{r3D j@Ck37}

Challenge

Description


Welcome to MI5!

Sorry, but you won’t have time to settle in because your first mission has already arrived. To provide some context, Eve is an agent who joined our agency five years ago and had been working on the search for the Hoxne treasure. We have finally found a map that seems to lead to the treasure. However, the traitor Eve has fled with the map. Your mission is simple: find Eve.

Agent, Eve left subtle traces in her choice of words and references. A strange post-it found on her desk, stuck to a book titled Neuromancer by William Gibson, bore the inscription: "Within the maze of the matrix, intelligence always plays a double game. Look where it all begins, and you’ll uncover the one pulling the strings."

We believe she was referring to a classic piece of cyberpunk literature, where manipulation and betrayal are central themes. If you are astute enough to decipher this riddle, you will uncover the key hidden within this futuristic digital universe.


  • First, decrypt with a key and a salt, you'll cry while searching for the only word.

  • Then, decode the first layer of encoding, which uses a format specific to IPv6 (compact representation).

Solution

Ce challenge est ultra guessy, il va falloir réaliser des étapes sans trop d'explications rationnelles.

On commence par chercher le mot demandé, en partant du principe qu'il est dans le libre cité : "Neuromancer". Pour ça, j'ai utilisé ChatGPT, mais vous pouvez très bien lire le livre pour comprendre.

Notre mot est Wintermute, maintenant on nous parle de clé et de sel. Accrochez-vous, c'est là qu'il faut utiliser vos pouvoirs de divination !

  1. Hasher avec SHA256 notre clé et ne garder que les 16 premiers caractères (pas bytes). Ce sera notre sel.

┌──(thaysan)-[~]
└─$ python3 -c "print(__import__('hashlib').sha256(b'Wintermute').hexdigest()[:16])"
dfd05592762aa2ac
  1. Désormais, on passe sur openssl. Il va falloir déchiffrer en AES-CBC en utilisant PBKDF2 avec les paramètres par défaut pour dériver notre mot.

┌──(thaysan)-[~]
└─$ openssl aes-256-cbc -d -pbkdf2 -k Wintermute -S dfd05592762aa2ac -in MessageSecret > MessageDecrypted

┌──(thaysan)-[~]
└─$ cat MessageDecrypted
E-o$#PitX$EFeiIY-}K6Wgv8DWpZU8VRRrhAaE{iE($I#E(%#?b1Wc9AaZ4GWo=?*ax5TuZ*?GOVRmI8bZ;PVb#x$MAV@(&OGH6gdvY^GAZkEEYcn@}E-o$#E-o$#Ng!xpc4Z)RZy;=CVRmI8d2e+rAa`XaY-}KHWo2|AX>K59a&K;QAa7<MbZBKDV{C6@Yc2{dE-n
  1. On se retrouve avec de la base85, il faut la décoder.

┌──(thaysan)-[~]
└─$ python3 -c "print(__import__('base64').b85decode('$(cat MessageDecrypted)').decode())"
...
Okay, I'll be there at 5 p.m.
...
Yes, I remember, you have to put a HACKDAY{r3D j@Ck37}...
...
I have to leave you, we'll meet in front of the clock.
...

Rien de bien sorcier non ?

Dernière mise à jour

Cet article vous a-t-il été utile ?