Stellar Wars

Thomas C., Matthieu H., Aurelien K.

← Stellar Wars · L'appel du Site / Le Réveil du VPN / Le Réseau Contre-Attaque / Le Dernier Défi

L'appel du Site

**Un StormDéveloppeur de la Nécropole Stellaire a été corrompu et a donné un accès à distance à l'un des ordinateurs de cette dernière.**

À vous, équipe ForenSith d'éplucher le blog du StormDéveloppeur corrompu et retrouver comment l'attaquant a pu accéder à l'ordinateur compromis.

Suite à l'incident qui a causé la destruction partielle du croiseur de commandement impérial, le 'Dominator', les premières analyses ont révélé qu'un accès non autorisé a été obtenu par l'attaquant. Ce dernier aurait accédé à un ordinateur de la Nécropole Stellaire via SSH, permettant son attaque. Un StormDéveloppeur est suspecté d'avoir facilité cette intrusion. En tant que membre de l'équipe ForenSith de la Nécropole Stellaire, votre rôle est d'analyser le blog du StormDéveloppeur suspect et de trouver des preuves prouvant son implication.

Retrouvez la clef SSH de l'ordinateur compromis.

Cote 14 pts

Indices

Cliquer partout tu devras, fragments de vérité tu obtiendras
Ah lala, Maitre Dayo aime vraiment parler de manière poétique...

Faire son rapport

Résolution Scénario 1 "Stellar Wars" - Exercice 1 "L'appel du Site"

L'exercice 1 du scénario 1 est un exercice de stéganographie sur un site Web. Lorsque l'on démarre l'exercice, on arrive sur une page web d'un blog sur Stellar Wars.

Alt r1

Étape 1 : Obtenir les archives et résoudre l'étape 1

En se rendant tout en bas du site web, on observe dans le pied de page un texte indiquant "Mentions légales".

Alt r2

En cliquant dessus, on télécharge un zip nommé "data.zip" en le dézippant, trois nouvelles archives apparaissent. 2 de ces archives ont besoin d'un mot de passe pour pouvoir extraire leur contenu.

Alt r3

L'une des archives se nomme "step1.tar.gz" et est la seule archive à ne pas demander de mot de passe. En extrayant son contenu, on tombe sur un dossier contenant d'autres dossiers, pour un total de plus 250 000 dossiers.

Alt r4

On veut donc afficher tous les fichiers présents dans ces dossiers (il y a un peu plus d'une centaine de fichiers contenant des citations de Star Wars), on utilise la commande find pour tous les trouver :

find . -type f

Alt r5

En les regardant, on remarque qu'ils ne contiennent que des lettres majuscule ou minuscule. Pas de caractère spéciaux, pas de chiffre... Sauf un seul et unique fichier sobrement nommé "1" :

Alt r6

En outre nous pouvons également trouver ce fichier en cherchant le plus gros fichier ou celui ayant le plus de lignes :

find Ym -type f -printf "%s %p\n" | sort -nr | head -1

find Ym -type f -exec wc -l {} + | sort -nr | sed '1d' | head -1

On affiche donc son contenu :

Alt r7

Le fichier contient également la clé directement écrite en utilisant des Zero-Width Joiner / NonJoiner (visible dans vim ou avec cat -e). Le joueur peut donc également créer un script pour avoir la réponse directement.

Son contenu est une énigme à résoudre pour finir l'étape 1. L'énigme fait référence au chemin du fichier :

Ym/dw/KoQun/gQ/xoG/Vs/soOW/yXg/WBvi/nT/YkzA/qPA/SB/fzgpc/AXwi/Zra/xkmV/1

En essayant le chemin ci-dessus comme mot pour les 2 autres archives, l'archive "aes-256-cbc.zip" se déverrouille, nous laissant accéder à son contenu.

Alt r8

L'archive ne contient qu'un fichier chiffré "encrypted_id_ed25519" en AES-256-CBC. Il faut donc désormais trouver le vecteur d'initialisation et la clef pour pouvoir le déchiffrer.

Étape 2 : Obtenir le vecteur d'initialisation

Pour trouver le vecteur d'initialisation, on doit retourner sur le site. On observe que différents articles sont disponibles :

Alt r9

Lorsqu'on va sur l'article "Les Fleurs Galactiques", on peut lire un poème.
Si on sélectionne le poème, on remarque la présence anormale de nombreux espaces :

Alt r10

Ces espaces sont en faites du "whitespace code". On peut le décoder avec différents outils, par exemple en ligne avec le site "https://www.dcode.fr/langage-whitespace" :

Alt r11

En le décodant, on obtient le texte "Sp@c3Sh1p", c'est le mot de passe de la deuxième archive qu'on a obtenu plus tôt "init_vector.zip".

Alt r12

L'archive contient un simple fichier "iv.txt" contenant l'init vector pour déchiffrer notre fichier "encrypted_id_ed25519".

Alt r13

Étape 3 : Obtenir la clé et résoudre l'exercice 1

Pour mettre la main sur la clef, dernière élément manquant pour déchiffrer le fichier "encrypted_id_ed25519", il faut aller sur la page d'accueil du site web et analyser un peu les éléments.

Alt r14

On remarque que l'image avec le texte "STELLAR WARS" au sommet de la page d'accueil cache un évènement, et lorsqu'on clique dessus, quelque chose apparaît dans la console (attention, la console est effacée après 7,5 secondes) :

Alt r15

On a finalement la clef, le dernier élément manquant pour déchiffrer notre fichier "encrypted_id_ed25519".

On déchiffre enfin le fichier pour obtenir la clef ssh (flag de l'exercice) et résoudre l'exercice 1 :

Alt r16