Ce billet n'avait été publié qu'en anglais. Nous l'avons traduit en 2026 pour que les archives se lisent dans les deux langues. Lire l'original →
Montage
Voici un aperçu de ce qui a été utilisé pour ce défi :
- 3 lance-missiles USB
- Un hub USB avec au moins 4 ports USB
- Une webcam
- Un Raspberry Pi
- Un détecteur d'impact (python)
https://github.com/hackfestca/hf2k13/blob/master/wargame/ml/home-root/buildingSensor.py - Un détecteur de lumière (python)
https://github.com/hackfestca/hf2k13/blob/master/wargame/ml/home-root/lightController.py - Un script de diffusion en continu (ffmpeg + ffserver)
https://github.com/hackfestca/hf2k13/tree/master/wargame/ml/home-root/stream - Une interface de contrôle des lance-missiles (python)
https://github.com/hackfestca/hf2k13/blob/master/wargame/ml/home-ml/missile2k13.py - Une platine d'essai (breadboard)
- Des câbles électroniques (8 câbles courts mâle-femelle, 4 câbles longs mâles)
Le défi
L'idée derrière ce volet était de mettre en place des appareils physiques à hacker pour que les non-participants puissent voir ce qui se passe pendant le war game. C'était aussi une raison/une façon de faire un peu de hacking matériel pendant l'année.
Partie 1 - Hacker le site web fbi.hf
D'abord, les joueurs devaient s'introduire dans le site web fbi.hf en forgeant leur propre cookie. Ils devaient chiffrer en AES, avec la clé extrêmement sécuritaire « fbi », un code NIP, puis forger une somme de contrôle basée sur celui-ci. Le site web fbi.hf avait été divulgué dès le début dans l'aide-mémoire (remis à chaque équipe). Charles pourrait vous en dire plus sur la faille (http://www.hackfest.ca/about-2/collaborators).
Partie 2 - À l'intérieur du site web fbi.hf
Une fois connecté, deux choses sont disponibles :
- Une webcam, qui affiche une chaîne sombre, difficile à lire
(pour l'instant) - Un fichier obfusqué
Bon, cool, on a trouvé un flag, mais on ne peut même pas le lire. Si vous regardez attentivement, vous pouvez voir une petite DEL. À ce stade-ci, il faut trouver une façon de l'allumer.
Maintenant, plongeons dans le fichier obfusqué. Ce fichier était en fait une combinaison d'outils d'archivage, appliquée 35 fois, juste assez pour forcer les joueurs à écrire un script. Voici le script que j'ai utilisé pour créer le fichier :
Il suffit d'inverser le script pour trouver un fichier msg.txt avec le contenu suivant :
Mail From: [email protected]
Mail To: [email protected]
Subject: Evidence
I've found out this strange shell. Hopefully, it's
fake or a honey pot. I can't believe these guys use so shitty passwords for real
missiles launchers...
Host: ml.hf
User: ml
Pass: ml
Note : il y avait un raccourci avec le marché noir. Il était possible d'acheter le fichier msg.txt pour 20 k$
Note no 2 : il y avait un bogue dans le script, alors ce n'était pas exactement 35 fois...
Partie 3 - Contrôler les lance-missiles
Maintenant, connectons-nous à ml.hf avec l'utilisateur ml. On arrive sur une interface qui ressemble à ceci :
Pas de bash, pas de sh. Une interface en ligne de commande complètement maison. À partir de là, il était possible de bouger les lance-missiles avec les commandes md, ml, mr et mu, mais d'abord, le joueur devait les activer. Par exemple, taper « enable 0 » activait le premier lance-missile, et les commandes suivantes s'appliquaient à celui-ci.
Aussi, la commande fire était verrouillée. Il fallait la déverrouiller, mais la commande unlock demande une clé. Où la trouve-t-on?
Vous vous souvenez de la DEL? L'interface contrôle aussi la lumière de la webcam. Taper « light on » allume la lumière, et le message sur la webcam devient lisible.
À ce stade-ci, on pouvait taper les commandes suivantes et déclencher des tirs de missiles sur la ville du Hackfest :
enable 0
unlock fire DPQJDUEja43H8Dfhmjaq
[viser un immeuble]
fire
Le Raspberry Pi était capable de détecter les impacts et d'afficher automatiquement un flag quand un immeuble était touché.




