Présentation d’un write-up de résolution du challenge « Forensic – Where Is My Purse? » des qualifications du CTF de la Nuit du Hack 2018.
Le weekend du 31/03/2018 se déroulait les pré-qualifications pour la Nuit du Hack 2018 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 : Forensic
- Nom : Where Is My Purse?
- Description : Helps an important person to find the content of his numeric purse.
- File : whereismypurse.7z (2.74GB – 83cf33c0cb86457c929237a1b1d8763fad1a28734b987c0f69b9d9f6b66e85db)
- Points : 200
Ce challenge consiste à accéder au contenu d’un wallet à partir d’une machine virtuelle et d’un dump mémoire fournis dans l’archive 7z.
Pour lancer la VM, on crée une nouvelle machine dans VirtualBox et on lui attache le fichier de disque virtuelle whereismypurse.vdi. On découvre alors un système Windows 7 protégé par un mot de passe :
Une option possible est alors d’utiliser un outil tel que konboot pour contourner l’authentification Windows. Un chargement de l’ISO de l’outil au démarrage du système nous permet d’ouvrir une session sous SatNak sans mot de passe.
On découvre alors un exécutable dcrinstall-windows-amd64-v1.1.2.exe sur le bureau. Une petite recherche sur le web nous indique qu’il s’agit d’un outil lié à la cryptomonnaie « Decred ». L’exécutable déploie l’outil dans le répertoire %USERPROFILE%\decred\ :
Les exécutables de l’outil permettent probablement d’accéder au portefeuille évoqué dans le sujet du challenge. En jouant un peu avec ces exécutables, on remarque qu’un secret est nécessaire pour poursuivre le challenge.
On suppose que ce secret peut être retrouvé depuis l’extraction mémoire fourni dans l’archive 7z. Utilisons alors Volatility pour analyser celle-ci :
La liste des commandes en cours d’exécution nous indique qu’un coffre-fort Keepass est lancé :
On procède alors à une extraction de ce processus à l’aide de la commande suivante :
$ volatility -f whereismypurse.raw --profile=Win7SP1x64 --dump-dir=dump memdump -p 2212
Une simple recherche de chaînes de caractères dans le contenu de ce dump nous permet de trouver le mot de passe contenu dans le coffre-fort Keepass :
De retour dans la VM, on lance les exécutables dcrd.exe puis drcwallet.exe, et on saisit le mot de passe trouvé précédemment :
Une fois le mot de passe validé, l’exécutable dcrctl.exe nous permet d’accéder au contenu du Wallet et de trouver le flag :
Merci à Timothée MENOCHET pour le write-up ! 🙂
Salutations à toute l’équipe, on remet ça quand vous voulez 😉 // Gr3etZ