Writeup #LeHACK 2019, 103spx

closeCet article a été publié il y a 4 ans 9 mois 19 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Autre challenge réussi à la sueur de mon front, ce challenge était beaucoup plus intéressant et m’a donné un peu de fil à retordre. Voyons donc comment je m’en suis sorti.

Le fichier à récupérer s’appelle « USB_a_analyser », sans extension, il fait 247Mo. File nous donne une première indication de ce à quoi on a affaire :

On a vraisemblablement affaire à une image d’un disque, mais les choses se compliquent quand on tente de faire l’inventaire détaillé des partitions :

J’attaque un basique « strings », et je vois un message intéressant :

Beaucoup d’informations ici, on sait donc qu’il faut récupérer un fichier qui a été chiffré avec openssl avec le mot de passe mentionné. Certes on a pas le nom du fichier, ni l’algorithme utilisé, mais on s’en préoccupera plus tard. Dans ma trousse à outils il y a donc binwalk et foremost, qui se font un plaisir d’analyser le contenu d’un fichier pour en extraire d’autres. J’ai déjà pu extraire des photos cachées dans d’autres photos. Ils me trouvent des pages web avec photos de mobylettes (le nom du challenge n’est pas là par hasard), mais rien qui ressemble à un fichier chiffré avec openssl. Rien d’autre dans les strings, ce qui implique que le fichier n’est pas stocké en clair.

Il paraît qu’elle a fait rêver pas mal de jeunes 🙂

Le fichier semble contenir une ou plusieurs partitions, j’entreprends alors de chercher comment faire pour les monter directement depuis le fichier dans un dossier temporaire. Comme je l’ai dit la difficulté c’est que fdisk ne me donne pas de détails sur les offsets à indiquer pour le montage, et toutes mes recherches pointent sur le fait qu’il faut cette information. C’est alors que Djerfy me glisse une suggestion : « t’as essayé volatility ? »

A là base c’est une suite d’outils en python pour extraire quantité d’informations sur des systèmes majoritairement Windows, ce qui n’est pas si con puisque le fichier contient des partitions NTFS et FAT32. Je ne connaissais pas, je m’empresse d’installer, lis un peu la doc et l’aide embarquée, et j’en viens à ça :

Mais c’est gentil de lui donner un tel nom ! On a donc un fichier secret.xz, supprimé comme l’indiquait l’indice original car dans un dossier « .Trash-1000 », il a été mis dans la corbeille (l’auteur aurait donc pu le récupérer, mais ça serait moins drôle pour nous). Par contre, alors que je passe l’option -D je n’arrive pas à récupérer le moindre fichier, rien dans le dossier « vol_extract » créé pour ce besoin. Rageant…

J’en vient à tenter le tout pour le tout : je monte directement le fichier dans un dossier avec le type ntfs. Ma surprise fut totale quand j’ai vu la commande se terminer sans erreur :

Eh oui, notre secret.xz est bien là. Je le copie donc sur mon disque, et l’extrait. Le fichier a bien été chiffré avec openssl :

Nous voilà donc à la phase finale : identifier l’algo utilisé pour chiffrer le secret. Le souci, c’est que ça va être trop compliqué d’aborder ça de manière artisanale :

On le voit dans la partie « Cipher commands », y’a du monde, je ne me vois pas tout faire à la main un par un. Et rien dans le contenu du fichier ne permet de guider un type d’algo plutôt qu’un autre.

J’ai donc extrait la liste de ces cipher commands, organisées dans un fichier, et j’ai là aussi tapé un script à l’arrache pour faire le boulot :

J’ai en résultat, un fichier par cipher. Alors y’a beaucoup de fichiers, et malgré une taille identique pour beaucoup d’entre eux, la somme de contrôle me dit qu’ils sont tous différents. Je me rabats donc sur un classique mais toujours efficace grep afin de pouvoir identifier mon vainqueur :

Et voilà 🙂

9 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Cascador
Cascador
07/07/2019 20:59

Yo,

Très sympa, ça commence à me donner envie de m’y mettre. Un truc que j’ai pas pigé, à quoi correspond lh_ ?

Tcho !

BZHugs
BZHugs
07/07/2019 22:07
Répondre à  Cascador

C’est le format du flag qu’il y avait lors de l’événement LeHack https://lehack.org/fr

Titanex
Titanex
08/07/2019 00:00

Tu avais aussi testdisk pour récupérer les fichiers. C’est immédiat avec ce tool.

Paulo
Paulo
08/07/2019 00:25

Avec FTK Imager j’ai fait le chall en 10min même pas. Excellent outil.

GIl
GIl
08/07/2019 08:32

Aaaah, une 103SPX avec refroidissement liquide, ça vait plus de gueule que les scooters non ?

kaio
kaio
11/07/2019 09:32

Bonjour,
Merci pour ce retour top top,
Peux-tu mettre le fichier source ? 🙂