Au dernier événement Northsec, j’ai eu la chance de m’amuser avec un défi audio. Je n’avais jamais fait de défi de stéganographie audio, alors ma façon de faire paraîtra peut-être évidente à certains, mais si vous êtes un parfait débutant comme moi, vous y trouverez peut-être des choses intéressantes.
Le mp3 était une pièce instrumentale d’une minute, de style gangster, sans rien d’anormal. J’ai regardé les métadonnées du fichier et rien ne ressortait. J’ai ensuite cherché « hidden message in audio file » dans Google et la première suggestion était d’utiliser un outil comme Audacity ou Sonic Visualizer pour analyser le fichier audio. J’ai décidé d’essayer Sonic Visualizer et j’ai affiché la forme d’onde à l’importation du mp3:
Rien d’anormal ici. Après avoir fouillé un moment dans les menus de Sonic Visualizer, j’ai trouvé le panneau Spectrogram:
On voit « SH Sux » (School sucks, la thématique du CTF) dans le spectrogramme! C’est un premier indice qu’un message était bel et bien caché dans le mp3. Ce n’était toutefois pas notre drapeau. J’ai essayé de modifier certains réglages du spectrogramme, comme la couleur, les échelles et les pics, sans rien trouver.
J’ai ensuite affiché un autre type de panneau offert dans Sonic Visualizer: le Melodic Range Spectrogram.

Au premier coup d’œil, ça ne ressemblait à rien. En regardant de nouveau, j’ai cependant remarqué qu’il y avait peut-être un motif dans les barres rougeâtres. Pour le valider, j’ai chargé une chanson ordinaire et vérifié si un motif semblable s’y trouvait aussi. J’ai été content de constater que non!
Ma première idée a été de traduire ça en binaire. Les barres du bas sont des 0 et celles du haut des 1. J’avais de la difficulté à déterminer la position de certaines barres, alors j’ai modifié un peu les réglages d’affichage:
L’amélioration ne saute peut-être pas aux yeux, mais j’arrivais maintenant à identifier correctement chaque barre 😊
La transcription manuelle des barres en binaire m’a donné: 0100011001001100010000010100011100101101011000010011010000111000001110000011001000110001001100000011100100110100011001000011001001100010011000010011010101100010
J’ai mis ça dans un convertisseur binaire vers ASCII en ligne et boum! FLAG-a48821094d2ba5b
Merci de m’avoir lu,
