Présentation d’un write-up de résolution du challenge « Steganalysis – Stegano-Sound » des qualifications du CTF de la Nuit du Hack 2016.
Le weekend du 01/04/2016 se déroulait les pré-qualifications pour la Nuit du Hack 2016 sous forme d’un CTF Jeopardy. Ayant eu l’occasion et le temps d’y participer avec quelques collègues et amis, voici un write-up de résolution d’un des challenges auquel nous avons pu participer.
- Catégorie : Steganalysis
- Nom : Stegano-Sound
- Description : Homer Simpson is being looked after by the cops, following a bank robbery. We intercepted a conversation between him and Marge Simpson, but the quality is very bad. We believe they exchanged about a secret related to some « ndh » event.
- URL : http://static.quals.nuitduhack.com/simpsons.wav
- Points : 150
A l’écoute du fichier wav, les voix des Simpsons restent audibles et compréhensibles. On note toutefois des bruits parasites en arrière-plan, qui ont l’air de se répéter de manière périodique.
On dégaine notre meilleur outil d’analyse de fichier audio, et notamment pour la visualisation spectrale des données. A ce sujet, l’outil gratuit « Sonic Visualiser » (version 2.5 actuellement) permet des biens meilleurs rendus spectrals qu’Audacity, en particulier pour la stéganographie audio.
On ouvre « Sonic Visualiser » et on charge notre fichier « simpsons.wav ». On affiche par la suite le spectre via le menu « Pane / Add Spectrogram / Mixed » :
Oh ! Un joli smiley !
Mais qu’est-ce qui suit notre joli smiley? Ces petites barres qui semblent se répéter presque tout le long de la piste, serait-ce la cause du bruit parasite que l’on entend de manière périodique à l’écoute de l’extrait sonore?
Zoomons un peu sur le spectre :
Cela ressemble étrangement à un alphabet… Oui, mais lequel? En quelle langue ces symboles sous forme de « points » doivent être traduit ?
Pourrait-ce être du braille? Ça collerait, surtout que le smiley porte de lunette ce qui est un indice solide ! Cherchons une table de correspondance de l’alphabet en Braille :
Prometteur ! Démarrons la traduction de notre piste spectrale :
Chaîne traduite :
#6634428777744499577744499568833
Au regard de cette chaîne numérique préfixée d’un # (indiquant un numéro), le lien est rapidement fait avec l’ère d’avant le smartphone et notamment les SMS. Oui, ce code correspond à un SMS. Courrons au grenier ressortir notre bon vieux Nokia 3210 :
Et c’est gagné ! Flag : #NDHATSIXJRIXJMUE
Salutations à nj8, St0rn, Emiya, Mido, downg(r)ade, Ryuk@n et rikelm, on remet ça quand vous voulez ? // Gr3etZ
Sources & ressources :