Santhacklaus 2019 - Shamir's 10th prisoner dilemna

Posted on jeu. 26 décembre 2019 in CTF

Come on cheaters. This challenge is for you. You can communicate with others, work with them, we don't care. You won't ever find out what this challenge is about. You really thought we weren't gonna troll you a bit ? Come on... be realistic... this is a CTF... So here you go, have fun, you've got not link, no file, nothing.

May the secret sent to you by email be known by anyone else than yourself, you'll find yourself in a situation you would rather not get into... (check your spams)...

For users registered after 21/12/2019 - 06:00 PM. You can ask us (Shutdown or m3lsius) for you secret on Discord. Be aware that we will proceed to a few checks before giving it to you (to check your rules compliance), and we do not guarantee you a quick answer, or even an answer at all.

Bon, n'ayant aucune idée ce que ce c'est, on commence par une recherche internet : https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing.

On y apprends qu'il s'agit d'un algorithme créé par la personne éponyme (Adi Shamir). Cet algorithme découpe un message en X parties et il faut un minimum de Y parties pour retrouver le message original.

Chaque participant a donc reçu par mail son secret :

Hello fierce challenger.
Here is a secret you must keep until the end of the CTF.


0203-20e9326051e1c4b8c8a2c191d573fd0e8dc3c9900af37a58fd25113aa8bd75ab199e4022b3a6687e50a4c8fad1208d0c46f54ee6ca

Ok, c'est indiqué que nous devons le garder secret mais nous devons en réunir plusieurs pour avoir le flag. Il est donc nécessaire d'échange entre nous mais en restant discrets...

Ayant quelques amis participants, on s'échange nos secrets contre des bières :).

Me voilà en possessions d'une première série de secrets :

0256-a97f86326b5a7915e902469ead07567f5922e62a4fb5e1f5b7a0d5752f69c2ca7640b15ed0b3114ff1dc754134ee89ddf574c32970
0122-d7ed069ea110295452d9ffbdf41a2ed3fa2f7947eb390958fb33beaba0a03c373ceecbddfe6fe1589566478ef58c23c1c1cdfe1ee0
0091-49761787cb1b4637f72de9d8d21411aec00fc1bd2744d9799cdb9621b6f268ce1700bf073f2b20928c8c2c11d84f7d5bdb352b72a6

Soit un total de 4 avec le mien. On peut se dire que cela est peut être suffisant. Il nous donc trouver un outil maintenant pour interpréter tout cela. On trouve alors la page suivante : http://point-at-infinity.org/ssss/. C'est la page d'explication du principe de chiffrement et il propose un binaire (ssss) ainsi qu'une version en ligne (http://point-at-infinity.org/ssss/demo.html).

Ayant une préférence toujours pour le CLI, on récupère le binaire et on a donc accès à la commande ssss-combine. On lui passe en argument -t le nombre de hashs à disposition et il reconstitue le secret. Ce qui nous donne :

$ ssss-combine -t 4
Enter 4 shares separated by newlines:
Share [1/4]: 0203-20e9326051e1c4b8c8a2c191d573fd0e8dc3c9900af37a58fd25113aa8bd75ab199e4022b3a6687e50a4c8fad1208d0c46f54ee6ca
Share [2/4]: 0256-a97f86326b5a7915e902469ead07567f5922e62a4fb5e1f5b7a0d5752f69c2ca7640b15ed0b3114ff1dc754134ee89ddf574c32970
Share [3/4]: 0122-d7ed069ea110295452d9ffbdf41a2ed3fa2f7947eb390958fb33beaba0a03c373ceecbddfe6fe1589566478ef58c23c1c1cdfe1ee0
Share [4/4]: 0091-49761787cb1b4637f72de9d8d21411aec00fc1bd2744d9799cdb9621b6f268ce1700bf073f2b20928c8c2c11d84f7d5bdb352b72a6
Resulting secret: .Z....0Q.sv....&zL......e.. ..,.6.@-....#A._.7.8...(.
WARNING: binary data detected, use -x mode instead.

Hum... Pas très concluant.

On relit le titre et on voit qu'il parle du dixième prisonnier. Il faut donc peut être 10 hashs au total pour avoir le secret de reconstitué.

On échange avec d'autres participants, on fait de la stéganographie pour les partager, des pastbins et nous voilà en possession des dix hashs.

On relance la commande avec l'ensemble des hashs :

$ ssss-combine -t 10
Enter 10 shares separated by newlines:
Share [1/10]: 0203-20e9326051e1c4b8c8a2c191d573fd0e8dc3c9900af37a58fd25113aa8bd75ab199e4022b3a6687e50a4c8fad1208d0c46f54ee6ca
[...]
Share [10/10]: 0091-49761787cb1b4637f72de9d8d21411aec00fc1bd2744d9799cdb9621b6f268ce1700bf073f2b20928c8c2c11d84f7d5bdb352b72a6
Resulting secret: SANTA{c0mmun1c4tion_I5_KEEEEEEEY_jeveuxdeschaussures}

Et c'est le FLAG !

https://i.giphy.com/media/13KtvzT3PWytgY/giphy.webp

Challenge très intéressant et forçant l’interaction entre les participants. Merci encore <3.